1021
课题功能
养猪模拟
小明开了个养猪场,一共有100个猪圈(按照0-99编号),每个猪圈最多养10头猪(按照0到9编号),猪一共有三个品种:黑猪、小花猪和大花白猪,其中黑猪不能与其他两种猪放在一个猪圈里,会打架。规定每3个月,养猪场要出圈一批猪,包括:体重超过150斤的和饲养超过1年的;同时补充一批猪崽儿(猪的品种、数量录入或者选择随机生成)。试利用随机数方法构造猪崽儿的初始体重等信息(20-50kg),利用随机数方法按照秒或次数刷新每头猪随时间的体重增长函数(一秒/一次表示一天,一天增重0.0 ~1.2kg)。试利用结构体链表形式管理猪圈的猪,为新进的猪自动分配猪圈(要求猪均匀分布在各个猪圈中),自动统计本次出圈的猪的总体售价(黑猪15元一斤,小花猪7元一斤,大花白猪6元一斤);(到此60起评)
(1)可任意查询当前某一猪圈的猪的数量和种类;
(2)可任意查询当前某一猪圈某头猪的状态信息;
(3)可任意统计当前猪场每个品种猪的数量和体重、饲养时间分布情况;(到此70起评)
(4)可任意查询近5年猪的销售记录和猪崽儿的购入记录(记录用文件形式存储);
(5)所有当前猪的信息使用文件形式保存,程序再启动时,自动读取养猪场信息并显示。(到此75起评)
(6)模拟养猪场某一只猪得了猪瘟,猪瘟的扩展几率是,同一个猪圈的猪每天被传染几率是50%,相邻猪圈的猪每天被传染的几率是15%,不相邻的猪圈的猪不传染。编写程序模拟多久后养猪场的猪死光光。
(7)当发现有猪得了猪瘟已经发病后,请采取合理的隔离措施,进行风险控制。
(到此80起评)
提高部分:(1)可使用MFC 或者QT等IDE设计用户界面;(2)显示每个品种猪的数量和体重、饲养时间分布图;(3)可根据自己的理解,加入功能(比如转换为一个养猪游戏)。(到此90起评)
开发平台
所使用的开发环境:win10、qt.5.9.2
总体流程图
相关数据结构
struct pig{
double w;
int boughtyear,boughtday,type;
};
QVector pigs[100];
函数及其作用
void on_Datashow();//显示猪的资料
void chgthishometypetxt();//判断当前猪圈存哪种类型的猪
void resetpigmov();//对选定的猪圈进行判断和显示
void on_reset_clicked();//重置存档
void on_loadgame_clicked();//加载游戏存档
void setAllbutadisappear();//隐藏所有猪
void on_Qbtngameexit_clicked();//退出游戏
void setAllbutaOn();//使猪可视化
void showthishomepig(int);//显示猪
void on_Qbtngamestart_clicked();//开始游戏,创建存档,初始化数据
void on_pushButton_3_clicked();//焦点,进攻月球
void on_pushButton_4_clicked();//焦点,精英计划
void on_pushButton_6_clicked();//焦点,优质牧草
void on_pushButton_9_clicked();//焦点,锻炼计划
void on_pushButton_11_clicked();//焦点,医疗覆盖
void on_pushButton_7_clicked();//焦点,优生优育
void on_pushButton_10_clicked();//焦点,交配*
void on_pushButton_8_clicked();//焦点,猪权宣言
void on_pushButton_12_clicked();//焦点,猪群解放
void on_pushButton_13_clicked();//焦点,猪球崛起
void on_pushButton_14_clicked();//焦点,天猪合一
void on_Qbtnscience_clicked();//焦点开关
void on_pushButton_clicked();//关闭焦点
void on_pushButton_16_clicked();//焦点,饲料操作
void on_pushButton_5_clicked();//焦点,提倡繁殖
void on_pushButton_15_clicked();//焦点,饲料操作
void on_pushButton_17_clicked();//焦点,肉猪计划
void on_pushButton_18_clicked();//焦点,扩大需求
void on_pushButton_19_clicked();//焦点,基因工程
void on_pushButton_20_clicked();//焦点,科技革命
void on_pushButton_21_clicked();//焦点,完全自动
void on_pushButton_22_clicked();//焦点,宰割流水
void on_Qbtnpighome_clicked();//点击猪圈,显示有关猪的一系列信息
void on_QBtnPigDown_clicked();//下一个猪圈
void on_QbtnPigup_clicked();//上一个猪圈
void on_QBtnPigQuickUp_clicked();//下十个猪圈
void on_QBtnPigQuickDown_clicked();//上十个猪圈
void on_QBtnUnlockPigHome_clicked();//解锁新猪圈
void on_QBtnCBigpig_clicked();//获取对应猪的种类
void on_QBtnCColouredPig_clicked();//获取对应猪的种类
void on_QBtnCBlackPig_clicked();//设置猪圈类型为黑猪并检测是否有其他猪
void on_QBtnPigCNULL_clicked();//设置猪圈类型类型为混合型并检测是否有黑猪
void on_Qbtnshop_clicked();//点击商店进入商店界面
void on_pushButton_23_clicked();//关闭商店页面按钮
void on_Qspin1_valueChanged(int arg1);//购买猪的费用计算
void on_Qspin2_valueChanged(int arg1) //购买猪的费用计算;
void on_Qspin3_valueChanged(int arg1); //购买猪的费用计算
void on_QBtnShopAplly_clicked();//购买猪,判断金币是否够,猪圈是否放得下,对买的猪进行记录,存放猪
void on_Qbtnoption_clicked();//设置界面
void on_pushButton_26_clicked();//退出按钮
void on_pushButton_27_clicked();//作弊码获取金币
void on_Qbtndata_clicked();//隐藏和显示资料
void on_pushButton_29_clicked();//用文本框显示购入出售数据
void on_QBtnNexitMonth_clicked();//下个月,猪圈资料更新
void on_pushButton_30_clicked();//下个月对于猪圈数据的更新
void on_pushButton_24_clicked();//保存当前养猪游戏的数据
void on_Qbtnloadthegame_clicked();//加载上次保存的养猪游戏的数据
void on_pushButton_2_clicked();//判断焦点类型,设置对应的增益效果
void on_Qbtndeveloper_clicked();//使用说明
void on_comboBox_currentIndexChanged(int index);//debug函数
主函数流程图
各个函数流程图
各个函数流程图
void on_Qbtngamestart_clicked();
void on_Datashow();
void on_pushButton_2_clicked();
void setAllbutadisappear();
void setAllbutaOn();
void chgthishometypetxt();
void on_pushButton_29_clicked();
void on_QBtnCBigpig_clicked();(以下同上类似)
void on_QBtnCColouredPig_clicked();
void on_QBtnCBlackPig_clicked();(以下同上类似)
void on_QBtnPigCNULL_clicked();
void on_Qbtngameexit_clicked();(以下同上类似)
void on_reset_clicked();
void on_loadgame_clicked();
void on_QBtnNexitMonth_clicked();(以下同上类似)
void on_pushButton_30_clicked();
void on_Qbtnpighome_clicked();
void on_QBtnPigDown_clicked();(以下同上类似)
void on_QbtnPigup_clicked();
void on_QBtnPigQuickUp_clicked();
void on_QBtnPigQuickDown_clicked();
void on_Qbtnshop_clicked();(以下同上类似)
void on_pushButton_23_clicked();
void on_Qbtnoption_clicked();
void on_pushButton_26_clicked();
void on_QBtnShopAplly_clicked();
void on_QBtnUnlockPigHome_clicked();
void on_Qspin1_valueChanged(int arg1);(以下同上类似)
void on_Qspin2_valueChanged(int arg1) ;
void on_Qspin3_valueChanged(int arg1);
void resetpigmov();
void showthishomepig(int);
void on_pushButton_27_clicked();
void on_Qbtnscience_clicked();(以下同上类似)
void on_pushButton_clicked();
void on_Qbtndata_clicked();
void on_pushButton_3_clicked();(以下同上类似)
void on_pushButton_4_clicked();
void on_pushButton_6_clicked();
void on_pushButton_9_clicked();
void on_pushButton_11_clicked();
void on_pushButton_7_clicked();
void on_pushButton_10_clicked();
void on_pushButton_8_clicked();
void on_pushButton_12_clicked();
void on_pushButton_13_clicked();
void on_pushButton_14_clicked();
void on_pushButton_16_clicked();
void on_pushButton_5_clicked();
void on_pushButton_15_clicked();
void on_pushButton_17_clicked();
void on_pushButton_18_clicked();
void on_pushButton_19_clicked();
void on_pushButton_20_clicked();
void on_pushButton_21_clicked();
void on_pushButton_22_clicked();
### 调试记录
记录课程调试过程所遇到的问题的时间、内容、解决方案。
1.按钮太多且杂乱,操作实行复杂麻烦,通过合理的标记以及编号,使函数名更加浅显易懂,得以解决。
2.存档问题耗费大量时间研究学习,不断学习研究,最终实现了这个功能。
3.对于猪图片数量判断操作繁琐,枚举判断,虽然代码很长,但是效果很好。
4.猪动画操作,使用gif图片代替计时器循环。
5.对于猪的资料的处理,同样通过枚举的方法实现,效果很好。
6.没有对购买的猪进行平均分配,取而代之的是放置于特定的猪圈,有助于管理,也有助于后续拓展功能的实现。
7.没有把猪的瘟疫写出来,因为想要实现这个功能工程量太大,实现起来很复杂,时间来不及了。
上一篇: 709. 转换成小写字母
下一篇: 冰川之美
推荐阅读
-
最新win1021H1最新激活秘钥推荐 附激活工具+使用教程
-
P1021 邮票面值设计
-
Win10 21H2太阳谷版本真的这么惊艳吗? Win1021H2上手试玩
-
(python 3)1021 个位数统计
-
怎么获得可用的Win1021H1激活码 win10秘钥推荐(含激活工具)
-
统信服务器操作系统V20 1021e发布:支持国产景嘉微显卡
-
win1021H1专业版激活密钥/序列号/激活码推荐 附激活工具+教程
-
最新2021年6月win1021H2激活码推荐 附激活工具
-
Win1021H1太阳谷企业版怎么激活 Win10通用激活密钥推荐 附激活工具
-
2021最新Windows1021H1企业版iOS镜像激活密钥/激活码推荐