- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
《编程实训》试验汇报书
专业:计算机科学与技术班级:1班
学号
姓名:周*
指导教师:周**
日期:6月30日
目录
一、需求分析 3
1.任务规定 3
2.软件功能分析 3
3.数据准备 3
二、概要设计 3
1.功能模块图 4
2.模块间调用关系 4
3.主程序模块 5
4.抽象数据类型描述 5
三、详细设计 6
1.存储构造定义 6
2.各功能模块的详细设计 7
四、实现和调试 7
1.重要的算法 7
2.重要问题及处理 8
3.测试执行及成果 8
五、改善 9
六、附录 9
1
需求分析
1.1任务规定
以一种m*n的长方阵表达迷宫,0和1分别表达迷宫中的通路和障碍。设计一种程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
1.2软件功能分析
设计一种迷宫,通过该程序可以找出通往出口的最短途径。程序功能有三(1)创立迷宫;
(2)求解迷宫;(3)输出迷宫的解。
1.3数据准备
迷宫的测试数据如下:左上角(1,1)为入口,右下角(9,8)为出口。
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
障碍物坐标:
13
17
23
27
35
36
38
42
43
44
47
54
62
66
68
72
73
74
75
78
81
82
86
88
91
92
2概要设计
2.1功能模块图栈的次序存储表达
#defineStackSize100//假定预分派的栈空间最多为100个元素typedefcharDataType;//假定栈元素的数据类型为字符
typedefstruct{
DataTypedata[StackSize];
inttop;}SeqStack;
基本操作的算法描述(1)置栈空
voidInitStack(SeqStack*S)
{//将次序栈置空S-top=-1;
}
(2)判栈空
intStackEmpty(SeqStack*S)
returnS-top==-1;
}
(3)判栈满
intStackFull(SeqStack*SS)
{
returnS-top==StackSize-1;
}(4)进栈
voidPush(S,x)
if(StackFull(S))
Error(Stackoverflow);//上溢,退出运行S-data[++S-top]=x;//栈顶指针加1后将x入栈
}(5)退栈
DataTypePop(S)
{
if(StackEmpty(S))
Error(Stackunderflow);//下溢,退出运行
returnS-data[S-top--];//栈顶元素返回后将栈顶指针减1
}
(6)取栈顶元素
DataTypeStackTop(S)
if(StackEmpty(S))
Error(Stackisempty);
returnS-data[S-top];
}
2.2模块间调用关系
Stack.h中调用的base.h#includestdio.h
#includestdlib.h
#includestring.h#defineTRUE1#defineFALSE0#defineOK1
#defineERROR0
#defineOVERFLOW-2typedefintStatus;
2.3主程序模块
主程序maze.c中调用的stac
文档评论(0)