1 / 18
文档名称:

交通咨询系统数据结构c语言.doc

格式:doc   大小:383KB   页数:18页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

交通咨询系统数据结构c语言.doc

上传人:相惜 2020/4/19 文件大小:383 KB

下载得到文件列表

交通咨询系统数据结构c语言.doc

文档介绍

文档介绍:数据结构课程设计交通咨询系统设计学生姓名:学号:指导教师:完成日期:目录1设计任务书 12概要设计 23详细设计 34调试分析 115测试结果 12参考文献 :编写程序实现交通咨询系统设计的模拟。要求:(1)建立交通网络网的存储结构;(2)总体设计要画流程图;(3)提供程序测试方案;(4)界面友好。、邻接矩阵、迪杰斯特拉算法、弗洛伊德算法、结构体、宏定义、自定义类型、函数的声明与调用等知识点。(1)普通输入对于图的存储,我采用的是邻接矩阵的方法,借助于邻接矩阵容易判定任意两个顶点之间是否有弧相连,也容易求得各段弧的权值。(2)对话式输入在用户选择系统功能时,我采用的是对话式输入,让用户输入系统功能的代号,利用switch语句判断用户输入的指令并调用相应的函数实现具体功能。(3)程序输出对于用户查询结果的展示,考虑美观以及方便用户的因素,我写了一个pri()函数输出各个城市的代码城市名字对照表,用户可以更方便的使用。对于用户查询一个城市到所有城市的最短路径时,考虑到显示结果较多,我采用表格的形式进行显示,使界面更美观。,人们出去旅行、出差更多的会考虑选择最短路径或最小花费等问题,因此我设计了一个交通咨询系统。这个系统可以根据用户的选择实现3种功能:求一个城市到所有城市的最短路径;求两个城市间的最短路径;求两个城市间的最小花费。(1)结构体路径图结构体类型 MGraph 花费图结构体类型 HGraph(2)函数声明voidpri()//输出城市代号对照表函数。voidCreateMGraph(MGraph*G)//创建路径图函数,路径图存放于G中。voidCreateHGraph(HGraph*H)//创建花费图函数,花费图存放于H中。voidDijkstra(MGraph*G,intv1,intn)//迪杰斯特拉算法求单源最短路径函数,v1为源点,n为城市个数,这个图存放于G中。voidFloyd(MGraph*G,intn)//弗洛伊德求两点间最短路径函数,n表示城市个数,这个图存放于G中。voidFloyd1(HGraph*H,intn)//弗洛伊德求两点间最小花费函数,n表示城市个数,这个图存放于H中。(1)主程序调用模块图主程序利用switch()语句实现各个模块的调用,主函数调用如图2-1所示。主程序根据不同值主调函数0退出1求单源最短路径2求两点间最短路径3求两点间最小花费图2-(1)路径图结构体类型{ Vertextypevexs[MVNum];//顶点数组,顶点表示城市代号 Adjmatrixarcs[MVNum][MVNum];//邻接矩阵定义路径图}MGraph;(2)花费图结构体类型typedefstruct{ Vertextypevexs[MVNum];//顶点数组,顶点表示城市代号 Adjmatrixarcs[MVNum][MVNum];//邻接矩阵定义花费图}HGraph;#include<>#include<>#defineMVNum100//最大顶点数#defineMaxint65535//定义一个最大数,其意义为无穷大enumboolean{FALSE,TRUE};typedefcharVertextype;typedefintAdjmatrix;typedefstruct{ Vertextypevexs[MVNum];//顶点数组类型假定为char型 Adjmatrixarcs[MVNum][MVNum];//邻接矩阵假定为int型}MGraph;typedefstruct{ Vertextypevexs[MVNum];//顶点数组类型假定为char型 Adjmatrixarcs[MVNum][MVNum];//邻接矩阵假定为int型}HGraph;intD1[MVNum],p1[MVNum];intD[MVNum][MVNum],p[MVNum][MVNum];voidpr(inti){ switch(i) { case1:printf("北京");break; case2:printf("天津");break; case3:printf("郑州");break;