数据结构迷宫求解课程设计报告

数据结构迷宫求解课程设计报告

ID:15820076

大小:658.50 KB

页数:19页

时间:2018-08-05

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

《数据结构迷宫求解课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课程设计报告课程名称:数据结构报告题目:迷宫求解学生姓名:XX所在学院:信息科学与工程专业班级:软件工程学生学号:XXXXXXXXXXX指导教师:XXX2017年12月29日课程设计任务书报告题目迷宫求解程序设计完成时间2017.12.29学生姓名专业班级指导教师XXX职称总体设计要求和技术要点课程设计要求1.可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;2.在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的

2、改进方法;工作内容及时间进度安排第17周:周1---周3:立题、论证方案设计周4---周5:完成项目一,项目二的整体设计第18周:周1---周2:调试程序,解决问题周3---周5:写实验报告课程设计成果1.程序设计内容以及对应的软件程序2.课程设计总结报告摘要本程序主要是求迷宫中从人口到出口的所有路径是一个经典的程序设计问题。计算机解迷宫时,通常用的是“穷举求解”的方法,即从入口出发,顺某一方向向前探索,若能走通,则继续往前走;否则沿原路返回,换一个方向在继续探索,直至所有可能的通路都探索完为止。当前位置“可通”,则

3、纳入“当前路径”,并继续朝“下一位置”探索,即切换为“下一位置”为“当前位置”,如此重复直至到达出口;若当前位置“不可通”,则应顺着“来的方向”退回到“前一通道块”,若该通道块的四周4个方块均“不可通”则应从当前路径删除该通道块。所谓“下一位置”指的是“当前位置”四周4个方向(东、南、西、北)上相邻的方块。以栈S来记录“当前路径”,则栈顶中存放的是“当前路径上最后一个通道块”。所以即为“当前路径入栈”;“从当前路径上删除前一通道块”为“出栈”。在这个过程中可以输出迷宫所走通的路径,在这次课程设计中迷宫是由数组预先定义

4、好的,不能由用户定义生成,可以加入随机函数,自动生成二维数组,还可以用户自己输入迷宫。关键词:栈;存储结构;数组目录一、课题分析1二、需求分析11.主模块功能描述12.子程序模块设计1三、设计方案11.类设计12.程序模块设计2设计方案与实施与总体设计思想23.主模块33.1子模块43.1主菜单53.2功能A模块53.3功能B模块53.4功能C模块6四、详细设计71.用结构体构建栈72.构建类73.用数组构建一个迷宫84.游戏移动控制指令95.游戏移动控制指令四个方向的实现106.游戏移动过程中若是未找到通路,需要返

5、回的指令117.游戏的主循环118.游戏的开始于结束129.迷宫地图的查看与通关后的路径查询13五、设计总结13结论与心得13五、参考文献15一、课题分析(1)该题目为迷宫求解。(2)此课题是对迷宫问题的求解。包括用数组生成迷宫,显示输出路径因此,本程序设计共需设计一个主程序以及若干个子程序。(3)在本课程设计程序里,主程序主要是以一个m×n的长方形表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对设定的迷宫,求出一条从入口到出口的通路,子程序实现迷宫地图的查看和通过迷宫后的路径查询。二、需求分析1.主模块

6、功能描述显示提示语句提示用用户选择输入执行的功能。(1)开始迷宫求解游戏(2)查询迷宫地图(3)查询通过迷宫后的路径2.子程序模块设计(1)迷宫求解游戏输入1开始游戏(2)查询迷宫地图在菜单中输入2查看迷宫求解的地图(3)查询通过迷宫后的路径输入2查询通关路径三、设计方案1.类设计15构建一个Hidding类,并有私有成员:x坐标,y坐标,位置标志,初始方向;共有成员:PrintMap打印地图,GameFunction游戏主循环,Move_up向上移动,Move_down向下移动,Move_left向左移动,Move

7、_right向右移动,IsGameOver判断游戏是否结束,Move_Keys接收移动的指令,InDirection相反方向输出,dir_flage方向标志,Hidding::Start()开始游戏等等类,在通过类的实现来执行相应的功能,具体代码如下:classHidding{private:intpoint_x;//控制运动的点的x坐标intpoint_y;//控制运动的点的y坐标intflage;//判断标志intdirection;//初始方向public:Hidding();intPrintMap(intma

8、p[H][H]);//打印地图intGameFunction(intmap[H][H],SqStack&S);//游戏主循环intMove_up(intmap[H][H],SqStack&S);//向上移动intMove_down(intmap[H][H],SqStack&S);//向下移动intMove_left(intmap[H][H],S

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

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

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