欢迎来到天天文库
浏览记录
ID:56207389
大小:352.50 KB
页数:25页
时间:2020-03-20
《校园导游系统.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西安邮电大学(计算机学院)数据结构课程设计报告题目:校园导游系统专业名称:网络工程班级:网络150学生姓名:学号(8位):指导教师:王春梅设计起止时间:2016年12月26日—2016年12月30日一.题目要求1、设计学校的校园平面图,地点(地点名称、地点介绍)不少于10个。2、提供图中任意地点相关信息的查询。3、提供图中任意地点的问路查询:1)任意两个地点之间的一条最短(中转最少)的简单路径;2)任意两个景点的最佳访问路线(带权)查询;3)任意两个地点之间的所有路径。4、地点和道路的扩充以及撤销;
2、地点基本信息的文件存储。(附加:加分题)二.概要设计1.功能模块的调用关系图2.各个模块详细的功能描述。1.首先,main()函数调用loge()函数,输出欢迎界面,然后调用showmenu()函数来选择用户所要进行的操作。其中showmenu()函数就是一个菜单供使用者来选择他所要进行的相关操作,比如信息的查询,最短路径查询之类。2.browser()函数,用于输出校园平面图,给用户提供校园的景点分布状况,方便用户选择景点参观。3.Search()函数,用于查询用户所选的景点信息,用户需要输入要查
3、询的景点编号,函数会对编号进行判断,如果是合法输入,则在屏幕上输出该景点的相关信息,包括景点名字,景点的相关介绍,否则返回重新输入。4.SearchAllpath()函数,用于查询用户所选的任意两个景点间的所有路径,用户需要输入要查询的起始景点编号,函数会对编号进行判断,如果是合法输入,用户需要输入要查询的终点景点编号,函数会对编号进行判断,如果是合法输入,则在屏幕上输出输查询的两个景点间的所有路径,否则返回重新输入。函数使用深度遍历DeepFirstSeach()查找路径。5.Wellway()函
4、数,用于查询用户所选的任意两个景点间的最短路径,用户需要输入要查询的起始景点编号,函数会对编号进行判断,如果是合法输入,用户需要输入要查询的终点景点编号,函数会对编号进行判断,如果是合法输入,则在屏幕上输出输查询的两个景点间的最短路径,否则返回重新输入。函数的生成主体是迪杰斯特拉算法来计算出起点到终点之间的最短路径。6.minway()函数,用于查询用户所选的任意两个景点间的最佳路径(即中转最少),用户需要输入要查询的起始景点编号,函数会对编号进行判断,如果是合法输入,用户需要输入要查询的终点景点编
5、号,函数会对编号进行判断,如果是合法输入,则在屏幕上输出输查询的两个景点间的最短路径,否则返回重新输入。7.CreatUDN()函数,创建的图,它是MGraph型,G->vexnum表示顶点的个数;G->arcnum表示边数。CreatUDN()函数的功能就是实现图的创建,将已知的景点的一些信息,转换成图的信息,并进行存储。三.详细设计(主要函数的程序流程图)1.任意两个地点之间的一条最短(中转最少)的简单路径利用遍历的思想,遍历图找出一条最佳最佳的的路径,让它遍历所有景点。往下遍历,访问标志位,若
6、访问过在下次就不用访问。若找完一个分支在下次重新遍历。zz[0]->zhi=m;zz[0]->front=NULL;flag[m]=1;for(top=0;top<20;top++){for(i=0;i<20;i++){if(G->arcs[zz[top]->zhi][i].adj!=INFINITY&&i==n){printf("%s",G->vexs[n].name);printf("%s",G->vexs[zz[top]->zhi].name);zz[top]=zz[top]->fro
7、nt;while(zz[top]!=NULL){printf("%s",G->vexs[zz[top]->zhi].name);zz[top]=zz[top]->front;}getch();return;}elseif(G->arcs[zz[top]->zhi][i].adj!=INFINITY&&flag[i]==0){zz[++j]->zhi=i;zz[j]->front=zz[top];flag[i]=1;}}}2.任意两个景点的最佳访问路线(带权)查询利用迪杰特斯拉算法,求v0到其余顶
8、点的最短路径D[],p[][]是用来存放各路径的权值,借助辅助数组final[]标志,是否当前顶点属于final(1,属于)。for(v=0;vvexnum;v++){final[v]=0;D[v]=G->arcs[v0][v].adj;for(w=0;wvexnum;w++)p[v][w]=0;if(D[v]{p[v][v0]=1;p[v][v]=1;}}D[v0]=0;final[v0]=1;for(i=1
此文档下载收益归作者所有