1、 1 详细设计详细设计 数据结构项目设计数据结构项目设计 项目设计文档项目设计文档 项目名称: 迷宫求解 班级: 网络工程 3101 学号: 姓名: 指导教师: 完成时间: 2011 年 6 月 2 项项 目目 文文 档档 一、项目目标:一、项目目标: 可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并 将路径输出。 二、项目进度表:二、项目进度表: 活动 开始时间 结束时间 责任人 设计 2011-6-24 2011-6-24 胡维国 设计评审 2011-6-24 2011-6-24 胡维国 设计整理 2011-6-24 2011-6-24 胡维国 编码单位 1 (迷宫
2、构建) 2011-6-24 2011-6-24 胡维国 编码单位 2 (迷宫求解) 2011-6-24 2011-6-24 胡维国 单位测试 1 () 2011-6-24 2011-6-24 胡维国 单位测试 1 整理 2011-6-24 2011-6-24 胡维国 单位测试 2 () 2011-6-24 2011-6-24 胡维国 单位测试 2 整理 2011-6-24 2011-6-24 胡维国 集成 () 2011-6-24 2011-6-24 胡维国 最后测试 2011-6-24 2011-6-24 胡维国 3 最后整理 2011-6-24 2011-6-24 胡维国 最后评审 教师
3、三、源程序、可执行程序见附件(三、源程序、可执行程序见附件(XXXX project 目录)系统中目录)系统中 使用的自定义类型和函数。使用的自定义类型和函数。 迷宫建立功能模块设计迷宫建立功能模块设计 此模块主要由函数 initmaze(int mazeMN) 来实现,此功能用于用户自己建立迷宫, 也可使用预先保存好的迷宫,迷宫是通过矩阵形式表现的,用 1 和 0 分别表示墙和通 路并用二维数组存储,从而将实际问题转化成数学模型,方便程序的设计,以实现其 自能化。 int i,j; int m,n; /*迷宫行,列 */ char c; printf(“请输入行数: m=“); scanf(
4、“%d“, printf(“请输入列数: n=“); scanf(“%d“, printf(“n输入 0 或 1(0 为通路,1 为墙):n“); for(i=1;ic; if(c = Y)|(c = y) File_Save(maze,m+2,n+2); else if(c = N)|(c = n) printf(“你的迷宫保存失败!n“); 具体的程序实现可参见附录。 此部分程序流程图如下: Printf(“%d”,mazeij) i+ printf(“你的矩阵:n“); j+ inti,j; i=1 istr; if(fp=fopen(str,“rb“)=NULL) return; i+ printf(“是否保存你的迷宫(Y/N):“); (c=Y)|(c=y) (c=N)|(c=n) File Save