-一、需求分析1、问题描述创建一个至少有 15 个点的无向网表示的某个旅游景点的导游图。顶点代表景点,类型为字符串(例如,泰山导游图:“天地广场门”,“十八盘”,“冯玉祥墓”,“桃花峪门”,“中天门”,“南天门”,“玉皇顶”等),弧表示两个景点之间可以直达,弧上的权值表示两个景点之间的路程(公里数),弧上还有到达方法的信息(有步行和索道两种)。建立一个游客咨询系统。2、基本要求a. 创建图的存储结构。b. 输入两个景点名,就可以得到从一个景点到达另一个景点的所有简单路径、相应路径的路程公里数、行走的方法(每一段是步行,还是坐索道)。c. 输入两个景点名,就可以得到其最短路径,即:路程最短的行进方法;假如两者无路径可通,就得出“两景点不可达的信息”。二、概要设计1.数据结构本程序需要用到两个结构体,分别为 ArcCell 和 MGraph。2.程序模块本程序包含两个模块,一个是实现功能的函数的模块,另一个是主函数模块。系统子程序及功能设计本系统共有七个子程序,分别是:int LocateVex(MGraph G,VertexType u)//得到顶点 u 的序号void CreateDN(MGraph *G)//建立景点间的无向网VertexType* GetVex(MGraph G,int v)//根据顶点序号返回顶点值int FirstAdjVex(MGraph G,VertexType v)// 返回 v 的第一个邻接顶点的序号int NextAdjVex(MGraph G,VertexType v,VertexType w)// 返回 v 的(相对于 w 的)下一个邻接顶点的序号void Simpleway(MGraph& m,char *str,char *buf)//求任意两个景点之间的所有简单路径int Minway(MGraph& m,char *str,char *buf)//求两顶点间的最短路径3. 各模块之间的调用关系以及算法设计函数 CreateDN 调用函数 LocateVex函数 Simpleway 调用函数 LocateVex函数 Minway 调用函数 LocateVex, GetVex,FirstAdjVex,NextAdjVex主函数调用函数 CreateDN,Simpleway,Minway。三、详细设计1.数据类型定义typedef struct{ VRType adj; int info; }ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedef struct{ VertexType vexs[MAX_VERTEX_NUM]; AdjMatrix arcs; int vexnum,arcnum; }MGraph;2.系统主要子程序详细设计a.void CreateDN(MGraph *G){ /* 采纳数组(邻接矩阵)表示法,构造有向网 G */ int i,j,k,w,c; char s[MAX_INFO],*info; VertexType va,vb; printf("请输入景点个数以及景点间所有路径的个...