资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
课程设计报告课程名称: 数据结构 报告题目: 迷宫求解 学生姓名: XX 所在学院: 信息科学与工程 专业班级: 软件工程 学生学号:XXXXXXXXXXX 指导教师: XXX 2017 年 12 月 29 日课程设计任务书报告题目报告题目迷宫求解程序设计完成时间完成时间2017.12.29学生姓名学生姓名专业班级指导教师XXX职 称总体设计要求和技术要点课程设计要求 1.可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径, 并将路径输出; 2.在上交资料中请写明:存储结构、基本算法(可以使用程序流程图) 、源程序、 测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;工作内容及时间进度安排第 17 周:周 1-周 3 :立题、论证方案设计周 4-周 5 :完成项目一,项目二的整体设计第 18 周:周 1-周 2:调试程序,解决问题周 3-周 5 :写实验报告 课程设计成果1程序设计内容以及对应的软件程序2课程设计总结报告摘摘 要要本程序主要是求迷宫中从人口到出口的所有路径是一个经典的程序设计问题。计算机解迷宫时,通常用的是“穷举求解”的方法,即从入口出发,顺某一方向向前探索,若能走通,则继续往前走;否则沿原路返回,换一个方向在继续探索,直至所有可能的通路都探索完为止。当前位置“可通” ,则纳入“当前路径” ,并继续朝“下一位置”探索,即切换为“下一位置”为“当前位置” ,如此重复直至到达出口;若当前位置“不可通” ,则应顺着“来的方向”退回到“前一通道块” ,若该通道块的四周 4 个方块均“不可通”则应从当前路径删除该通道块。所谓“下一位置”指的是“当前位置”四周 4 个方向(东、南、西、北)上相邻的方块。以栈 S 来记录“当前路径” ,则栈顶中存放的是“当前路径上最后一个通道块” 。所以即为“当前路径入栈” ;“从当前路径上删除前一通道块”为“出栈” 。在这个过程中可以输出迷宫所走通的路径,在这次课程设计中迷宫是由数组预先定义好的,不能由用户定义生成,可以加入随机函数,自动生成二维数组,还可以用户自己输入迷宫。关键词关键词:栈;存储结构;数组目目 录录一、课题分析.1 二、需求分析.1 1. 主模块功能描述.1 2. 子程序模块设计.1 三、设计方案.1 1.类设计.1 2.程序模块设计.2 设计方案与实施与总体设计思想.2 3. 主模块.3 3.1 子模块.4 3.1 主菜单.5 3.2 功能 A 模块.5 3.3 功能 B 模块.5 3.4 功能 C 模块.6 四、详细设计.7 1.用结构体构建栈.7 2.构建类.7 3.用数组构建一个迷宫.8 4.游戏移动控制指令.9 5.游戏移动控制指令四个方向的实现.10 6.游戏移动过程中若是未找到通路,需要返回的指令.11 7.游戏的主循环.11 8.游戏的开始于结束.12 9.迷宫地图的查看与通关后的路径查询.13 五、设计总结.13 结论与心得.13 五、参考文献.151一、课题分析一、课题分析(1)该题目为迷宫求解。(2)此课题是对迷宫问题的求解。包括用数组生成迷宫,显示输出路径因此,本程序设计共需设计一个主程序以及若干个子程序。(3)在本课程设计程序里,主程序主要是以一个 mn 的长方形表示迷宫,0和 1 分别表示迷宫中的通路和障碍。设计一个程序,对设定的迷宫,求出一条从入口到出口的通路,子程序实现迷宫地图的查看和通过迷宫后的路径查询。二、需求分析二、需求分析1.1. 主模块功能描述主模块功能描述 显示提示语句提示用用户选择输入执行的功能。(1)开始迷宫求解游戏 (2)查询迷宫地图(3)查询通过迷宫后的路径 2.2. 子程序模块设计子程序模块设计(1)迷宫求解游戏输入 1 开始游戏(2)查询迷宫地图在菜单中输入 2 查看迷宫求解的地图(3)查询通过迷宫后的路径输入 2 查询通关路径三、设计方案三、设计方案1.1.类设计类设计构建一个 Hidding 类,并有私有成员:x 坐标,y 坐标,位置标志,初始方向;共有成员:PrintMap 打印地图,GameFunction 游戏主循环,Move_up 向上移动,Move_down 向下移动,Move_le
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号