数据结构课程设计-校园导航
校园导航系统 数据结构课程设计 C++开发

分类号编号华北***大学North China Institute of Water Conservancy andHydroelectric Power课程设计题目校园导航院系信息工程学院专业计算机科学与技术姓名******学号201117000指导教师*****2012年7月6 日目录1.需求分析 (1)1.1问题描述 (1)1.2课程设计目的 (1)1.3设计要求 (1)2.概要设计 (2)2.1任务定义 (2)2.2数据结构 (2)2.3 校园平面图展示 (2)2.4系统功能图 (4)3.详细设计 (4)3.1各个模块名称和功能 (4)3.2具体函数模块详解 (5)3.2.1校园平面图展示 (5)3.2.2任意两点的所有路径 (5)3.2.3校园基础设施介绍 (6)3.2.4指定两点间最短路径 (6)3.2.5单点到其他左右顶点间最短路径 (6)3.2.6华北水利水电学院简介 (7)3.2.7访客留言 (7)3.2.8浏览访客留言 (7)3.3 主要算法思想描述 (7)3.4各函数之间的调用关系示意图 (7)4.测试与分析 (8)4.1测试显示 (8)4.2调试分析 (12)4.2.1调试过程中遇到的问题与解决方案 (12)4.2.2算法的时空复杂度分析 (12)5.用户使用说明 (12)6.实验总结 (14)7.参考文献 (14)8.附件 (15)校园导航系统1.需求分析1.1问题描述我们熟悉一个地方的地形情况通常是借助于一张地图,通常的地图包含的信息十分的有限,而且具体到某一个建筑物,你不能了解到它的进一步的详细的情况。
因此,导航系统就应运而生了。
具体到本系统,作为用户浏览校园时,只拿着学校的地图是能够游遍全校,但是各建筑内部的情况就必须实地考察才能了解,既费时又费力。
有了我们的校园的导航系统,用户可以根据自己的需要,迅速找到所关心的地点,并且可以看到它的详细的信息。
1.2课程设计目的本课程设计的目的就是要达到理论与实际应用相结合,使我们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,培养程序设计技能如下:(1)了解并掌握数据结构算法的设计方法,具备初步的独立分析和设计能力;(2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;(3) 独立完成,提高运用所学的理论知识和方法独立分析和解决问题的能力;1.3设计要求设计一个校园导航系统,为来访的客人提供导航服务,具体要求:(1) 设计学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
校园导航系统 数据结构课程设计 C++开发

分类号编号华北***大学North China Institute of Water Conservancy andHydroelectric Power课程设计题目校园导航院系信息工程学院专业计算机科学与技术姓名******学号201117000指导教师*****2012年7月6 日目录1.需求分析 (1)1.1问题描述 (1)1.2课程设计目的 (1)1.3设计要求 (1)2.概要设计 (2)2.1任务定义 (2)2.2数据结构 (2)2.3 校园平面图展示 (2)2.4系统功能图 (4)3.详细设计 (4)3.1各个模块名称和功能 (4)3.2具体函数模块详解 (5)3.2.1校园平面图展示 (5)3.2.2任意两点的所有路径 (5)3.2.3校园基础设施介绍 (6)3.2.4指定两点间最短路径 (6)3.2.5单点到其他左右顶点间最短路径 (6)3.2.6华北水利水电学院简介 (7)3.2.7访客留言 (7)3.2.8浏览访客留言 (7)3.3 主要算法思想描述 (7)3.4各函数之间的调用关系示意图 (7)4.测试与分析 (8)4.1测试显示 (8)4.2调试分析 (12)4.2.1调试过程中遇到的问题与解决方案 (12)4.2.2算法的时空复杂度分析 (12)5.用户使用说明 (12)6.实验总结 (14)7.参考文献 (14)8.附件 (15)校园导航系统1.需求分析1.1问题描述我们熟悉一个地方的地形情况通常是借助于一张地图,通常的地图包含的信息十分的有限,而且具体到某一个建筑物,你不能了解到它的进一步的详细的情况。
因此,导航系统就应运而生了。
具体到本系统,作为用户浏览校园时,只拿着学校的地图是能够游遍全校,但是各建筑内部的情况就必须实地考察才能了解,既费时又费力。
有了我们的校园的导航系统,用户可以根据自己的需要,迅速找到所关心的地点,并且可以看到它的详细的信息。
1.2课程设计目的本课程设计的目的就是要达到理论与实际应用相结合,使我们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,培养程序设计技能如下:(1)了解并掌握数据结构算法的设计方法,具备初步的独立分析和设计能力;(2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;(3) 独立完成,提高运用所学的理论知识和方法独立分析和解决问题的能力;1.3设计要求设计一个校园导航系统,为来访的客人提供导航服务,具体要求:(1) 设计学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
数据结构校园导航系统课程设计报告

《校园导航系统》课程设计报告姓名:蒋小文学号:110236100123 班级:1班专业:网络工程指导教师:唐轶媛蒋荣萍时间:2012年7月5日信息科学与工程学院目录摘要 (1)1.目的 (2)2.要求 (2)3.题目 (2)4.任务 (2)1).需求分析 (3)2).概要设计 (4)3).详细设计 (5)4).调试分析 (8)5.课设总结 (18)6.附录源代码 (19)1.目的数据结构是计算机专业的核心课程,是一门实践性很强的课程。
课程设计是加强学生实践能力的一个强有力手段,要求学生掌握数据结构的应用、算法的编写、类C语言的算法转换成C (C++)程序并上机调试的基本方法,还要求学生在完成程序设计的同时能够写出比较规范的设计报告。
2.要求2.1 课程设计时间为2周;2.2 设计语言C(C++)不限;2.3 课余时间完成源程序和课程设计报告等文档书写工作,上机时间只能做调试工作。
上机时带上源程序、数据结构教材、C语言教材。
2.4 上机任务(1)选择并定义合适的数据结构;(2)根据程序所要完成的基本要求,设计出完整的算法;(3)设计出主程序(main函数),使其成为完整的程序。
2.5 上机时间:上午8:30--11:30,下午3:00--5:303.题目题目:校园导航系统设计一个校园导游程序,后台操作:3.1、操作员信息管理如修改密码等3.2、能根据学校的规模进行添加景点信息、修改景点信息等功能,3.3、若临时有交通管制,能进行交通管制的设置和撤销(如某某时间段那条路进行那个方向的交通管制等)3.4、前台为来访的客人提供各种信息查询服务:3.4.1、设计学校的校园平面图,所含景点不少于10个。
以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
3.4.2、为来访客人提供图中任意景点相关信息的查询。
3.4.3、提供途中任意景点问路查询,即求任意两个景点间的一条最短的简单路径。
数据结构课程设计_校园导航系统 _课程设计报告

南京工程学院课程设计说明书(论文)题目校园导航系统课程名称数据结构院系通信工程学院专业信息工程班级学生姓名学号设计地点指导教师设计起止时间:2008 年12月29 日至年月日目录1.课程设计题目 (1)2.软件功能描述 (1)3.软件总体设计 (1)3.1数据结构描述与定义 (1)3.2模块设计 (3)4.测试结果与分析 (4)5.课程设计总结 (5)附录:源程序清单 (6)1.课程设计题目校园导航系统2.软件功能描述在近一个星期的努力下,我编写的校园导航系统软件终于能够成功完成。
采用工程思想,将系统共分一下几个模块:数据结构定义模块、导航图建立模块、求最短路径模块、主菜单;下面是具体各功能简单的实际应用:➢数据结构定义模块:模块定义了导航图中各个节点的基本结构类型,主要采用邻接矩阵的存储结构来真实反映各节点到其他所有节点的路径长度(权值大小)。
➢导航图建立模块:采用上述结构体类型对导航图中每个节点进行赋值。
包括:各定点的名称(地点名),各个节点到其他所有节点的真实路径长度(赋权值)。
➢求最短路径模块:本模块的基本思想是采用迪杰斯特拉算法求最短路径。
次模块是本校园导航系统的核心模块,求两点间的最短路径与求一点到其他所有点最短路径两个子功能均是在最短路径算法模块的基础上进行调用,进而实现导航功能。
➢主菜单:主菜单中主要是显示导航图中的所有导航节点,能够快速方便的对各个地点进行导航。
以上程序的几个模块,构成了校园导航系统的基本组成部分,程序运行良好,达到了课程设计的基本要求。
由于所学知识有限,功能各个方面还有欠妥之处,希望得到指出与改正。
3.软件总体设计3.1数据结构描述与定义1.节点数据结构类型:#define MAX_V 30 //最大顶点个数typedef struct{char* vexs[MAX_V]; //顶点向量int arcs[MAX_V][MAX_V];//邻接矩阵int vexnum,arcnum;//图的当前顶点数和弧数}MGraph;2.创建导航图函数:int CreateUDN(MGraph &G)函数描述:主要将每个节点进行命名、每个顶点到其他所有定点的路径值用邻接矩阵进行存储。
数据结构课程设计—校园导航报告

课程设计报告学院、系:大学学院计算机科学与技术系专业:软件工程班级:2008级9班课程设计科目数据结构学生:04080904 喆指导教师:娄雅芳完成时间:2010年10月-12月校园导航系统设计报告一、设计任务与目标设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
本系统是一个涉及大学学院相关景点和场所查询系统,是为了方便人们能够更快更准地获得学校各个景点和场所的详细信息。
本系统为用户提供以下功能:(一)、查询了解学校概况,为导游参观者提供关于学校的相关信息。
(二)、查询校园各个场所和景点信息;(三)、为导游者或外来人员参观人员提供校园交通信息,方便用户走访学校。
校园导航查询系统的开发方法总结如下:(1) 调查,了解学校各个场所与场所或者是各个景点与景点之间的信息,路径和距离,从外来人员或者参观者和走访者的角度出发,该如何设计才能满足用户需求。
(2) 分析,对调查得到的数据进行分析,根据其要求实现的功能分析系统结构和界面将实现的基本功能。
(3) 设计与开发,设计系统界面并编辑实现其各个功能的代码。
(4) 调试,在设计完成后,调试系统运行的状况,修改完善系统,然后进行测试。
二、方案设计与论证校园旅游模型是由各个景点和景点以及场所和场所之间的路径组成的,所以这完全可以用数据结构中的图来模拟。
用图的结点代表景点或场所,用图的边代表景点或场所之间的路径。
所以首先应创建图的存储结构。
结点值代表景点信息,边的权值代表景点间的距离。
结点值及边的权值采用图存储。
本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。
计算路径长度,最短路线和最佳路径时可分别用迪杰斯特拉(Dijkastra)算法和哈密而顿回路算法实现。
最后用switch选择语句选择执行浏览景点信息或查询最短路径和距离。
数据结构课程设计-校园导航

课程设计报告课程名称数据结构课程设计题目校园导航指导教师设计起始日期学院计算机学院系别计算机科学与工程学生姓名班级/学号成绩一、需求分析本次实验设计的任务是实现一个简易的北京信息科技大学的校园导航平面图。
设计要包括下列要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
本课题实现校园多个场所(至少10个)的最短路径求解。
(1)输入的形式和输入值的范围:本系统主要数据类型为字符型char及整形int,char型主要包括单位编号,单位名称,单位简介,功能编号;输入功能编号与单位编号进行操作。
(2 ) 输出的形式:输出则通过已有的信息数据,通过相关的操作输出相应信息。
(3) 程序所能达到的功能:本程序可供任何人使用,主要功能 1.浏览各单位及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看某一单位信息。
(4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。
a.首先看到的是校园导航系统的菜单:b.查看浏览路线等待输入起始景点:C.选择出发点与目的地等待输入起始景点与目的地编号:d.参看景点信息等待输入景点编号:二、概要设计本系统包含一个文件。
设计分有菜单,显示信息,弗洛伊德算法,迪杰斯特拉算法,查找景点信息等程序段。
主程序为整系统的入口处,菜单主要实现显示系统功能,显示信息主要实现显示景点信息,弗洛伊德算法主要实现求两景点之间最短路径,迪杰斯特拉算法实现求两景点之间最短路径,查找景点信息主要实现显示某一景点信息。
系统首先通过主程序调用void main( );进入系统主菜单函数,根据用户的选择可分别进入:1.浏览各景点及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看景点信息;5.退出系统。
选择“浏览各景点及简介”项,显示十个景点的有关信息,包括景点编号,景点名称,景点简介。
校园导航-南阳理工学院

int i = 1,flag = 1,len;
char ch;
printf("\t\t\t请输入您要查询的景点序号:\n\n");
printf("\t\t\t1.校门\n\t\t\t2.行政楼\n\t\t\t3.老校区田径场\n\t\t\t4.老图书馆\n\t\t\t5.老校区宿舍\n\t\t\t6.下沉广场\n\t\t\t7.荷花池\n\t\t\t8.梦溪湖\n\t\t\t9.图书馆大楼\n\t\t\t10.体育馆\n");
EdgeType e[MAXedg];
adjmax adj;
char choice = 'x';
while(1)
{
clrscr();
printf("\n\n\t\t\t ***南阳理工学院校园导航***");
printf("\n\t\t--------------------------------------\n\n");
{
case '1':
clrscr();
printf("\t\t ----南阳理工学院校园地图----\n\n");
printf(" \n");
printf(" <10.体育馆>......<9.图书馆大楼> \n");
printf(" . . \n");
printf(" . . \n");
{
int lengh;
int ivex, jvex;
struct Edge *next;
} EdgeType;
typedef struct
数据结构课程设计--校园导航图

extern void Ppath(int path[],int i,int v);
void Point(MGraph p)
{
int x,y;
printf("请输入您所在的位置及目的地\n");
{8,32767,32767,8,32767,32767,6,32767,32767}};
p.n=M;p.e=N;
int i,j;
for(i=1;i<=M;i++)
for(j=1;j<=M;j++)
p.edges[i][j]=a[i][j];
for(i=1;i<=M;i++)
p.vexs[i].no=i;
typedef struct mgraph
{ int edges[MAXV][MAXV];
int n,e;//元素总个数边数
VertexType vexs[MAXV];
}MGraph;
extern void Check();
extern void Order(MGraph);
extern void Point(MGraph);
extern void Out(int x);
void Order(MGraph p)
{
int a[M+1][M+1];
a[M+1][M+1]={{0,1,2,3,4,5,6,7,8},
{1,0,5,32767,32767,32767,32767,32767,32767},
{2,5,0,10,8,32767,32767,32767,32767},
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程名称数据结构课程设计题目校园导航指导教师设计起始日期 ~学院计算机学院系别计算机科学与工程学生姓名班级/学号成绩一、需求分析本次实验设计的任务是实现一个简易的北京信息科技大学的校园导航平面图。
设计要包括下列要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
本课题实现校园多个场所(至少10个)的最短路径求解。
(1)输入的形式和输入值的范围:本系统主要数据类型为字符型char及整形int,char 型主要包括单位编号,单位名称,单位简介,功能编号;输入功能编号与单位编号进行操作。
(2 ) 输出的形式:输出则通过已有的信息数据,通过相关的操作输出相应信息。
(3) 程序所能达到的功能:本程序可供任何人使用,主要功能1.浏览各单位及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看某一单位信息。
(4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。
a.首先看到的是校园导航系统的菜单:b.查看浏览路线等待输入起始景点:C.选择出发点与目的地等待输入起始景点与目的地编号:d.参看景点信息等待输入景点编号:二、概要设计本系统包含一个文件。
设计分有菜单,显示信息,弗洛伊德算法,迪杰斯特拉算法,查找景点信息等程序段。
主程序为整系统的入口处,菜单主要实现显示系统功能,显示信息主要实现显示景点信息,弗洛伊德算法主要实现求两景点之间最短路径,迪杰斯特拉算法实现求两景点之间最短路径,查找景点信息主要实现显示某一景点信息。
系统首先通过主程序调用void main( );进入系统主菜单函数,根据用户的选择可分别进入:1.浏览各景点及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看景点信息;5.退出系统。
选择“浏览各景点及简介”项,显示十个景点的有关信息,包括景点编号,景点名称,景点简介。
选择“查看所有游览路线”项,会进入输入起始景点编号的界面,输入正确编号后会显示起始景点到其余九个景点的最短路线的方案。
选择“选择出发点和目的地”项,会进入输入起始景点与目的景点的界面,输入起始景点与目的景点,并有空格隔开就得到两景点之间的最佳路径。
选择“查看景点信息”项,会进入输入要查看的景点的界面,如入后会显示该景点的有关信息。
选择“退出系统”项,就会退出程序。
三、详细设计(1)十三个单位的图0:前门1:图书馆2:教二楼3:实验楼4:操场5:教一楼6:食堂7:水房8:学一公寓9:学二公寓10:学三公寓11:学四公寓12:后门(2)主程序流程图:(3)弗洛伊德的算法:void Floyd(MGraph *G){int v,u,i,w,k,j,flag=1,p[10][10][10],D[10][10];dj; for(u=0;u<G->vexnum;u++)p[v][w][u]=0;if(D[v][w]<INFINITY){p[v][w][v]=1;p[v][w][w]=1;}}for(u=0;u<G->vexnum;u++)for(v=0;v<G->vexnum;v++)for(w=0;w<G->vexnum;w++)if(D[v][u]+D[u][w]<D[v][w]){D[v][w]=D[v][u]+D[u][w];for(i=0;i<G->vexnum;i++)p[v][w][i]=p[v][u][i]||p[u][w][i];}while(flag){cout<<"请输入出发点和目的地的编号(用空格隔开):";cin>>k>>j;if(k<0||k>G->vexnum||j<0||j>G->vexnum) ame; ame;cout<<"-->"<<G->vexs[j].name;cout<<" 总路线长"<<D[k][j]<<endl; 1”2”3”4”5”um=i;ame,"前门 ");strcpy[0].introduction,"面南.对面为北京外国专家大厦 "); strcpy[1].name,"图书馆 ");strcpy[1].introduction,"藏书几十万册,设施良好,一二楼均有阅览室 "); strcpy[2].name,"教二楼 ");strcpy[2].introduction,"学校的主要教学楼,共六层,有多个专业实验 "); strcpy[3].name,"实验楼 ");strcpy[3].introduction,"紧邻教二楼,共七层,主要为公共实验室,六层有通宵自习室 "); strcpy[4].name,"操场 ");strcpy[4].introduction,"全新塑胶跑道,中间为人工草皮足球场,排球场和篮球场 "); strcpy[5].name,"教一楼 ");strcpy[5].introduction,"学校各机关单位办公楼和双语教室 "); strcpy[6].name,"食堂 ");strcpy[6].introduction,"标准食堂,两层,清洁卫生 "); strcpy[7].name,"水房 ");strcpy[7].introduction,"配备自动刷卡系统 "); strcpy[8].name,"学一公寓");strcpy[8].introduction,"光电通信学院男生公寓 "); strcpy[9].name,"学二公寓");strcpy[9].introduction,"女生公寓 "); strcpy[10].name,"学三公寓");strcpy[10].introduction,"计算机学院男生公寓 "); strcpy[11].name,"学四公寓");strcpy[11].introduction,"大一新生公寓 "); strcpy[12].name,"后门 ");strcpy[12].introduction,"面北,对面有便利的小超市 "); for(i=0;i<;i++)for(j=0;j<;j++)[i][j].adj=INFINITY;dj=50;[0][2].adj=100;[1][5].adj=20;[1][6].adj=75;[2][3].adj=10;[2][5].adj=60;[3][4].adj=20;[4][11].adj=30;[5][6].adj=30;[6][7].adj=10;[7][8].adj=20;[8][9].adj=10;[9][10].adj=20;[10][12].adj=120;[11][12].adj=150;for(i=0;i<;i++)for(j=0;j<;j++)[j][i].adj=[i][j].adj;return G;}/******************************************************************************************* //********************************主菜单(显示输入提示)****************************************/void Menu(){cout<<" 北京信息科技大学大学导游图 "<<endl;cout<<" ┏━━━━━━━━━━━━━━━━━━━━┓"<<endl;cout<<" ┃ 1.浏览各景点及简介┃"<<endl;cout<<" ┃ 2.查看所有游览路线┃"<<endl;cout<<" ┃ 3.选择出发点和目的地┃"<<endl;cout<<" ┃ 4.查看景点信息┃"<<endl;cout<<" ┃ 5.退出系统┃"<<endl;cout<<" ┗━━━━━━━━━━━━━━━━━━━━┛"<<endl;cout<<"Option-:";}/************************************显示景点编号、名称、简介****************************************/void Browser(MGraph *G){int v;cout<<"┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃编号┃景点名称┃简介┃"<<endl;for(v=0;v<G->vexnum;v++)cout<<"┃"<<G->vexs[v].num<<setw(5)<<"┃"<<G->vexs[v].name<<setw(10)<<"┃"<<G->vexs[v].introduction<<setw(3)<<"┃"<<endl;cout<<"┗━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl;}/********************迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径,v0为起点***********************/void ShortestPath_DIJ(MGraph * G){int v,w,i,min,t=0,x,flag=1,v0;int final[20], D[20], p[20][20];cout<<"┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃编号┃景点名称┃简介┃"<<endl;for(v=0;v<G->vexnum;v++)cout<<"┃"<<G->vexs[v].num<<setw(5)<<"┃"<<G->vexs[v].name<<setw(10)<<"┃"<<G->vexs[v].introduction<<setw(3)<<"┃"<<endl;cout<<"┗━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl;while(flag){cout<<"请输入一个起始景点编号:";cin>>v0;if(v0<0||v0>G->vexnum){cout<<"景点编号不存在!请重新输入景点编号:"; cin>>v0;}if(v0>=0&&v0<G->vexnum)flag=0;}for(v=0;v<G->vexnum;v++){final[v]=0;D[v]=G->arcs[v0][v].adj;for(w=0;w<G->vexnum;w++)p[v][w]=0;if(D[v]<INFINITY){p[v][v0]=1;p[v][v]=1;}}D[v0]=0;final[v0]=1;for(i=1;i<G->vexnum;i++){min=INFINITY;for(w=0;w<G->vexnum;w++)if(!final[w])if(D[w]<min){v=w;min=D[w];}final[v]=1;for(w=0;w<G->vexnum;w++)if(!final[w]&&(min+G->arcs[v][w].adj<D[w])){D[w]=min+G->arcs[v][w].adj;for(x=0;x<G->vexnum;x++)p[w][x]=p[v][x];p[w][w]=1;}}for(v=0;v<G->vexnum;v++){if(v0!=v) cout<<G->vexs[v0].name;for(w=0;w<G->vexnum;w++){if(p[v][w]&&w!=v0) cout<<"-->"<<G->vexs[w].name;t++;}if(t>G->vexnum-1&&v0!=v) cout<<" 总路线长"<<D[v]<<endl;}}/*********************************Floyd函数***************************************/ void Floyd(MGraph *G){int v,u,i,w,k,j,flag=1,p[10][10][10],D[10][10];cout<<"┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃编号┃景点名称┃简介┃"<<endl;for(v=0;v<G->vexnum;v++)cout<<"┃"<<G->vexs[v].num<<setw(5)<<"┃"<<G->vexs[v].name<<setw(10)<<"┃"<<G->vexs[v].introduction<<setw(3)<<"┃"<<endl;cout<<"┗━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl;for(v=0;v<G->vexnum;v++)for(w=0;w<G->vexnum;w++){D[v][w]=G->arcs[v][w].adj;for(u=0;u<G->vexnum;u++)p[v][w][u]=0;if(D[v][w]<INFINITY){p[v][w][v]=1;p[v][w][w]=1;}}for(u=0;u<G->vexnum;u++)for(v=0;v<G->vexnum;v++)for(w=0;w<G->vexnum;w++)if(D[v][u]+D[u][w]<D[v][w]){D[v][w]=D[v][u]+D[u][w];for(i=0;i<G->vexnum;i++)p[v][w][i]=p[v][u][i]||p[u][w][i];}while(flag){cout<<"请输入出发点和目的地的编号(用空格隔开):";cin>>k>>j;if(k<0||k>G->vexnum||j<0||j>G->vexnum){cout<<"景点编号不存在!请重新输入出发点和目的地的编号:"; cin>>k>>j;}if(k>=0&&k<G->vexnum&&j>=0&&j<G->vexnum)flag=0;}cout<<G->vexs[k].name;for(u=0;u<G->vexnum;u++)if(p[k][j][u]&&k!=u&&j!=u)cout<<"-->"<<G->vexs[u].name;cout<<"-->"<<G->vexs[j].name;cout<<" 总路线长"<<D[k][j]<<endl;}um<<setw(5)<<"┃"<<G->vexs[v].name<<setw(10)<<"┃"<<endl; cout<<"┗━━┻━━━━━━━━┛"<<endl;while(flag){cout<<"请输入要查询的景点编号:";cin>>k;if(k<0||k>G->vexnum){cout<<"景点编号不存在!请重新输入景点编号:";cin>>k;}if(k>=0&&k<G->vexnum)flag=0;}cout<<"┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃编号┃景点名称┃简介┃"<<endl;cout<<"┃"<<G->vexs[k].num<<setw(5)<<"┃"<<G->vexs[k].name<<setw(10)<<"┃"<<G->vexs[k].introduction<<setw(3)<<"┃"<<endl;cout<<"┗━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl;}//Search end。