数据结构课程设计报告——走迷宫
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安建筑科技大学课程设计(论文)
题目:可视化走迷宫游戏院(系):
专业班级:
姓名:
学号:
指导教师:
2011年9月15日
西安建筑科技大学课程设计(论文)任务书
专业班级:计算机901 学生姓名:指导教师(签名):
一、课程设计(论文)题目
走迷宫游戏:程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。
二、本次课程设计(论文)应达到的目的
数据结构是实践性很强的课程。课程设计是加强学生实践能力的一个强有力手段。课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。
本题目要达到目的:熟练掌握最短路径的算法设计。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)
1、老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;
2、迷宫的墙足够结实,老鼠不能穿墙而过;
3、正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;
4、添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙;
找出走出迷宫的所有路径,以及最短路径。
四、应收集的资料及主要参考文献:
由于本课程没有安排“课内上机”学时,因此,在课程设计之前必须自己已经上机练习了“线性表”的基本操作。
参考文献:
1. 本年级使用的教材:数据结构与算法分析(C++版)(第二版)影印版2005.7
2. 数据结构与算法,科学出版社,2005.08;赵文静祁飞等编著
3. 数据结构-C++语言描述,西安交通大学出版社,1999.01,赵文静编著
4. 《Visual C++编程实例》(任意一本此类书籍)
五、审核批准意见
教研室主任(签字)
摘要
本设计是为了实现一个可视化迷宫,以及利用最短路径算法寻找迷宫的出路以及将最短路径打印在屏幕上,并且限制小老鼠不能穿越墙,只能在路径上移动。而且可以根据自己的需要设计迷宫地图。
关键词:mfc
目录
一.设计目的 (1)
二.问题描述 (1)
三.需求分析 (1)
四.概要设计 (2)
五.详细设计 (4)
六.测试分析 (27)
七.使用说明 (36)
八.总结 (37)
九.参考文献 (38)
《数据结构》课程设计—二叉树的遍历及树
与二叉树的转换
一.设计目的
通过课程设计,巩固所学的理论知识,培养综合运用所学知识解决实际问题的能力。能根据实际问题的具体情况,结合数据结构课程中的基本理论和基本算法,正确分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法。
二.问题描述
1.地图要求:
根据要求构造一个迷宫地图,并且是老鼠清晰可见,可用键盘操纵老鼠上下左右移动;有一个窗口显示部分地图,另一个窗口显示全部题图。
2.操作:
老鼠不能穿墙而过,当老鼠到达粮仓提示成功。可以自动找到迷宫的所有路径以及画出最短路径。
三.需求分析
1.利用mfc可以把迷宫地图以及老鼠形象可变的画出来。
2.需要有墙有路,通过把迷宫地图划分成一个一个小方块,通过一个数组的值来判断是墙是路。(1表示墙0表示路)
3.通过鼠标事件控制老鼠的移动。
4.把每个数组元素对应一个按钮根据点击按钮,改变数组的值从而改变墙和路的转化。
四.概要设计
图1 程序界面图
4.1、操作界面
利用mfc单文档初始化界面,设置meau选项,以及分割成大小两个窗口。
4.2、用户的登陆界面
利用对话框设计用户登陆界面,界面包括用户名,选择的迷宫级别。
4.3、地图的绘制
根据登陆界面的上面的信息,绘制迷宫地图。选择加载全图
菜单会显示迷宫总图。
4.4、游戏音乐的设置
在迷宫加载之后,播放背景音乐,利用多线程异步播放。
4.5、小老鼠键盘操作
利用键盘事件,完成小老鼠的操作。
4.6、全图与部分的同步
利用CFrameWnd类实现两个view类的同步操作。
4.7、搜索迷宫路径及最短路径的显示
选择‘路径‘菜单利用递归搜索出迷宫所有路径并且把最短路径绘制在全图显示中。
4.8、编辑迷宫地图
利用对话框中每一个按钮对用迷宫的一部分,编辑迷宫地图。
4.9、层次序遍历算法
按照树的层次从左到右访问树的结点,层序遍历用于保存结点的容器是队列。void LevelOrder(BiNode root)。
4.10、树与二叉树的转换算法
转换时结点的第一个孩子变为它的左孩子,兄弟节点变为他的有孩子。void exchange(),class Tree。
4.11、结束界面
利用选继续还是结束游戏作为结束画面,点击继续级别将自动加1.
五.详细设计
5.1、各模块流程图
图1 游戏界面显示
图2 小老鼠操作
图3、全图与部分图的同步
图4、迷宫路径以及最短路径
图5、后序递归遍历
图6、前序非递归遍历
图7、中序非递归遍历
图8、后序非递归遍历