数据结构课程设计报告-老鼠走迷宫

数据结构课程设计报告-老鼠走迷宫

ID:6789286

大小:375.00 KB

页数:32页

时间:2018-01-25

数据结构课程设计报告-老鼠走迷宫_第1页
数据结构课程设计报告-老鼠走迷宫_第2页
数据结构课程设计报告-老鼠走迷宫_第3页
数据结构课程设计报告-老鼠走迷宫_第4页
数据结构课程设计报告-老鼠走迷宫_第5页
资源描述:

《数据结构课程设计报告-老鼠走迷宫》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、课程设计说明书课程名称:数据结构与算法专业:软件工程班级:15-2姓名:xx学号:2xxxxxx2指导教师:xx完成日期:2017年1月3日31任务书题目:老鼠走迷宫设计内容及要求:1.课程设计任务内容程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。2.课程设计要求1)老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;2)迷宫的墙足够结实,老鼠不能穿墙而过;3)正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;4)添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙;

2、5)找出走出迷宫的所有路径,以及最短路径;6)利用序列化功能实现迷宫地图文件的存盘和读出等功能。开发环境:QTCreator、QT5.631目录1.引言22.课题分析33.具体设计过程43.1设计思路43.2程序设计流程图53.3.函数实现说明64.程序运行结果75.软件使用说明116.结论11参考文献13311.引言课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的、必不可少的一个教学环节。通常,课程设计中的问题比平时的习题复杂的多,也更接近实际。课程设计着眼于原理与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力

3、;另一方面,能使书上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。平时的习题较偏重于如何编写功能单一的“小”算法,局限于一个或两个知识点,而课程设计题是软件设计的综合训练,包括问题分析,总体结构设计,用户界面设计、程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。此外,还有很重要的一点是:计算机是比任何教师更严厉的检查者。为达到上述目的,使学生更好地掌握程序设计的基本方法和C++语言的应用,本课程安排了课程设计环节,提供了各类题目供学生选择。每个设计题采取了统一的格式,由问题描述、基本要求、测试数据、实现提示和选做内容等五个部分组成。问题描

4、述旨在为学生建立问题提出的背景,指明问题“是什么”。基本要求则对问题进一步求精,划出问题的边界,指出具体的参量或前提条件,并规定该题的最低限度要求。测试数据部分旨在为检查学生上机作业提供方便。在实现提示部分,对实现中的难点及其解法思路等问题作了简要提示,提示的实现方法未必是最好的,学生不应拘泥与此,而应努力设计和开发更好的方法和结构。选做部分向那些尚有余力的读者提出了更高的要求,同时也能开拓其它读者的思路,在完成基本要求时就力求避免就事论事的不良思想方法,尽可能寻求具有普遍意义的解法,使得程序结构合理,容易修改、扩充和重用。312.课题分析编写一个《老鼠走迷宫》的C++程序,包

5、括以下功能:初始状态:迷宫处为空白,输入长宽设定迷宫大小,时间剩余为300s。具体要求如下:1.点击生成迷宫,窗口左上方生成一个指定大小的迷宫,老鼠位于迷宫中央,粮仓位于迷宫右下角,开始计时。2.可以通过键盘上的方向键控制老鼠移动。3.点击显示路径按钮时,显示一条绿色的通道通向粮仓。4.点击最短路径按钮时,显示一条绿色的通道(最短)通向粮仓。5.点击拆墙/补墙时,老鼠可在迷宫内自由移动,老鼠所走过的墙将变成路/路将变成墙。6.点击取消作弊,恢复原始状态。即老鼠只能通过路。7.当剩余时间为0时,弹出对话框,游戏失败,游戏结束。8.当老鼠走到粮仓处时,弹出对话框,找到出口,游戏结束

6、。9.点击储存地图时,将当前地图以矩阵形势存于文件中;点击读取地图时,将文件中的数据赋予迷宫矩阵,创建迷宫。313.具体设计过程3.1设计思路定义迷宫节点,包含x,y(坐标)与state(0为墙,1为通路),使用迷宫节点矩阵表示迷宫,使用回溯法创建迷宫节点矩阵。利用深度优先遍历寻找出老鼠到粮仓的所有路径,利用广度优先遍历寻找老鼠到粮仓的最短路径,将路径中的节点的state置为2,在普通模式下,老鼠仅可通过state为1的节点,当作弊模式开启时,老鼠可通过任意state的节点并且通过的节点的state值会相应的改变。打印迷宫时,state为0的节点使用黑色矩形填充,state为1

7、的节点不填充,state为2的使用绿色矩形填充。3.2程序设计流程图_maze//迷宫节点box//路径节点box1//最短路径节点inti;intj;intstate;inti;intj;intdirection;inti;intj;intpre;intnum;classmazepublic:voidpaintEvent(QPaintEvent*);voidkeyPressEvent(QKeyEvent*);boolisOdd();//判断lineedit输入是否为奇数voidcreatM

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。