欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

1021

程序员文章站 2022-06-07 23:51:28
...

课题功能

养猪模拟
小明开了个养猪场,一共有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

总体流程图

1021

相关数据结构

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函数

主函数流程图

1021

各个函数流程图

各个函数流程图

void on_Qbtngamestart_clicked();
1021

void on_Datashow();

1021

void on_pushButton_2_clicked();

1021

void setAllbutadisappear();
1021

void setAllbutaOn();
1021

void chgthishometypetxt();

1021

void on_pushButton_29_clicked();
1021

void on_QBtnCBigpig_clicked();(以下同上类似)
void on_QBtnCColouredPig_clicked();

1021

void on_QBtnCBlackPig_clicked();(以下同上类似)
void on_QBtnPigCNULL_clicked();

1021

void on_Qbtngameexit_clicked();(以下同上类似)
void on_reset_clicked();
void on_loadgame_clicked();
1021

void on_QBtnNexitMonth_clicked();(以下同上类似)
void on_pushButton_30_clicked();

1021

void on_Qbtnpighome_clicked();

1021

void on_QBtnPigDown_clicked();(以下同上类似)
void on_QbtnPigup_clicked();
void on_QBtnPigQuickUp_clicked();
void on_QBtnPigQuickDown_clicked();

1021

void on_Qbtnshop_clicked();(以下同上类似)
void on_pushButton_23_clicked();
void on_Qbtnoption_clicked();
void on_pushButton_26_clicked();

1021

void on_QBtnShopAplly_clicked();

1021

void on_QBtnUnlockPigHome_clicked();

1021

void on_Qspin1_valueChanged(int arg1);(以下同上类似)
void on_Qspin2_valueChanged(int arg1) ;
void on_Qspin3_valueChanged(int arg1);

1021

void resetpigmov();
1021

void showthishomepig(int);
1021

void on_pushButton_27_clicked();
1021

void on_Qbtnscience_clicked();(以下同上类似)
void on_pushButton_clicked();
void on_Qbtndata_clicked();
1021

void on_pushButton_3_clicked();(以下同上类似)
1021

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.没有把猪的瘟疫写出来,因为想要实现这个功能工程量太大,实现起来很复杂,时间来不及了。