出口的通路,或得出没有通路的结论。算法输入:代表迷宫入口的坐标算法输出:穿过迷宫的结果。算法要点:创建迷宫,试探法查找路径,输出解
12基本要求:
1求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一个坐标的方向。2输出迷宫示意图
13需求分析
1、本程序实现迷宫的探索过程以用户和计算机对话的方式,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令,然后程序就探索路径并输出路径。2、本演示程序中,输入形式以“回车符”为结束标志,且允许出现重复字符。3、利用二维指针实现迷宫位置的存储,并用栈存贮探索路径,每个结点含三个整形变量。输入的形式以回车结束。4、本程序中,用户可以读去文件里的迷宫,也可自己重新输入迷宫,而且用户可以输入任意大小的迷宫,然后程序自动探索路径,并输出迷宫的路径。
1
f21流程图:
1功能结构图
2程序总体设计
Mai
主函数模块
获取迷宫模块
探索路径模块Fi
dpath()
输出路径模块pri
tpath()
读文件Readfile()
写文件Writefile()
存储探索路径模块stack类
Stack类
数据模块
结点模块Nodetop
结点数据类型模块datatype类
操作模块
构造与析构函数stack()stack()
进栈与出栈函数push()Pop()
取栈顶函数
getpop()
清空函数clea(r)
盘空函数
isempty()
2
f2画出主要数据结构的类图
class类名DataType
定义描述迷宫中当前位置的类型
数访问控制权限数据类型变量名
据public
成
i
tx
x代表当前位置的行坐标
员
i
ty
y代表当前位置的列坐标
i
tdir
dir表示移动到下一步的方向
class类名Move
定义下一个位置的方向
数访问控制权限数据类型变量名
据public
成
i
tx
员
i
ty
class类名Node
结点
数访问控制权限数据类型变量名
据public
成
DataTypedata
员
Node
ext
class类名stack
数访问控制权限数据类型变量名据private
成Nodetop员
指向第一个结点的栈顶指针
成访问控制权限返回值类型函数名参数列表员public
函stack数stack
构造函数,置空栈析构函数
voidPushDataTypedata把元素data压入栈中
DataTypePop
使栈顶元素出栈
DataTypeGetPop
取出栈顶元素
voidClear
把栈清空
boolIsEmpty
判断栈是否为空,如果为空则返回1,否则
返回0
3
f3mai
函数流程图
开始显示系统信息
选择获取迷宫的方式ch
Ch’a’
Readfile文件读取
探索迷宫路径是否存在
输出迷宫路径
是否继r