- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目 录
1 问题描述 1
2 需求分析 1
3 概要设计 1
3.1抽象数据类型定义 1
3.2模块划分 2
4 详细设计 3
4.1数据类型的定义 3
4.2主要模块的算法描述 3
5 测试分析 5
6 课程设计总结 6
参考文献 6
附录(源程序清单) 7
typedef struct
{ char S_name[31]; //学生姓名
char S_number[16]; //学生学号
char sex[8]; //性别
int D_number; //学生所在寝室的宿舍号
int Total; //学生总数
}Student[M],St;
3. 2本程序所包含的16 个函数为:
(1).主函数main();
(2).菜单函数Menu();
(3).判断学号是否重复函数S_number_Judge(Student S,int t);
(4).添加学生信息函数Add(Student S);
(5).修改学生信息函数Alter(Student S);
(6).删除学生信息函数Delete(Student S);
(7).显示所有学生信息函数Display_All(Student S);
(8).按照寝室号从小到大排序函数Sort_D_number(Student S);
(9).按姓名从小到大排序函数Sort_S_name(Student S)
(10).按照学号从小到大排序函数Sort_S_number(Student S);
(11).根据学生姓名查找函数Query_S_name(Student S);
(12).根据学生学号查找函数Query_S_number(Student S);
(13).根据寝室号查找函数Query_D_number(Student S)
(14).存储函数Save(Student S);
(15).加载函数Load(Student S);
(16).判断在退出程序时是否保存函数Judge_Save(int i,Student S);
3. 3函数间关系:
利用主函数调用其他的各个函数。添加数据纪录函数Add(),删除数据信息函数 Delete (),修改函数Alter ()这些函数都是在同一等级上的函数,是平行关系。按宿舍号,姓名,学号排序函数 Sort_D_number (),Sort_S_name (),Sort_S_numbe ();这些函数都是排序函数中的子函数,他们之间是平行的关系。按宿舍号,姓名,学号查询函数 Query_D_number(),Query_S_name(), Query_D_number(),是查询函数的子函数,他们之间是平行关系。
4 详细设计
4.1数据类型的定义
(1)迷宫类型
#define M 6
#define N 8
int maze[M+2][N+2];
(2)栈类型
(3)队列类型
4.2主要模块的算法描述
(给出主要模块的算法描述,用流程图或伪代码表示,若用流程图表示,请注意:①图与表以章节组编号。如图表示第章的第幅图。图与表应有相应的,图表编号与图表名称之间空一个字的位置如“图2.1 实验系统流程示意图”。主函数
void main()
{int x,maze[M+2][N+2]={{1,1,1,1,1,1,1,1,1,1},{1,0,1,1,1,0,1,1,1,1},
{1,1,0,1,0,1,1,1,1,1},{1,0,1,0,0,0,0,0,1,1},
{1,0,1,1,1,0,1,1,1,1},{1,1,0,0,1,1,0,0,0,1},
{1,0,1,1,0,0,1,1,0,1},{1,1,1,1,1,1,1,1,1,1}}; /*构造一个迷宫*/item move[8]={0,1,1,1,1,0,1,-1,0,-1,-1,-1,-1,0,-1,1}; /*坐标增量数组move的初始化*/while(1)
{printf(1 迷宫求解(采用栈实现)\n
2 迷宫求解(采用队列实现)\n
3 退出\n);
……
(2)利用栈实现迷宫求解int mazepath_stack(int maze[M+2][N+2],item move[8])
/*若迷宫maze中存在从入口(1,1)到出口(M,N)的通道,则求得一条存放在栈中,并返回1;否则返回0*/
{(3)栈的操作
void InitStack(SqStack *s) /*栈的初始化*/
{}
int StackEmpty(SqStack s) /*判栈空*/
{}
……
另一个同学的报告中4.2就为:
该题主要分为两步:(1)利用栈实现迷宫求解;(2)利用队列实现迷宫求解。该题由我和XX同学合作完成,我主要负责:(2)利用队列实现
文档评论(0)