1、 数据结构数据结构 课程设计报告课程设计报告 设计题目:走迷宫游戏 专 业:计算机科技 院 系:计算机学院 姓 名: xxxxxxxx 学 号: xxxxxxxxx 时间:2013 年 10 月 10 日 数据结构课程设计 走迷宫游戏 1 / 18 目目 录录 一、一、课程设计的目课程设计的目 的的2 二、二、需求分需求分 析析2 三、三、课程设计报告内课程设计报告内 容容3 1.概要设 计3 2.详细设 计.4 3.调试分 析9 4.用户手 册9 5.测试结 果10 6.程序清 单11 数据结构课程设计 走迷宫游戏 2 / 18 四、四、小结小结16 五、五、参考文献参考文献16 一、一、课
2、程设计的目的课程设计的目的 (1) 熟练使用 C 语言编写程序,解决实际问题; (2) 了解并掌握数据结构与算法的设计方法, 具备初步的独立分析和 设计能力; (3) 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试 等基本方法和技能; (4) 提高综合运用所学的理论知识和方法独立分析和解决问题的能 力; 二、二、需求分析需求分析 程序开始运行时显示一个迷宫地图, 迷宫中央有一只老鼠,迷宫的右 下方有一个粮仓。 游戏的任务是使用键盘上的方向键操纵老鼠在规定 的时间内走到粮仓处。 数据结构课程设计 走迷宫游戏 3 / 18 要求: 老鼠形象可辨认,可用键盘操纵老鼠上下左右移动; 迷宫的墙
3、足够结实,老鼠不能穿墙而过; 正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则 提示失败; 添加编辑迷宫功能, 可修改当前迷宫, 修改内容: 墙变路、 路变墙; 找出走出迷宫的所有路径,以及最短路径。 利用序列化功能实现迷宫地图文件的存盘和读出等功能 三三、实验报告内容、实验报告内容 1 1 概要设计概要设计 (1) 具体要求 构建一个二维数组 mazeM+2N+2用于存储迷宫矩阵 自动或手动生成迷宫,即为二维数组 mazeM+2N+2赋值 构建一个队列用于存储迷宫路径 建立迷宫节点 struct point,用于存储迷宫中每个节点的访问 情况 实现搜索算法 屏幕上显示操作菜单 (2
4、)本程序包含 10 个函数: 主函数 main() 手动生成迷宫函数 shoudong_maze() 数据结构课程设计 走迷宫游戏 4 / 18 自动生成迷宫函数 zidong_maze() 将迷宫打印成图形 print_maze() 打印迷宫路径 (若存在路径) result_maze() 入队 enqueue() 出队 dequeue() 判断队列是否为空 is_empty() 访问节点 visit() 搜索迷宫路径 mgpath() 2 2 详细设计详细设计 实现概要设计中定义的所有数据类型及操作的伪代码算法 节点类型和指针类型 迷宫矩阵类型:int mazeM+2N+2;为方便操作使其
5、为全局变量 迷宫中节点类型及队列类型:struct pointint row,col,predecessor que512 迷宫的操作 (1)手动生成迷宫 void shoudong_maze(int m,int n) 定义 i,j 为循环变量 for(i0且 mazep.row-1p.col=0,说明未到迷宫上边界, 且其上方有通路,则visit(p.row,p.col+1,maze),将上方节点入队标 记已访问 访问到出口(找到路径)即 p.row=m-1 且 p.col=n-1,则逆序将路径 标记为 3 即 mazep.rowp.col=3; while(p.predecessor!=-1) p=queuep.predecessor; mazep.rowp.col=3; 最后将路径图形打印出来。 菜单选择 while(cycle!=(-1) printf(“