数据结构课程设计交通咨询系统设计说明
交通图咨询查询系统数据结构(C语言)

信息科学与工程学院《结构数据》课程设计报告课程设计名称:交通咨询系统专业班级 : 计算机xxx学生姓名 : xxx学号: 2015xxxx指导教师 : xx课程设计时间:2016。
07.04—2016.07.08计算机应用技术专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页填表说明1.“课题性质”一栏:A.工程设计;B.工程技术研究;C.软件工程(如CAI课题等);D.文献型综述;E.其它。
2.“课题来源"一栏:A.自然科学基金与部、省、市级以上科研课题;B.企、事业单位委托课题;C.校、院(系、部)级基金课题;D.自拟课题。
目录1 需求分析 01。
1 添加交通图信息 01。
2 查询单源最短路径 01。
3 查询多源最短路径 01。
4 更新交通图信息 01.6 读取、保存信息 (1)2 概要设计 (2)2.1 数据类型的定义 (2)2.2 功能模块结构图 (3)3 运行环境 (6)4 开发工具和编程语言 (6)5 详细设计 (7)5。
1 图结构的基本操作 (7)5。
1。
1添加城市结点和路径结点 (8)5。
1.2修改城市结点和路径结点 (8)5.1。
3删除城市结点和路径结点 (8)5。
1。
4退出保存 (8)5。
2 迪杰斯特拉算法的实现 (8)5.2。
1 迪杰斯特拉算法函数 (8)5.2.2 提取迪杰斯特拉函数信息 (8)5.2。
3 求多源最短路径 (8)6 程序编码 (9)7 运行结果 (39)8 心得体会 (45)9参考文献 (46)1需求分析本系统中的数据来源于标准输入设备(如键盘)和文件,可以实现对交通图城市、城市到其余城市的距离的操作,根据需要可查询某两个城市之间的最短距离、城市到各城市的最短距离,各个城市到各个城市的最短距离,以及路径。
本系统要实现的功能有:添加城市和城市间距离,删除城市及城市间距离,修改城市间距离,查询城市间的最短路径,查询某个城市到某个城市的最短路径。
交通咨询系统设计课程设计

课程设计报告课程名称数据结构课题名称交通咨询系统设计专业信息管理与信息系统班级学号姓名指导教师2013 年12月31 日一、设计内容与设计要求1设计内容[问题描述] 在交通网络非常发达的今天,人们出差、旅游或做其他出行时,不仅关心节省交通费用,而且对里程和所需时间等问题也很感兴趣。
对于这样一个人们关心的问题,可用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。
图中顶点表示城市,边表示城市之间的交通关系。
设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到达另外一个城市顶点之间的最短路径(里程)的问题。
[基本功能]1).根据实际情况,先建立交通网络图的存储结构。
2).求某个城市到达其余各城市的最短路径。
3).任一输入两个城市,要求求出他们之间的最短路径。
2设计要求:1).设计正确,方案合理。
2).界面友好,使用方便。
3).程序精炼,结构清晰。
4).设计报告5000字以上,含程序设计说明、系统的功能框图、流程图、源程序清单等。
5).实际操作过程中遇到的问题及解决方法:设计总结及心得体会。
6).上机演示。
二、进度安排第 17 周星期二 8时:00分——11时:30分星期三 8时:00分——11时:30分星期四 14时:00分——17时:30分星期五 8时:00分——11时:30分第 18 周星期一 8时:00分——11时:30分星期二 8时:00分——11时:30分附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。
正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。
正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的源代码,要求对程序写出必要的注释)。
正文总字数要求在5000字以上(不含程序源代码)。
数据结构课程设计全国交通咨询系统方案

工业应用技术学院课程设计任务书题目全国交通资询系统主要容:设计了一个方便用户查询交通咨询系统。
该系统所做的工作的是模拟全国交通咨询,为旅客提供三种最优决策的交通咨询。
该系统可以进行城市,列车车次和飞机航班的编辑的基本信息输入操作。
程序的输出信息主要是:最快需要多少时间才能到达,或最少需要多少旅费才能到达,或最少需要多少次中转到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。
程序的功能包括:提供对城市信息的编辑,提供列车时刻表和飞机航班表的编辑,提供三种最优决策:最快到达、最省钱到达、最少中转次数到达。
基本要求:1、掌握C语言的变量及函数的灵活使用;2、熟练掌握图的深度、广度优先遍历算法思想及其程序实现;3、掌握C语言中文件的基本操作;4、掌握VC++6.0软件的熟练使用。
主要参考资料:[1] 春葆.数据结构程序设计[M].:清华大学,2002,03[2] 王黎,袁永康战略[M].:清华大学,2002,01[3] 谭浩强.C程序设计第二版[M].:清华大学,2003,03[4] 任哲.MFC Windows程序设计[M].:清华大学,2004,06完成期限:2016.12.05—2017.01.05指导教师签名:课程负责人签名:随着高科技的飞速发展,列车、飞机、动车、高铁的出现极大的减少了人们花在旅途上的时间。
对于城市间错综复杂交通网的管理,是一项庞大而复杂的工作。
在此基础上,如何实现交通网智能化的管理达到帮助乘客选择经济高效的交通工具是目前仍处空白。
尤其乘客交通工具的择优选择是一个令人懊恼的工作,一个原因就是各种交通工具的查询十分分散和繁琐。
即使有互联网的帮忙,但是没有一个统一的归类、没有一个精细的算法、系统的软件帮助,人们仍然无法获得最优方式。
为此开发一个交通择优系统是十分必要的。
采用计算机对城市间的交通工具进行系统录入和管理,进一步提高了交通部门针对城市间客运网络的管理效率,实现交通运营网络的系统化、规化和自动化。
交通咨询系统设计方案数据结构课程设计方案任务书

交通资讯系统1.系统需求分析1.1问题描述在交通网络非常发达的今天,人们出差、旅游或做其他出行时,不仅关心节省交通费用,而且对里程和所需时间等问题也很感兴趣。
对于这样一个人们关心的问题,可用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。
图中顶点表示城市,边表示城市之间的交通关系。
设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到达另外一个城市顶点之间的最短路径(里程)的问题。
1.2功能要求1.交通资讯系统提供用户三种决策方案:一是建立交通网络图的存储结构。
二是某个城市到达其余各城市的最短路径。
三是实现两个城市之间最短路径的问题。
主要目的是给用户提供路径咨询。
2.本系统规定:(1)在程序中输入城市名称时,需输入0到5的城市代号(2)在选择功能是,应输入与所选功能对应的一个整形数据。
(3)程序的输出信息主要是:城市代号,某城市到达其余各城市的最短路径,两城市之间最短路径2.概要设计2.1系统总体设计2.2各模块的功能void main() 主函数void Dijkstr()采用狄克斯特拉算法求从顶点v到其余个顶点的最短路径void DisPath()由path计算最短路径void Ppath()输出各条最短路径void Floyd()采用弗洛伊德算法求所有顶点之间的最短路径void DisPath2()由path计算最短路径void Ppath2()输出各条最短路径2.3相关数据结构设计1.数据结构typedef int InfoType。
typedef struct {char cityname。
int no。
InfoType info。
}VertexTypeo typedef struct {int edges[MAXV][MAXV]。
int n,e。
VertexType vxs[MAXV]。
}MGraph o2.数据库结构:下表构成该系统的基本数据库3,详细设计1.1采用c语言定义相关的数据结构本系统定义了整形int,字符型char,还有结构体定义,建立图的存储结构首先定义交通图的存储结构,邻接矩阵是表示图形中顶点之间相邻关系的矩阵.设 G=(V ,E)是具有n(n>0)个顶点的图,则邻接矩阵具有如下定义的n 阶方阵Wij 若 vi/vj 且<vi,vj>£E(G)A[i][j]= y8 其他一个图的邻接矩阵表示是唯一的,除了许用一个二维数组存储顶点之间相邻关系的 邻接矩阵外,通常还需要使用一个具有n 个元素的一维数组来存储顶点信息3.2函数调用关系图3.2.1主函数A[][MAXV] = {{INF,5,INF,7,INF,INF},{INF,INF,4,INF,INF,INF ), {8,INF,INF,INF,INF,9},{INF,INF,5,INF,INF,6},{INF,INF,INF,5,INF,INF}, {3,INF,INF,INF,1,INF}}。
数据结构课程设计-城市交通咨询系统

榆林学院数据结构课程设计报告题目城市交通咨询系统作者杨朝专业信息管理与信息系统学号1514210121指导老师张慧答辩时间2016.12.18数据结构课程设计报告目录目录⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 1 1系统需求分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 21.1 用户需求分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 21.2功能需求分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 31.3 数据需求分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 31.4 小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 3 2系统设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 42.1 系统设计思路,,,,,,,,,,,,,,,,,,, 42.2 系统设计功能,,,,,,,,,,,,,,,,,,, 42.3 每个模块的具体能,,,,,,,,,,,,,,,,, 52.4 主函数的调用关图,,,,,,,,,,,,,,,, 10 3系统测试,,,,,,,,,,,,,,,,,,,,,,, 113.1操作说明,,,,,,,,,,,,,,,,,,,,, 113.2测试数据,,,,,,,,,,,,,,,,,,,,, 113.2.1 用户进入界面,,,,,,,,,,,,,,,,, 113.2.2 具体功能的实现,,,,,,,,,,,,,,,, 123.2.3 选择0结束程序,,,,,,,,,,,,,,,, 14 4总结,,,,,,,,,,,,,,,,,,,,,,,,, 14 5致谢,,,,,,,,,,,,,,,,,,,,,,,,, 14 6附录,,,,,,,,,,,,,,,,,,,,,,,,, 151课程设计题目1.系统需求分析描述:现如今网络非常发达,无论人们出差,旅游或者做其他的出行之时,都会想到道路问题,切不仅仅关心的是交通费用,而且对于里程和所需要的时间等的问题也是同样的关心,在此系统中,完全面向用户,可以用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。
大数据结构课程设计交通咨询系统设计

设计题目<二>:交通咨询系统设计P160 一、设计要求 1 .问题描述根据不同目的的旅客对交通工具有不同的要求。
例如,因公出差的旅客希望在旅途中的时间尽可能的短,出门旅行的旅客希望旅费尽可能的少,而老年人则要求中转次数少。
模拟一个全国城市之间的咨询交通程序,为旅客提供两种或三种最优的交通路线。
2.需求分析二、概要设计1.主界面设计(图“交通咨询系统”主菜单)2.存储结构设计本系统采用图结构类型存储抽象交通咨询系统的信息typedef struct TrafficNodetmp = k;}printf("%s", AdjList[track[i]].Train[tmp].name);pri ntf("%2d:%2d-%2d:%2d",AdjList[track[i]].Trai n[tmp].StartTime / 60,AdjList[track[i]].Train[tmp].StartTime % 60,AdjList[track[i]].Trai n[tmp].StopTime / 60,AdjList[track[i]].Trai n[tmp].StopTime % 60);else{for (i--; i>0; i--) um;[k++)ghar name[MAX_STRlNG_NUM];jajnN{printf("\n%s:", CityName[track[i]]);end = track[i - 1]; min = 32767;for (k = 0; k<AdjList[track[i]].FlightNum; k++)if (AdjList[track[i]].Train[k].EndCity ==end&&min>AdjList[track[i]].Flight[k].Cost){min = AdjList[track[i]].Flight[k].Cost;tmp = k;}printf("%s",AdjList[track[i]].Flight[tmp].name);printf("%2d:%2d-%2d:%2d",AdjList[track[i]].Flight[tmp].StartTime / 60,AdjList[track[i]].Flight[tmp].StartTime % 60,AdjList[track[i]].Flight[tmp].StopTime / 60,AdjList[track[i]].Flight[tmp].StopTime % 60);}}printf("\n%s: DESTINATION!", CityName[track[0]]);printf("\nMin Cost : %d\n", cost);}void Dijkstra(int matx[Dij_MAXN][Dij_MAXN], int p_start, int p_end, int TravelType){int PreCity[Dij_MAXN]; 添加城市在主菜单下,用户输入 1,添加城市名称(图添加城市)2.删除城市在主菜单下,用户输入2,删除已添加城市名称(图删除城市)3.添加交通路线在主菜单下,用户输入3,已添加城市名称。
(完整word版)数据结构课程设计交通咨询系统

目录第1章概述 (1)1.1 性能需求 (1)1.2 功能需求 (2)第2章概要设计 (3)2。
1功能模块设计 (3)2.2算法分析与设计 (3)第3章详细设计 (5)3.1 管理员功能模块设计 (5)3。
2计算最少费用功能模块设计 (11)第4章调试分析与测试结果 (18)4。
1调试分析 (18)4。
2测试结果 (19)第5章总结 (21)参考文献 (22)附录 (23)第1章概述数据结构作为一门学科主要研究数据的各种逻辑结构和存储结构,以及对数据的各种操作。
因此,主要有三个方面的内容:数据的逻辑结构;数据的物理存储结构;对数据的操作(或算法)。
通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存储结构.数据结构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。
在当今信息时代,信息技术己成为当代知识经济的核心技术。
我们时刻都在和数据打交道。
比如人们在外出工作时找最短路径,在银行查询存款、通过互联网查新闻、以及远程教育报名等,所有这些都在与数据发生关系。
实际上,现实世界中的实体经过抽象以后,就可以成为计算机上所处理的数据。
数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。
数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。
通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。
通过此次课程设计主要达到以下目的:1。
了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2。
初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4。
数据结构课程设计交通咨询系统设计

四、详细设计 1.数据类型定义
(1)全局变量的定义 typedef short int CityType;//CityType 定义短整形的变量 typedef struct TrafficNode { char name[MAX_STRING_NUM]; //班次 //MAX_STRING_NUM最为
for (i--; i>0; i--) { printf("\n%s:", CityName[track[i]]); end = track[i - 1]; min = 32767; for (k = 0; k<AdjList[track[i]].FlightNum; k++) if (AdjList[track[i]].Train[k].EndCity == end&&min>AdjList[track[i]].Flight[k].Cost) { min = AdjList[track[i]].Flight[k].Cost; tmp = k; } printf("%s", AdjList[track[i]].Flight[tmp].name); printf("%2d:%2d-%2d:%2d", AdjList[track[i]].Flight[tmp].StartTime / 60, AdjList[track[i]].Flight[tmp].StartTime % 60, AdjList[track[i]].Flight[tmp].StopTime / 60, AdjList[track[i]].Flight[tmp].StopTime % 60); } } printf("\n%s: DESTINATION!", CityName[track[0]]); printf("\nMin Cost : %d\n", cost); } void Dijkstra(int matx[Dij_MAXN][Dij_MAXN], int p_start, int p_end, int TravelType) { int PreCity[Dij_MAXN]; //PreCity[i]==-1,never used; //PreCity>0,the precity of City i
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计题目<二>:7.3.4交通咨询系统设计P160一、设计要求1.问题描述根据不同目的的旅客对交通工具有不同的要求。
例如,因公出差的旅客希望在旅途中的时间尽可能的短,出门旅行的旅客希望旅费尽可能的少,而老年人则要求中转次数少。
模拟一个全国城市之间的咨询交通程序,为旅客提供两种或三种最优的交通路线。
2.需求分析二、概要设计1.主界面设计(图2.1“交通咨询系统”主菜单)2.存储结构设计本系统采用图结构类型存储抽象交通咨询系统的信息。
typedef struct TrafficNode{char name[MAX_STRING_NUM]; //班次 //MAX_STRING_NUM最为10int StartTime, StopTime; //起止时间int EndCity; //该有向边指向的顶点在数组中的位置,即该城市编号int Cost; //票价} TrafficNodeDat;typedef struct VNode{CityType city;int TrainNum, FlightNum; //标记下面Train数组和Flight数组里元素个数TrafficNodeDat Train[MAX_TRAFFIC_NUM]; //数组成员为结构体,记录了到达城市、起止时间、票价和班次TrafficNodeDat Flight[MAX_TRAFFIC_NUM];// int Cost; //遍历时到达该城市的耗费(时间或者费用)} VNodeDat;typedef struct PNode{int City;int TraNo;} PNodeDat;3.系统功能设计(1)添加城市。
添加一个城市的名称(2)删除城市。
输入一个城市名称,删除该城市。
(3)添加交通路线。
输入起始城市、终点城市、航班或火车、车次、起始时间、终点时间和票价(4)删除交通路线。
输入火车或飞机的班次删除该交通路线。
(5)查询最小费用路线。
输入起始城市、终点城市、航班或火车、车次、起始时间、终点时间查询最小费用路线。
三、模块设计1.模块设计(图2.2 模块调用示意图)2.系统子程序及功能设计(1)int ShowMenu()//主菜单(2)void CopyRight()(3)int SeekCity(char *name) //寻找城市(4)int InsertCity(char *Name) //添加城市(5)int SaveSysInfo() //向程序输入数据(6)int DelCity(char *Name) //删除城市(7)int InsertTrain(char *train, char *StartCity, char *EndCity, int StartTime, int EndTime, int cost)//添加火车路线(8)int InsertFlight(char *flight, char *StartCity, char *EndCity, int StartTime, int EndTime, int cost)//添加飞机航线(9)int DelPath(char *name)//删除路线(10)void Dijkstra(int matx[Dij_MAXN][Dij_MAXN], int p_start, int p_end, int TravelType)(11)int InitSysData()//存储数据(12)int SearchMinTime(CityType City, CityType EndCity, int CurTime, int curPathNo, int TravelType)//查询最短时间(13)int CalcMinTime(int StartCity, int EndCity, int TravelType) //显示最短时间(14)int CalcMinCost(int StartCity, int EndCity, int TravelType)//最少花费(15)int main()//主函数3.函数主要调用关系图(图2.3函数主要调用关系图)四、详细设计1.数据类型定义(1)全局变量的定义typedef short int CityType;//CityType 定义短整形的变量typedef struct TrafficNode{char name[MAX_STRING_NUM]; //班次 //MAX_STRING_NUM最为10int StartTime, StopTime; //起止时间int EndCity; //该有向边指向的顶点在数组中的位置,即该城市编号int Cost; //票价} TrafficNodeDat;typedef struct VNode{CityType city;int TrainNum, FlightNum; //标记下面Train数组和Flight数组里元素个数TrafficNodeDat Train[MAX_TRAFFIC_NUM]; //数组成员为结构体,记录了到达城市、起止时间、票价和班次TrafficNodeDat Flight[MAX_TRAFFIC_NUM];// int Cost; //遍历时到达该城市的耗费(时间或者费用)} VNodeDat;typedef struct PNode{int City;int TraNo;} PNodeDat;2.系统主要子程序详细设计(1)用户工作区模块的设计int ShowMenu(){printf("\n|******************欢迎使用交通咨询系统*******|\n");printf("\n|------------------1: 添加城市----------------|");printf("\n|------------------2: 删除城市----------------|");printf("\n|------------------3: 添加交通路线------------|");printf("\n|------------------4: 删除交通路线------------|");printf("\n|------------------5: 查询最小费用路线--------|");printf("\n|------------------6: 查询最快路线------------|");printf("\n|------------------7: 清除屏幕----------------|");printf("\n|------------------0: 退出--------------------|\n");printf("\n|***********o(∩_∩)o o(∩_∩)o **************|\n");printf("\n请输入你的选择:");return 1;}(2)用Dijkstra算法求两段路程的最短距离void Dijkstra_Output(int matx[Dij_MAXN][Dij_MAXN], intPreCity[Dij_MAXN], int p_end, int TravelType){int track[Dij_MAXN];int i = 0, j, k, min, tmp, end, cost = 0;j = p_end; track[i++] = j;while (PreCity[j] >= 0){cost += matx[PreCity[j]][j];track[i++] = j = PreCity[j];}printf("\nTrack Way:");if (!TravelType){for (i--; i>0; i--){printf("\n%s:", CityName[track[i]]);end = track[i - 1]; min = 32767;for (k = 0; k<AdjList[track[i]].TrainNum; k++)if (AdjList[track[i]].Train[k].EndCity ==end&&min>AdjList[track[i]].Train[k].Cost){min = AdjList[track[i]].Train[k].Cost;tmp = k;}printf("%s", AdjList[track[i]].Train[tmp].name);printf("%2d:%2d-%2d:%2d",AdjList[track[i]].Train[tmp].StartTime / 60,AdjList[track[i]].Train[tmp].StartTime % 60,AdjList[track[i]].Train[tmp].StopTime / 60,AdjList[track[i]].Train[tmp].StopTime % 60);}}else{for (i--; i>0; i--){printf("\n%s:", CityName[track[i]]);end = track[i - 1]; min = 32767;for (k = 0; k<AdjList[track[i]].FlightNum; k++)if (AdjList[track[i]].Train[k].EndCity ==end&&min>AdjList[track[i]].Flight[k].Cost){min = AdjList[track[i]].Flight[k].Cost;tmp = k;}printf("%s", AdjList[track[i]].Flight[tmp].name);printf("%2d:%2d-%2d:%2d",AdjList[track[i]].Flight[tmp].StartTime / 60,AdjList[track[i]].Flight[tmp].StartTime % 60,AdjList[track[i]].Flight[tmp].StopTime / 60,AdjList[track[i]].Flight[tmp].StopTime % 60);}}printf("\n%s: DESTINATION!", CityName[track[0]]);printf("\nMin Cost : %d\n", cost);}void Dijkstra(int matx[Dij_MAXN][Dij_MAXN], int p_start, int p_end, int TravelType){int PreCity[Dij_MAXN]; //PreCity[i]==-1,never used;//PreCity>0,the precity of City iint i, j, min, pre, pos;for (i = 0; i<CityNum; i++){PreCity[i] = -1;}PreCity[p_start] = -2;while (PreCity[p_end] == -1){min = -1;for (i = 0; i<CityNum; i++)if (PreCity[i] != -1){for (j = 0; j<CityNum; j++)if (PreCity[j] == -1 && matx[i][j]>0 && (min<0 || matx[i][j]<min)){pre = i; pos = j; min = matx[i][j];}}PreCity[pos] = pre;}Dijkstra_Output(matx, PreCity, p_end, TravelType);}五、测试分析1. 添加城市在主菜单下,用户输入1,添加城市名称。