1、 课课 程程 设设 计计 报报 告告 课程设计名称:数据结构课程设计数据结构课程设计 课程设计题目:迷宫算法 院(系):计算机学院 专 业:计算机科学与技术 班 级: 学 号: I 目目 录录 1 1 课程设计介绍课程设计介绍 1 1.1 课程设计内容 . 1 1.2 课程设计要求 . 1 2 2 课程设计原理课程设计原理 2 2.1 课设题目粗略分析 . 2 2.2 原理图介绍 . 3 2.2.1 功能模块图 . 3 2.2.2 流程图分析 . 4 3 数据结构分析数据结构分析 8 3.1 存储结构 . 8 3.2 算法描述 . 8 4 4 调试与分析调试与分析 .11 4.1 调试过程 1
2、1 4.2 程序执行过程 11 参考文献参考文献 15 附附 录(关键部分程序清单)录(关键部分程序清单) 16 1 1 1 课程设计介绍课程设计介绍 1.1 1.1 课程设计内容课程设计内容 编写算法能够生成迷宫,并且求解迷宫路径(求解出任意一条到出口的路径 即可) : 1. 迷宫用上下左右四种走法; 2. 迷宫的大小和复杂程度可以由用户定义; 3. 入口出口也由用户自己选择。 1.2 1.2 课程设计要求课程设计要求 1. 不必演示求解过程,只需要输出迷宫求解的路径; 2. 参考相应资料完成课设。 2 2 2 课程设计原理课程设计原理 2.1 2.1 课设课设题目粗略分析题目粗略分析 根据
3、课设题目要求,拟将整体程序分为四大模块。以下是四个模块的大体分 析: 1 建立迷宫: 要建立迷宫首先就要建立存储结构, 这里我用栈的方式建立的。 根据用户输入的迷宫的大小(我设置的最大值为 25 可以根据要求调解) ; 2 设置迷宫:这里将 0 设置围墙,1 是可以通过的路径,-1 是不可以通过路 径,外墙是以设计好的,内墙需要用户来设置,障碍的难度可由用户自行定 义; 3 寻找路径:寻找路径我设置了四个方向0,1,1,0,0,-1,-1,0移动方向, 依次为东南西北,首先向东走,若不成功则转换方向,成功则继续前进,将 走过的路径进行标记,然后存入栈中; 4 输出结果:输出的结果分为两种,一种
4、是用户建立的迷宫主要是让用户检 查是否符合要求,第二种输出的是寻找完后的路径,路径用 1 2 3 4 来表 示。 3 2 2. .2 2 原理图介绍原理图介绍 2.2.1 2.2.1 功能模块图功能模块图 迷宫求解 建 立 迷 宫 设 置 迷 宫 寻 找 路 径 输 出 结 果 图 2.1 功能模块图 如图 2.1 所示 4 2.2.2 流程图分析流程图分析 1. 建立迷宫 开始 构建一个空栈InitStack(SqStack *S) 判断栈是否为空 N 建立迷宫,将所有的周边值设为 mx1y1=0; 结束 输入迷宫的行数x和列数 y Y 图 2.2 建立迷宫函数流程图 5 2. 设置迷宫 图 2.3 设置迷宫函数流程图 设置迷宫内部,将内墙设为mx1y1=0, 开始 结束 输入迷宫的内墙数j,和具体位置x1 y1 输入迷宫的指点和终点 函数输出已建 立好的迷宫供用户检查 6 3. 寻找路径 可以通过FootPrint(curpos); / 留下足迹,入栈Push(足迹 加一curstep+