C课设拯救计划
前言:为什么要专门耗费时间来写这么一个东西呢?如果你有幸考入了华中柯基大学,又在填志愿的时候阴差阳错的选择了人工智能或者自动化专业,那么你就马上会听闻只存在于传说中的C课设。不仅仅是用了一种已经消失数十年的编译器: 爆烂的C(Borland C3.1,又简称为BC)。不仅其自身使用起来十分的麻烦,令人恼火,而且你几乎找不到任何什么学习BC编程的途径。虽然有学长学姐代代相传的帮忙,但这种事是学院默许的,亦可以说是学院支持的。故,从中也难以学到什么。所以对于大部分而言,结果往往是到deadline的时候,抄写,篡改前人留下来的代码,或者求助选同样题目的同学……
所以,特此写一份较为详细的拯救计划。
BC下载链接
BC最基本的用法
首先,不会真的有人会用BC这种东西来编写C课设吧?就其作用而言,不建议给自己找痛苦。
先上BC的图片(建议在电脑上食用,手机可能排版会出问题)
建立工程:意思就是把你写的代码变成一个.exe文件。如何建立?点击Project 有个open,直接输入新建的pgi(?)的名字(就是把那个*.pgi改成 1.pgi等等),这样就可以add 你自己编写的.c文件了。全部添加进去后,点Run,success就行,最终编写完成,就点Compile (?)。
其他:其他的东西自己慢慢摸索,差不多就能搞懂了。BC我目前用过的东西有: Edit中的 复制粘贴,主要是修改错误时会用BC直接修改(一些简单的问题)。注意在BC中修改后一定要点File中的save(BC没编译成功不会自动保存)。还有一个就是Window中的Output,可以查看文本窗口的输出,但基本没用(基本都是图形化窗口,用不到)
关于环境配置,其实没什么,所谓环境配置,就是一个简单的设置Options中的Output,和什么什么的。这些东西自己看看就会慢慢理解的。而且,群里都有配置好了的BC,直接用就行。也可以找我要。至于什么纯净的BC,就是没有学长学姐的工程。但大部分你只要把他们写的东西删掉就行了(除非有人自己改BC)。
你用别的编译器写的汉字,在BC中是无法显示的,原因是汉字编码方式的不同,具体可参考https://www.bilibili.com/video/BV1BT421a7N6/?spm_id_from=333.999.0.0。
自此,我相信你已经学会了使用BC建立工程。虽然你可能还不会编写。
如果还是不会使用BC,可以去看看别人怎么用的。
头文件的编写
(三月16日更新)
头文件编写还是有固定的套路的,一般你自己直接复制粘贴就行。
这里介绍通用的模板:
1 | #ifndef _COMMON_H_ // 这里的意思是if not define |
那么这个的原理就是条件编译,其目的在于水代码 防止头文件重复包含(?。有兴趣自己检索就行。
当然一般而言我们还会编写一个总头文件,一般命名为common.h; 你可以发现它就是如同这样
1 | #ifndef _COMMON_H_ |
当然,这是我编写的尚未完成品。注意自己编写的 头文件最好用”” ,爆烂的C自带的用<>,具体原因有兴趣自己查找。
那么关于头文件的全部暂且就到这里了。当然你建立工程的时候如果把头文件不需要手动添加。
拜拜了~
贴图的工厂化实现(已完善)
怎么贴图?很简单。爆烂的C可以用祖传的代码,批量化贴图。你根本不需要理解,你只需要CTRL C, CTRL V。n张图片便已经贴上去了。
废话不多说,直接上代码。这是一个使用例子。(?
1 | bmp_convert("1.bmp", "1.dbm"); |
其中,你只需要操作的部分如下:
将1.bmp改成你要贴的图片的名字。不要告诉我你不知道文件后缀是什么。
当然还有所有的1.
其中show_dbm(100,100,…..),前两个是贴图的位置,左上角坐标。
注意,这种只能贴bmp,而且还要用到ps修改。具体有祖传文件教学。这里我就不提供下载方式了。因为我日后会以图文形式补充,想必大家都能在救助群里找到。
就是这么多了。
当然,要#include .h文件。笑注意,你的贴图文件放在source文件夹内,即和你的.c文件放一起。
为防止还
没有人不会,上代码(???)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23?
#include <stdio.h>
#include <graphic.h>
#include <image.h>
void main()
{
int gd=VGA;//graphdriver
int gm=VGAHI;//graphmode
initgraph(&gd,&gm,"C: \\BORLANDC\\BGI");//这里后面的C:什么的看放的BGI文件路径
bmp_convert("1.bmp", "1.dbm");
open_display();
show_dbm(100,100, "1.dbm", 0);
bmp_convert("2.bmp", "2.dbm");
open_display();
show_dbm(300, 200, "2.dbm", 0);
getch();//鼠标按键后退出
closegraph();
delay(100)
}虽然不知道有没有问题,
但还是暂且认为该代码有问题吧(doge)
附件:贴图祖传代码下载(已经修改,完美适配VGA模式 即640X480下的贴图)

1 | if(ImageW==0||ImageH==0||ImageW>641||ImageH>481)/////注意注意!!根据实际修改/ |
上述的头文件和.c文件经过了修改,至于.c文件,我们无需看懂原理。上面是.c文件大约40-50行部分代码。这里的Imagew 和ImangHI 要根据实际值修改。否则就会出现 The image is too… 然后贴图失败。。
*这里的贴图的重要一点就是对 图片的处理, 首先要下个VS PS, 然后根据文件中的食用方法来便可。 当然其中有些东西不必在意。如:调用 show_dbm(int x,int y,char dbm,int nowpage)即可在在(x,y)输出图片(x 需为 8 的倍数),char * dbm 处填入的 dbm 文件地址。 这里的X并不需要为8的倍数。当然,也许只是我们没有理解其原因。但是只要能贴上图就行。
贴图的工厂化实现就是这样了。请低调使用,勿宣传(.jpg) —4.21.2024

报告的借鉴以及验收过程
在4月的27日,也是极其幸运的过了C课设。原因主要是抽到了好的验收老师。喜提A-。也是上演了一出抽卡现场。验收其实报告几乎不看(所以用的全局变量也是根本没看,当然据说这个看老师,有老师似乎喜欢看??),所以没必要过于精细。代码分配部分,要把.c谁写的都写明。
报告直接借鉴即可食用。
验收过程实际上也很简单。就是要把你的CODE文件夹,复制到机房电脑的C盘(不是桌面)上,然后找到C盘中的Borlandc/bin/bc.exe。打开那个BC,然后自己改下路径即可。实际上手后十分简单。路径就是文件路径。所以我们在编写的过程中,最好用相对路径。比如文件的打开啥的。
老师是听我们讲了我们的程序功能。因为设计了梯田,被认为是相对一个创新的点,所以老师就简单的要我们加个功能。就是让无人机高度在农药喷洒时也显示,也就是一个调用函数的问题。当然,还要调调参数,总之十分简单。但也有老师很考验心态和能力。只能说,验收就是看抽卡。文件操作必须要掌握。验收时许多老师都重视,甚至要你改登录注册的代码。(而许多人是直接照搬的…)
就说这么多吧,愿世上再无C课设 –5.5

英文输入法
输入法是登陆注册界面必不可少的。那么这里直接提供代码,来源不明。具体如何使用请看编写的原作者(未知)的注释。
这里的输入法明显要和文件操作结合起来比较方便。或者数组之类。但还是用文件操作更好。
这里面呢,就两个函数,对应两种输入法。可视与不可视。调用即可。建议登录注册不必太过高级。基本功能实现即可,因为要么老师根本不看,要么老师要你加这里的功能。比如忘记密码、让输入的密码可视什么的。(而这些都容易实现(所以就有人故意不把程序搞完美,预判老师会要求加的功能…
那么就说这么多吧。虽然更新速度慢,但不是还早着吗?-5.19

编程的开始
水了这么久,终于来到了激动人心的编程环节。其实主要是因为不知道该水什么了)那么为了节省一些时间,所以编程开始的讲解主要就是按照 我们那一组编写的代码的顺序来,毕竟,与其自己盲目的学这学那,不如完整的看一遍往届的代码。当然我自己尝试过,不过由于看不懂,所以收获不多。但还是收获良多。(比如时间显示就是看往届代码,贴图实现一开始也是看着抄写的)当然由于种种原因,不开放源代码,毕竟是个人劳动成果,白嫖有害身心健康,可通过邮件询问获取)
——5.23
思路历程
为什么C课设选题时选到了这道题目? 答:C课设选题,其实就是开一个大会,许多班的人坐在一个大教室。然后出题老师会分别讲题目的要求(当然,我是一点没听,大多数人也是),然后呢,不知道什么时候,班长就突然说来选题,其实就是在一张打印好的纸上,有题目的序号,填写你和你的队友的名字,学号。而且因为我们班是30个人,有15道题目,所以题目不能重复,就靠抢?(除非你们班班长很公平,想到了用抽签的方式决定选题的先后顺序。)
所以这里建议选题的时候,坐的离班长近一点。最好坐旁边。
我当时连队友都没找,听到说选题开始,才问谁还没组队。结果发现,所有人都早早组好了队伍(当然除了队友(他也是比较内向吧,与班里的人没交流。于是乎,一坨人为了选题乱挤。所以到我选题的时候,已经是最后了。幸而找到一道22级的题目,也就是这道题。于是乎,便莫名其妙的选好了题目。
总结:
开那个选题大会时,坐班长旁边比较好。
选题靠抢的话一定不要顾及什么面子啥的,直接乱挤,先到先得。不要有所谓的高尚,因为别人可不会管你,当你选到了一个痛苦的题目而无从下手时。。。。
队友尽量提前找好,而且尽量找负责的吧,行动力强。拖到deadline赶C课设,或者只有你一个人急,抑或是你一个人做了一堆事。。没必要,本来就是团队合作。
这个选题序号代表了验收的顺序,所以如果选的靠前(1-5的样子)那么就是第一天晚上验收。太靠后(10-15)就是最后一天了。所以选中间比较好。我选的是8。。因为第一天必有zcj,开局必有下马威吗,所以挂的可能性蛮大的,到后面也能有经验,你能问老师的验收风格,比如是加啥啥功能。最后验收就有点痛苦了。毕竟早死早超生。
还有聪明的人直接随便搞,挂科。如果不想保研确实可以如此。C课设重修只要程序能运行就过,所以可以借鉴代码。当还是别吧,当作
锻炼自己的机会。多问问往届学长,如果是往届的题目。不是的话自求多福。
程序没必要太过注重细节。比如什么精美啥的。老师看重的思路(我的就是因为那个梯田贴图让老师赞赏了),拿我的作为例子,两种农田,小农田的地形,农作物种类。。。(都是学长建议的。连夜加的。但梯田,高度显示是自己想到的。但是预验收时,学长也说到了许多没考虑到的点,比如多架无人机,无人机电量,无人机扫描农田(就是说,不是哪里有病就喷农药到哪里),无人机喷农药到一半就返航……
这些确实我基本没考虑,但万幸最后过了。现在看来还是验收老师好。
思路目前就这么多了,再见/ ——6.14.2024
后补
经过我的询问,也是终于找到了课设选题的文件:
2023级C语言课程设计
课程设计共同要求:
1. 用C语言编程实现,编译环境采用BC3.1,掌握C语言编写较复杂程序的一些基本技巧;
2. 要求在图形化界面下操作,界面要友好,不提倡使用贴图,贴图软件实现的功能必须控制在总代码量的5%以内;
3. 注意程序的结构,必须采用工程化的思想来组织程序;
4. 要求画流程图(没有流程图的不给评分);
5. 两人一组,每班最多只出现一个三人组,小组个人代码和实现功能分工合理,每人程序不得少于1000行(登录、注册、开机欢迎动画界面、程序结束动画代码不计入);
6. 每组提供一份报告,报告内容应包含数据结构设计、程序流程图、程序功能介绍、源代码等,并注明每人的工作量;
7. 原则上,不得使用全局变量;
8. 注意程序的可读性和可维护性;
评分标准
- 软件系统需求分析、系统分析与设计报告 15%
- 编程工作量 10%
- 人机界面及接口 10%
- 软件功能、软件结构、编码规范 30%
- 排错与调试技巧 25%
- 团队协作 10%
- 技术难度附加分 (0-10分)
特别提醒:出现下列情况,不予通过。
(1)个人有效代码量不足1000行;
(2)被2个老师认定代码抄袭的;
(3)不按指定时间进行验收的
(4)所选题目核心功能不能稳定运行的;
l 参考文献
- 王士元. C高级实用程序设计. 北京: 清华大学出版社. 1996
- 周纯杰,刘正林等. 标准C语言程序及应用. 武汉: 华中科技大学出版社. 2005
- 周纯杰,何顶新等. 程序设计教程—用C/C++语言编程. 北京: 机械工业出版社, 2016
- 姚远. 高级C语言程序设计技巧与实例. 北京: 机械工业出版社, 1995
- 陈清华, 朱红. C语言课程设计. 南京: 东南大学出版社, 2003
- 潭浩强. C语言程序设计. 北京: 清华大学出版社, 2000
等等……
指导教师:周纯杰,何顶新,左峥嵘,高常鑫,汪国有,彭刚,周凯波,陈忠
C语言课程设计可选题目
- 简历辅助设计系统
主要功能说明:实现一个简历辅助设计系统。支持模板制作与模板选择;支持内容选择(比如,学习经历、实践经历等);支持导入文本后自动排版;支持文本修改和简历修改。
- 武汉欢乐谷旅游模拟系统
主要功能说明:为武汉欢乐谷设计并实现一个旅游模拟系统。支持地图查看和列表查看两种方式查看项目;支持在线门票相关业务、特殊项目在线预约、预约提醒、路线推荐等。
3.小区物业管理app模拟
主要功能说明:完成一款典型小区物业管理app的各项功能仿真模拟。比如,华润物业的朝昔app。
- 夺岛军演游戏
主要功能说明:模拟攻占岛屿军演作战系统,场景自主设定,兵力申请与调派,后勤物资补给等功能。
5.智能家居app模拟
主要功能说明:完成包括空调、空气净化器、扫地机器人、冰箱、监控设备等至少5种联网设备的管理功能,具备家用设备的接入、设备启动、状态检测与显示,设备记录数据的分析等功能。
- 火星家园建设规划系统
主要功能说明:模拟火星宜居家园部署规划、进行就地取材,建设人类家园生活设施,并提供演练展示。
- 林果自动采摘系统模拟
主要功能说明:根据果园面积进行采摘路径规划、模拟智能农机进行采摘作业、对采摘林果进行统计、并运输林果到集中站进行储存、盘点等功能。
- 农田无人机喷洒农药模拟系统
主要功能说明:利用无人机进行农作物生长监测,针对不同病害进行农药配制,对农药喷洒路径进行规划,模拟无人机喷洒过程等功能。
- 家庭看护机器人模拟仿真系统
主要功能说明:根据家庭成员的需求,陪伴机器人进行家庭服务,包括人机交互、端茶倒水、炒菜做饭、开窗关窗、浇花扫地、健康监测、突发状况报警。
10.酒店服务机器人模拟仿真系统
主要功能说明:某酒店多服务机器人的服务全过程模拟,包括根据酒店的订单分配以及机器人送餐、送水、送快递等服务的全过程。
- 人工智能学院大楼智慧建造系统
主要功能说明:
实现场地平整、地基建设、楼房建设、外墙装饰的施工过程管理功能,包括图形化模拟显示、施工建材调度、施工进度管控等模块。
- 家用婴童陪伴神器
主要功能说明:能识别婴童的状态(翻身、睡着、睡醒、口鼻被捂、呼吸频率、跟踪爬行过程)、电子围栏越过预警、典型过程抓拍形成成长相册。
- 学院50年院庆组织过程模拟
主要功能说明:
模拟学院50周年的庆典的全过程,包括院友的接待、组织、院庆当天活动的全过程。
- 学生选课模拟系统
主要功能说明:
参考HUB系统功能,以菜单方式模拟选课,包括后台课程管理和前端选课全过程,具有课程信息浏览、选课信息查询等功能。
- 东湖水质无人艇检测系统
主要功能说明:
模拟无人艇进行东湖水质检测的全过程,包括采集标本的无人艇航迹规划、水质态势分析及预测、治理措施及建议。
- 仿windows资源管理器系统
主要功能说明:
实现windows资源管理器的主要功能。
- 模拟BC的汉化文本编辑器
主要功能说明:
模拟BC的编辑器,界面需要汉字显示,至少包括BC编辑器的文件和编辑的相关功能。
- 无人驾驶汽车中控仪表系统模拟
主要功能说明:
具有无人驾驶汽车中控仪表系统主要功能的模拟。
19. 图书馆信息管理系统模拟
主要功能:参考学校图书馆,模拟图书馆的主要核心功能。
- FIFA世界杯2022淘汰赛模拟系统
主要功能说明:
模拟FIFA世界杯2022淘汰赛全过程。包括各场比赛的集锦及技术统计、颁奖仪式、十佳进球模拟等功能。
源代码逐文件分析
当然,我和我队友的代码基本完全独立,这样做十分有必要,尤其是你和队友不熟或者不能总是在同一个地方编写代码时。分工明确非常重要,否则到了ddl,你会十分的痛苦。而且,验收老师也基本有这个要求。一个人编写一个文件,最好互不干涉。
我编写的部分
其实主要的框架都是由我一人编写,因为队友实在难以沟通,但这样的好处是我自己对于整个程序的流程十分清楚,免去了必须看懂队友代码的麻烦。所以变成了队友必须看我的代码才能编写。下面列举出文件分析。
commom.h
1 |
|
为了方便,我的所有的解释会全放到代码里面。
设置common.h
其实是我看了几个往届代码从而发现的一个共性。作用经过检验发现是:把所有编写的.h文件放到这个.h文件中,以后编写.c文件只要#include "common.h"
就可以了。免去了各种麻烦。当然,如果你想水代码可以不这样做,但是实在毫无必要。
这里其实含金量不大。头文件编写上面已经说过,因此就不再赘述了。可以发现,我们的编写其实并不规范,只是按照个人习惯罢了。比如头文件的命名,都是为了自己理解方便。当然我又不是码农,而且英语也不太好,所以基本用中文,英文,啥的。
还有一个建议:写代码的时候多写写注释,方便自己和队友看懂。
welcome
1 |
|
1 | /* |
这里为了方便,直接把.c和.h文件放到一个标题中了。毕竟在算代码量的时候也会剔除头文件,而且似乎那个课程报告里也不用?但我加了。可以看到,头文件编写就只要Ctrl c + Ctrl v 就可以了。
我应该先讲讲main.c文件的,但晚了。
*这里的*a
有什么用呢?其实就是我在调用函数的时候是 welc(&a),而a在main.c那里赋值了初始值1。这样welc函数就运行了一次,之后在函数内部 a=0,所以这样之后就不再调用。实现了调用一次的作用。这个还是要先看main.c了解总体框架。
main.c
1 | #include "common.h" |
这里总体就是用了switch page模式。调用的函数代表不同的界面,函数通过改变返回值来实现界面的跳转。这里的moveint什么的是一个我编写的中转的函数,功能就是防止鼠标留痕啥的。具体后面会说到。
这里只需要学到这个界面跳转的基本框架即可。
这次更新就到这里吧。bye~
——6.28
函数介绍(1)
setbkcolor
即:set background color,设置背景颜色十分通俗易懂。用法:就是setbkcolor( ); 括号里面加颜色的英文大写。但是颜色也是有种类的,并不是可以随心所欲的调色。颜色具体有如下:
1 | #define BLACK//黑色 0 |
setcolor
也就是设置颜色,主要是边框的颜色,setcolor(GREEN);
之后你用的各种绘图函数所绘制出来的图形,点,线的边框颜色就是绿色。就像画图这个软件一样。bar, rectangle, line, putpixel. 其颜色与上面的表一致。
setfillstyle
设置填充颜色。setfillstyle所设置的填充颜色只对于一些特定的函数有用。比如bar.bar与rectangle的区别是,前者含义是画实心矩形,后者不是。这也就意味这,setfillstyle之后,bar的边框颜色还是由setcolor决定的,但内部的颜色是setfillstyle的颜色。rectangle内部颜色还是背景色。
用法:setfillstyle( 1, GREEN);
第二个参数是要填充的颜色,第一个参数代表了填充的方式。具体见下表
1 | EMPTy_FILL 0 用背景色填充区域(空填) |
正确性我并没有确定,一般而言,在使用bc过程中,我只用到了setfillstyle(1, );
其中数字和英文是等效的。其实如果聪明的话,你也许已经想到,可以用数字代表颜色,这样可以用一个数组把颜色给储存起来,从而实现颜色的改变。当然我本人是没有尝试过的。
bar
用法: bar(a,b ,c,d); 四个参数分别代表左上角和右下角的坐标x,y。十分简单。只需要注意界面的坐标系是怎么建的即可。这个要看图形化的模式,也就是下面的initgraph中会讲到的。意义为画实心矩形。颜色由setcolor和setfillstyle决定。
delay
十分简单,就是delay( 1000); 数字代表毫秒。一般的用途是防止鼠标的连续点击(就是说点一次但实际效果是多次),还有界面跳转时用用防止跳转频繁导致bc崩。加上总没事。
initgraph和closegraph
图形化界面必用。只需要main函数里用一次就行。用法如下:
1 | int gd=VGA;//graphdriver |
这里就是直接复制粘贴即可。唯一要注意的就是initgraph中的“ ”这里的文件路径要根据bgi文件夹的路径来。所以验收的时候就要注意了,最好把你的文件放到那个C盘里。具体验收的流程我以后记得会补充。
原理可以自行上网搜索。
——7.17
usehelp
1 | #include "common.h" |
为了方便和效率,没有特殊列出,头文件只有源文件里面的函数声明。所以这里的usehelp.h就略去了。这里巧妙的一点就是函数传入了a5这个参数,这样使得if(a5==1)这里面的代码只调用一次,能够很好的防止各种bug,界面更加稳定。我这里所有的界面跳转都用到了这个基本的思想。
move
1 | #include "common.h" |
这里总共就三个函数,第一个和第二个的原理一模一样,只不过是能调用的函数类型不一样。moveint这个函数就是智能调用函数形式为 int hanshu(int *a);
这种定义类型的。同理你可以根据实际情况改成,比如movevoid(void (*hanshu)(int ),int *a)
。这个原理就是把函数作为参数传递。唯一作用就是解决历代流传下来的界面跳转时的鼠标留痕问题。
showtime
1 | #include "common.h" |
这里实现了一个时钟的显示吧,意义不大,主要是让界面看起来更丰富一点。clearTimeArea就是用一个矩形覆盖上一秒的数字,然后重新outtexty,这样就实现了时间的更新。但是要实现每秒更新一次时间,就要引入pasttime了。否则实际情况是clearTimeArea一直在执行,导致时钟一直在闪烁。原理用到了文件操作。但其实,我一开始是直接用结构(struct)然后直接全局变量。。在shuju.h中你也会见到全局变量的用法。
这个的原理还是比较简单的。但仍然存在的bug是鼠标放到时钟显示的地方会被遮挡,这个小细节还没想到如果优化,但其实意义不大,老师不会注重这些与选题无关的细节,就比如室友还加了买门票提醒出现小红点功能,碰到cj还不是直接挂?管你做的多细节?只要有一些核心的东西没到点就是寄。
mainpage
1 | #include "common.h" |
此界面就是初始界面了。十分简单。绘图部分完全不用看,界面跳转也是一个通用模板了。
drzhiwu
1 | #include"common.h" |
完全没有技术含量,仅仅是画图而已。
那今天的更新就到这里吧,大概不久就要去练科三了,时间也变的紧张起来。考驾照无非就是67个人围着一辆车子,一个人10多min,一天下来基本在太阳底下站。。。早七晚六不用说。大二上学期更没时间,课表全满,双休也有课,每天早八晚九了。。。

abdrone
1 | #include "common.h" |
这个文件就是画无人机(两种形式),写了一段实现简单动画平移的函数,目前关于如何实现斜线运动我那时就没想到,之后也就没想了(只想到了循线这种)。比较简单,不需要多看。。
shuju.c
1 | #include "shuju.h" |
shuju.h
1 | #ifndef _SHUJU_H |
这两个文件基本涉及到了所有的文件操作的相关函数(我是指我编的程序里面用到的),对于看懂整个代码有很大作用。比较复杂,因为是后面边写便堆砌上去的。毕竟文件操作都是差不多距离验收一个月前加上去的。虽然我们用到的文件操作仅仅限于储存数组,但毫无争议的是,还是要学更多,毕竟画图没有什么含金量,你也可以发现,其实整个程序抛弃画图,我现在看来,C课设编写的程序也就那样。。。详细解释看新加的注释
——7.28

mainfunc
1 | #include "common.h" |
这一个文件是实现了大农田的农田绘制和植物的生长检测功能(包括无人机动画,病虫害显示)这段代码个人认为有用的包括那个 必须得先点击一个按键,之后便可点击其他。也许你有其他的方法,但我暂时还没思路。
illness.h
1 | #ifndef _ILLNESS_H_ |
illness.c
1 | #include "common.h" |
其实这里有很多重复的代码和东西,一个农田只看一种植物的一种病就可以了。。其他都是复制粘贴的,说实话。建议不用细看,因为颜色点的随机显示,老师根本不注重,而且不会细看。。。现在让我自己看,我也看不懂 。
recover
1 | #include "common.h" |
这里的生病、自愈都是完全用随机数搞的,但实际上验收老师就看了一两遍无人机扫描结果,所以根本没有用。。。
elsetian
1 | #include "common.h" |
类似大农田,实现的功能类似。加了个显示高度的功能。好累啊,自己看吧
outcome.h
1 | #ifndef _OUTCOME_H_ |
outcome.c
1 | #include"common.h" |
看起来很复杂,其实很简单,就是一个画柱形图的功能。。。。
好累,你自己看吧
growlook
无人机动画核心
1 | #include "common.h" |
这段代码小农田的不用细看,因为这个避障和斜线运动功能确实很难做,所以当时也是乱凑,凑出来了个半成品。。。。显示高度可以看看。自己看吧,打算一口气结束这个C课设拯救计划了。太累了了了了了
队友写的
反正我当时没看多久,也没看懂,现在更加不想看了,有兴趣可以自己分析。
zpjm.h
1 | #ifndef _ZPJM_H_ |
zpjm.c
1 | #include "common.h" |
pssj.h
1 | #ifndef _PSSJ_H |
pssj.c
1 | #include "pssj.h" |
pensadh.h
1 | #ifndef _PENSADH_H_ |
pensadh.c
1 | #include "common.h" |
pensa.h
1 | #ifndef _PENSA_H_ |
pensa.c
1 | #include "common.h" |
借用祖传
hz.h
1 | #ifndef __HZ_H__ |
hz.c
1 | #include <graphics.h> |
IMAGE.h
1 | #ifndef IMAGE_H |
IMAGE.c
1 | /*********************** |
mouse.h
1 | #ifndef _mouse_h_ |
mouse.c
1 | #include<conio.h> |
后续补充(完结撒花
整个程序的源代码。需要解压密码,可以通过邮件获取,或者自己蒙。什么?你问我为什么要解压密码,当然是因为知识产权了,毕竟不是我一个编写的,还是不能随意传播,而且用处不大,你只需要学习就可以了,而且❀可A院这个爆烂的C应该不久会淘汰吧?或许会换新的爆烂。
如果不出意外,这个系列更新应该是无了。如果以后有幸帮学妹学弟搞这玩意,又有了新的东西和新的羁绊,我或许会再加一点东西。现在已经不想更了,因为这一切都和我没关系了(doge),我写的时候可没有像我这么好的人专门花大量时间搞这个。。。
愿世上再无C课设——7.29.2024
完结散花

10.26.2024——最终删减修改。(这种东西,过了就行,没必要花过多时间在这上面