- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息科学与技术学院
程序设计基础课程设计报告
题目名称: 猫抓老鼠的模拟
目录
1 课程设计题目与要求 3
1.1设计题目 3
1.2设计要求 3
2 总体设计 4
3 详细设计 5
3.1数据结构设计 5
3.2主模块设计 5
4 运行结果 8
5 课程设计总结 10
1 课程设计题目与要求
1.1设计题目
猫抓老鼠的模拟
1.2设计要求
1) 设计一个迷宫:猫,老鼠的位置随机生成;2) 猫,老鼠每移动一次,都重新计算最短路径.3) 分别模拟猫的速度大于老鼠,猫的速度等于老鼠两种情形.4) 迷宫可用数组表示,最短路径可用队列表示.1.3功能扩展(自己定制)1.可增加猫的数量;2.可随机生成迷宫墙壁的位置;3.设计老鼠应该用何策略才有可能逃脱被抓的命运 用C++语言,或者c语言
2 总体设计
在猫捉老鼠的模拟中,用到了二维指针。利用二维指针建立了迷宫,并且通过0代表通路,用1代表墙。在建立迷宫函数中,利用引用传递参数使迷宫自动生成。(自动是利用srand(time(NULL))来“播种子”后利用rand()%9来确定这些随机数是0~9之间,判断随即数大于6,则生成墙,否则为通路。这样就建立了迷宫。)
其次是利用结构体数组来作为栈,将老鼠和猫的每一步存入到栈中(也就是数组),当到达出口时则进行输出。
老鼠的走法是猫寻找迷宫的最短路径,寻找最短的出路,先将出口压入到栈中,并判断上、左、右斜上、左斜下单元的情况,并每次判断后将可行的路加入栈中,直到栈中的元素与迷宫中老鼠的初始位置相同的时候则将栈(数组)进行输出。
猫的走法是每一次老鼠走完后,都将老鼠的位置作为终点,进行判断,取最短的路径经行行走,每走一次将所走位置压入堆栈,最后输出。
图1 猫捉老鼠的模拟
3 详细设计
3.1结构体设计
3.2模块设计
图2 建立迷宫函数模块
3.3主模块设计
图4 主函数模块
4 运行结果
输入迷宫的行数
输入迷宫的列数,并随即生成迷宫,输出迷宫。
判断老鼠和猫的位置是否为墙,此时为猫为墙。完成函数操作。
输入迷宫出口,若老鼠位置及老鼠位置及出口位置不为墙,则老鼠和猫自动判断最短路径。猫捉老鼠函数结束后判断是否重新开始。
5 课程设计总结
在2个多星期的课题设计周中,我发现了自己许多的不足之处。就拿二维数组迷宫的自动创建为例,其中加入的cstdlib这个库函数,如果不翻阅资料是不会知道的。我从不同的书籍中查阅到了这点,自己的知识也有所长进。编写代码的时候有许多的繁琐之处,这些繁琐的地方都是通过不断的自我修改才不断完善,并且这种能力在不断的加强。学会了自己分段调试程序,不断在错误中改正自己犯的小细节错误。就这样在自己的错误中不断的提升了自己的能力,本打着挑战下自己的心态但最后还是发现自己做的c++太少了,以至于这套程序的不完整性。因此,这次的课题设计让我认识到了自己的不足,并且让我知道了自己的能力还是欠缺,需要在不断的学习中进步。
猫捉老鼠的模拟
二维数组代替迷宫(0代表通路,1代表墙。其中加入了随机数,并判断大于6让0和1随即的产生)
将做好的迷宫作为参数传入到函数中去
初始老鼠的起始位置
初始猫的起始位置
老鼠的走法
猫的走法
输出最后老鼠和猫所走路线
Struct Mark(迷宫结构体)
{
int x;
int y;
}
迷宫结构体
Struct zhan
{
int h;
int z;
}
用来存放猫和老鼠的路径
迷宫建立完成
开始
随机数6?
输入迷宫行数和列数m,n
int i; int j;
im?
jn?
a[i][j]=1
a[i][j]=0
是
是
是
否
否
否
输出a[i][j]
结束
随即产生猫和老鼠的起始位置
开始
猫的位置是否为墙
老鼠的位置是否为墙
出口的位置是否为墙
否
否
是
是
迷宫出口位置赋值给i1,j1
老鼠起始位置赋值给i2,j2
出口位置是否等于老鼠起始位置
累加器加1
否
累加器是否为1
Maze[i1][j1]==0
i1--
累加器是否为2
累加器清零
否
是
是
j1--
累加器是否为3
是
i1--;j1--
否
判断是否为来路
是
累加器加一
累加器是否为4
否
否
i1++;j1--
累加器不是1,2,3,4
否
是
将坐标设为不可通行
在回到上一次可通行道路
老鼠栈不为空
输出路径
结束
开始
建立迷宫函数
猫捉老鼠函数
结束
您可能关注的文档
- 课程设计---费诺编码和自适应算术编码.doc
- 课程设计---分级变速主传动系统设计.doc
- 课程设计--服装店管理系统之门店系统.doc
- 课程设计--服装企业网站课程设计.doc
- 课程设计---改进型电容三点式正弦波振荡器.doc
- 课程设计---钢筋混凝土单向板肋形楼盖设计.doc
- 课程设计---钢水包滑动水口液压系统设计.docx
- 课程设计---高速公路警示灯的设计.doc
- 课程设计---高频谐振功率放大器设计.doc
- 课程设计---工商银行ATM系统设计.doc
- 毕马威-银行业可持续相关信息披露:2024年报告周期基准分析结果.pdf
- 国信证券-金属行业中期投资策略:供给收缩需求稳增,逆全球化下金属价值重估.pdf
- 方正证券-基础化工行业-25Q2化工景气底部延续,关注业绩增量具备确定性的板块及个股.pdf
- 西部证券-京东物流-2618.HK-首次覆盖报告-开放创新、稳健成长的一体化供应链龙头.pdf
- 东北证券-机械设备行业机器人轻量化-材料与技术的革新之路.pdf
- 西部证券-康农种业-837403-首次覆盖报告:种业后起之秀大单品快速放量打开成长空间.pdf
- 平安证券-社会服务行业2025年中期策略报告:新世代、新需求、新消费.pdf
- 长城证券-Robotaxi正式推出量子计算迎来最新突破看好智驾、量子产业链长期发展.pdf
- 国盛证券-容知日新-688768-蓝海市场渗透率提升,预测性维护让工业更美好.pdf
- 广发证券-金融-银行行业:如何理解外币存款增量回升?.pdf
最近下载
- 电力设备公司产品制造车间生产定额计件工资实施办法.docx VIP
- 2023国有企业“三重一大”决策制度实施细则办法.pdf VIP
- 安徽大学《地球科学概论》课件-第4讲大气圈、冰冻圈、岩石圈.pptx VIP
- 国家开放大学(电大)《农业生态基础.》2020年09月春季期末考试真题及答案(试卷代号2794).pdf VIP
- 餐饮行业员工职业规划.pptx VIP
- 《数学数学期望》课件.ppt VIP
- 肾病内科专业疾病临床诊疗规范2025版.docx VIP
- 质量信得过班组培训课件.pptx VIP
- 《高级英语FacetoFacewithHurricaneCamille》-精选课件(公开).ppt VIP
- 高中化学课件:芳环上的亲核取代反应.pptx VIP
文档评论(0)