- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据结构》课程设计
PAGE
PAGE 9
中南民族大学计算机科学学院 专业:软件工程 学号: 姓名:闪珊珊
校园导游咨询
一、目的
1、 对自己学过的知识进一步的加深理解,对数据结构的算法思想要有更深的理解。
2、通过课程设计,学会通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用 。
3、学会综合运用数据结构课程中学到的数据结构和算法,如图的存储结构,数组,迪杰斯特拉算法和Floyd算法等自行实现一个较为完整的应用系统的设计与开发。
二、需求分析
1、功能需求
(1)在菜单中显示校园景点地图。
(2)能够查找任意景点的路径。
(3)能够自动查找用户键入始点景点和终点景点的最短路径。
(4)用户能够查询任意景点的景点信息。
2、输入
根据菜单提示键入相应的数字键已完成相应的操作。例如:在菜单界面中键入数字3,再根据系统提示键入始点和终点对应的编号,系统便会输出相应的路径。
3、输出
程序将根据用户键入的数字键,调用相应函数,完成查找过程,并将结果输出到屏幕。
三 、概要设计
1、变量定义
typedef struct //图中顶点表示主要景点,存放景点的编号、名称、简介
{
char name[30];
int num;
char introduction[100];//简介
}infotype;
typedef struct ArCell //定义结构体变量来储存路径长度
{
int adj; //路径长度
}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM
typedef struct //景点信息的结构体定义:
{
infotype vexs[MAX_VERTEX_NUM];
AdjMatrix arcs;
int vexnum,arcnum;
}MGraph;
MGraph b;
2.函数模块
void cmd( );//菜单选择模块
MGraph InitGraph( );//赋值函数
void Menu(void);//菜单函数
void Browser(MGraph *G);//浏览景点信息的函数
void ShortestPath_DIJ(MGraph * G);//迪杰斯特拉算法
void Floyd(MGraph *G);//Floyd 算法
void Search(MGraph *G);//查找景点信息函
()(MGraph *G);//初始化图形
void print(MGraph *G);//校园全景显示函数
Mian()3、流程图
Mian()
Print()Cmd()
Print()
Cmd()
Menu()
Menu()
Search() exit
Search()
exit
Floyd( )
ShortestPath_DIJ()
ShortestPath_DIJ()
Browser( )
MGraph InitGraph()
MGraph InitGraph()
四、详细设计
MGraph * CreatUDN(MGraph *G)//初始化图形,接受用户输入
{
int i,j,k,w;
char v1[20],v2[20];
printf(请输入图的顶点数,弧数:);
scanf(%d %d,G-vexnum,G-arcnum);
printf(请输入景点的编号:、名称、简介:\n);
for(i=0;iG-vexnum;i++)
{
printf(景点编号:);
scanf(%d,G-vexs[i].num);
printf(景点名称:);
scanf(%s,G-vexs[i].name);
printf(景点简介:);
scanf(%s,G-vexs[i].introduction);
}
for(i=0;iG-vexnum;i++)
for(j=0;jG-vexnum;j++)
G-arcs[i][j].adj=INFINITY;
printf(请输入路径长度:\n);
for(k=0;kG-arcnum;k++)
{
printf(第%d条边:\n,k+1);
printf(景点对(x,y):);
scanf(%s,v1);
scanf(%s,v2);
printf(路径长度:);
scanf(%d,w);
i=LocateVex(G,v1);
j=LocateVex(G,v2);
if(i=0j=0)
您可能关注的文档
最近下载
- 兵工科技2014-14.pdf
- DL T 5745-2016 电力建设工程工程量清单计价规范.docx VIP
- 运单填写规范.ppt
- 岗位风险告知卡(挖掘机、装载机司机岗位).docx VIP
- 西师大版四年级上册数学第七单元 三位数除以两位数的除法 测试卷(突破训练)word版.docx
- 党团基本知识学习与社会实践思想报告【4篇】.docx VIP
- 文华财经指标公式源码WH6指标公式期货软件指标画线指标公式.doc
- 征地应急预案共5篇.docx VIP
- 精品解析:2024年天津市部分区中考二模语文试题(解析版).docx VIP
- 2022儿科副护士长竞聘职位PPT简医院儿科副护士长岗位竞聘自我介绍PPT课件(带内容).pptx
文档评论(0)