1、1 课 程 设 计 报 告 课程名称课程名称 数据结构课程设计数据结构课程设计 课题名称课题名称 迷宫问题迷宫问题 专专 业业 计算机科学与技术计算机科学与技术 2 一 、 设 计 内容与设计要 求一 、 设 计 内容与设计要 求 1 1设计内容:设计内容: 1)问题描述 以一个 M*N 的长方阵表示迷宫,0 和 1 分别表示迷宫中的通路和墙壁。设计一个程 序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出米有通路的结论。 2)基本要求 a.实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得 的通路以三元组(i,j,d)的形式输出,其中: (i,j)指示迷宫中的一个
2、坐标,d 表示走 到下一个坐标的方向。 b.编写递归形式的算法,求得迷宫中所有可能的通路。 3)测试数据 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 4)实现提示 计算机解迷宫通常用的是“穷举求解”方法,即从入口出发,顺着某一个方向进行探 索,若能走通,则继续往前进;否则,沿着原路退回
3、,换一个方向继续探索,直至出口位 置,求得一条通路。假如所有可能的通路都探索到而未能到达出口,则设定的迷宫没有通 路。 可以二维数组存储迷宫数据, 通常设定入口点的下标为 (1, 1) , 出口点的下标为 (m, n) 。 为处理方便起见, 可在迷宫的四周加一圈障碍。 对于迷宫中任一位置, 均可约定有东、 南、西、北四个方向可通。 3 2 2设计要设计要求:求: 课程设计报告规范课程设计报告规范 1)1)需求分析需求分析 a.程序的功能。 b.输入输出的要求。 2)2)概要设计概要设计 a. 程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能。 b. 课题涉及的数据结构
4、和数据库结构;即要存储什么数据,这些数据是什么样的结构, 它们之间有什么关系等。 3)3)详细设计详细设计 a.采用 C 语言定义相关的数据类型。 b.写出各模块的类 C 码算法。 c.画出各函数的调用关系图、主要函数的流程图。 4)4)调试分析以及设计体会调试分析以及设计体会 a.测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误 的输入及输出结果。 b.程序调试中遇到的问题以及解决问题的方法。 c.课程设计过程经验教训、心得体会。 5)5)使用说明使用说明 用户使用手册:说明如何使用你编写的程序,详细列出每一步的操作步骤。 6)6)书写格式书写格式 见附带说明。 7
5、)7)附录附录 a.参考书目 b.源程序清单(带注释) 4 目录 一、一、 任务书任务书2 二、二、 基本算法基本算法7 三、三、 需求分析需求分析7 a. 程序的功能程序的功能7 b. 输入输出的要求输入输出的要求7 c. 程序算法分析程序算法分析8 四、四、 概要设计概要设计8 i. 设计中非递归程序的模块结构图设计中非递归程序的模块结构图8 ii. 程序的数据结构和数据库结构分析程序的数据结构和数据库结构分析9 iii. 试探方向的设计试探方向的设计10 iv.iv. 达某点,以避免发生死循环达某点,以避免发生死循环1111 五、五、 详细设计详细设计1111 a.a. 伪码设计伪码设计1111 b.b. mgp