课程设计猫抓老鼠的模拟.doc_第1页
课程设计猫抓老鼠的模拟.doc_第2页
课程设计猫抓老鼠的模拟.doc_第3页
课程设计猫抓老鼠的模拟.doc_第4页
课程设计猫抓老鼠的模拟.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息科学与技术学院程序设计基础课程设计报告题目名称: 猫抓老鼠的模拟 学生姓名: 周相 学 号: 2011508002 专业班级: 2011级计算机与科学技术1班 指导教师: 高攀 2012年 6 月 29 日目录1 课程设计题目与要求31.1设计题目31.2设计要求32 总体设计43 详细设计53.1数据结构设计53.2主模块设计54 运行结果85 课程设计总结101 课程设计题目与要求1.1设计题目猫抓老鼠的模拟1.2设计要求1) 设计一个迷宫:猫,老鼠的位置随机生成;2) 猫,老鼠每移动一次,都重新计算最短路径.3) 分别模拟猫的速度大于老鼠,猫的速度等于老鼠两种情形.4) 迷宫可用数组表示,最短路径可用队列表示.1.3功能扩展(自己定制)1.可增加猫的数量;2.可随机生成迷宫墙壁的位置;3.设计老鼠应该用何策略才有可能逃脱被抓的命运 用C+语言,或者c语言2 总体设计 在猫捉老鼠的模拟中,用到了二维指针。利用二维指针建立了迷宫,并且通过0代表通路,用1代表墙。在建立迷宫函数中,利用引用传递参数使迷宫自动生成。(自动是利用srand(time(NULL)来“播种子”后利用rand()%9来确定这些随机数是09之间,判断随即数大于6,则生成墙,否则为通路。这样就建立了迷宫。) 其次是利用结构体数组来作为栈,将老鼠和猫的每一步存入到栈中(也就是数组),当到达出口时则进行输出。 老鼠的走法是猫寻找迷宫的最短路径,寻找最短的出路,先将出口压入到栈中,并判断上、左、右斜上、左斜下单元的情况,并每次判断后将可行的路加入栈中,直到栈中的元素与迷宫中老鼠的初始位置相同的时候则将栈(数组)进行输出。 猫的走法是每一次老鼠走完后,都将老鼠的位置作为终点,进行判断,取最短的路径经行行走,每走一次将所走位置压入堆栈,最后输出。 猫捉老鼠的模拟二维数组代替迷宫(0代表通路,1代表墙。其中加入了随机数,并判断大于6让0和1随即的产生)将做好的迷宫作为参数传入到函数中去初始老鼠的起始位置初始猫的起始位置老鼠的走法猫的走法输出最后老鼠和猫所走路线图1 猫捉老鼠的模拟3 详细设计Struct Mark(迷宫结构体)int x;int y;迷宫结构体3.1结构体设计 Struct zhanint h;int z;用来存放猫和老鼠的路径3.2模块设计 迷宫建立完成开始随机数6?输入迷宫行数和列数m,nint i; int j;im?jn?aij=1aij=0是是是否否否输出aij结束 图2 建立迷宫函数模块随即产生猫和老鼠的起始位置开始猫的位置是否为墙老鼠的位置是否为墙出口的位置是否为墙否否是是迷宫出口位置赋值给i1,j1老鼠起始位置赋值给i2,j2出口位置是否等于老鼠起始位置累加器加1否累加器是否为1Mazei1j1=0i1-累加器是否为2累加器清零否是是j1-累加器是否为3是i1-;j1-否判断是否为来路是累加器加一累加器是否为4否否i1+;j1-累加器不是1,2,3,4否是将坐标设为不可通行在回到上一次可通行道路老鼠栈不为空输出路径结束3.3主模块设计开始建立迷宫函数猫捉老鼠函数结束 图4 主函数模块4 运行结果输入迷宫的行数输入迷宫的列数,并随即生成迷宫,输出迷宫。判断老鼠和猫的位置是否为墙,此时为猫为墙。完成函数操作。输入迷宫出口,若老鼠位置及老鼠位置及出口位置不为墙,则老鼠和猫自动判断最短路径。猫捉老鼠函数结束后判断是否重新开始。5 课程设计总结 在2个多星期的课题设计周中,我发现了自己许多的不足之处。就拿二维数组迷宫的自动创建为例,其中加入的cstdlib这个库函数,如果不翻阅资料是不会知道的。我从不同的书籍中查阅到了这点,自己的知识也有所长进。编写代码的时候有许多的繁琐之处,这些繁琐的地方都是通过不断的自我修改才不断完善,并且这种能力在不断的加强。学会了自己分段调试程序,不断在错误中改正自己犯的小细节错误。就这样在自己的错误中不断的提升了自己的能力,本打着挑战下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论