数据结构课程设计_城市交通咨询系统方案.doc
《数据结构课程设计_城市交通咨询系统方案.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计_城市交通咨询系统方案.doc(14页珍藏版)》请在课桌文档上搜索。
1、XX学院数据结构课程设计报告题目城市交通咨询系统 目录目录11系统需求分析21.1用户需求分析21.2功能需求分析31.3数据需求分析31.4 小结32系统设计42.1系统设计思路42.2系统设计功能42.3每个模块的具体能52.4主函数的调用关图103系统测试113.1操作说明113.2测试数据113.2.1用户进入界面113.2.2具体功能的实现123.2.3选择0结束程序144总结145致谢146附录151.系统需求分析描述:现如今网络非常发达.无论人们出差.旅游或者做其他的出行之时.都会想到道路问题.切不仅仅关心的是交通费用.而且对于里程和所需要的时间等的问题也是同样的关心.在此系统中
2、.完全面向用户.可以用一个图结构来表示交通网络系统.利用计算机建立一个交通咨询系统。且在图中.顶点表示城市.边表示城市之间的交通关系。设计一个交通咨询系统.能够让旅客咨询从任一城市顶点到达另外一个城市之间顶点的最短路径问题最短里程问题。对系统分析.主要从以下几个方面进行分析。1.用户需求分析2.功能需求分析3.数据需求分析1.1 用户需求分析现如今网络非常发达.无论人们出差.旅游或者做其他的出行之时.都会想到道路问题.切不仅仅关心的是交通费用.而且对于里程和所需要的时间等的问题也是同样的关心.在此系统中.完全面向用户.可以用一个图结构来表示交通网络系统.利用计算机建立一个交通咨询系统。且在图中
3、.顶点表示城市.边表示城市之间的交通关系。设计一个交通咨询系统.能够让旅客咨询从任一城市顶点到达另外一个城市之间顶点的最短路径问题最短里程问题。当要查询某两个城市之间的最短交通路线或者其中一个城市到达其余城市的最短路线时.是一个很繁琐的过程。 根据用户自己的需求.可以自定义地图.此程序就是主要以满足用户自己的环境与实际情况.在难以计算路程时.可将地图输入进行计算.系统将会为用户提供所用路径最短的出现路线.更好的满足用户需求。以下是针对咨询用户说明其最基本的模块功能。1进入程序后.用户可自己设置城市的个数.以及所有城市之间总共的路径.且分别用顶点和边表示城市与路径2用户根据自己设置的城市个数和路
4、径数.具体输入每个路径的起始点以及每条路径的长度。3进入菜单选择界面4选择2.系统为用户进行提供任意城市的交通查询,即查询任意两个城市之间的一条最短路径。5选择1.系统为用户提供指定城市的交通查询.即查询指定城市到其他城市之间的最短路径。如若输入顶点超出范围显示错误.系统回到菜单重新选择6选择0.系统推出程序。1.2功能需求分析城市交通咨询系统总体的设计目标:用数据结构中的邻接矩阵作数据结构.并结合数据结构有向图的最短路径计算方法.结合相应的数据算法以及c语言的相关知识.编写一个良好的.具有可操作性的.以及能方便用户的使用.包括自定义地图.路径与城市个数可结合实际情况而言.相对操作.简便易懂并
5、无难度。系统在菜单可根据命令进行相应的操作.已满足用户的需求。 1.2.1城市交通系统基本功能根据以上分析.此系统具备以下功能:(1) 用户进入后的地图创建界面明确地图中城市的个数以及路径的个数(2) 地图完善界面用户自己输入地图中相关路径的起始点以及路径长度(3) 菜单界面包含两条命令(4) 命令1求一个城市到所有城市的最短距离(5) 命令2求任意的两个城市之间的最短距离(6) 回复命令0可推出程序。1.3数据需求分析 用邻接矩阵建立交通网络模块VertexType vexsMVNum;/顶点数组.类型假定为char Adjmatrix arcsMVNumMVNum;/邻接矩阵.类型假定为i
6、nt型建立邻接矩阵.用函数void CreateMGraph /采用邻接矩阵表示法构造有向图G.n、e表示图的当前顶点数和边数 用迪杰斯特拉算法计算某顶点到其余顶点的最短路径用函数void Dijkstra 来定义此函数采用邻接矩阵表示法构造有向图G.n、e表示图的当前顶点数和边数 用弗洛伊德算法求任意一对顶点的最短路径 用函数 void Floyd 来定义。利用费洛伊德算法.求出最短路径。1.4小结从各种需求方面下手改编代码.并不断调试.让界面更加友好。不断地尝试上.在各种问题上不断突破.慢慢的完善代码.等最大限度的满足用户需求。这几天短时间的课程设计也让我认识到了自己在这门课程上还面临着许
7、许多多的问题.为以后的具体实践明确了努力方向。同时.城市交通咨询系统的实现.为用户更好的解决了再实际出行时遇到的路径问题.最初的设计也为代码敲定了编写方向。再三考虑后确定了系统的功能.确定什么功能有实现必要.什么功能可有可无。在这样的基础之下使得思路更加清晰。2.系统设计 2.1系统设计思路本程序首先是用户编辑界面.用户根据自己的需求编写地图.从而加入顶点的数组之中.创建的地图用邻接矩阵存储.在从主函数之中进行调用.实现对两个算法的调用。用户在输入顶点以及边的信息都会存储.在存储成功之后会提示用户存储成功.之后进入到菜单界面.菜单界面提供两种选择口令.分别可以调运Dijkstra和Floyd算
8、法.调用之后输入相应的口令以及要查询的城市编号.算法会根据邻接矩阵存储的地图进行计算.求出最短路径。在以后使用完系统后.可输入口令0.系统会结束一切运算.退出程序。 2.2系统设计功能菜单界面的主要功能有两个:1、求一个城市到所有城市的最短距离2、求任意的两个城市之间的最短距离城市交通咨询系统主要有三个模块分别为:1、邻接矩阵的输入与存储构建交通网络2、任意两个城市的最短距离查询3、两个指定城市的最短距离查询主界面的模块概念图如下:用户进入系统交通网络构建结果,退出系统任意两个城市的 最短距离查询两个指定城市的最短距离查询图 2.1 2.3每个模块的具体功能。1、采用C语言定义相关数据类型1定
9、义一个.用来存储顶点信息。typedef struct VertexType vexsMAX; Adjmatrix arcsMAXMAX;MGraph; . 2定义一个Dijkstra函数void Dijkstra;3定义一个Floyd函数void Floyd;2、建立邻接矩阵交通网络:N结束k=e,k+开始输入顶点和边数n,e输入i,j,w Y 图2.2邻接矩阵构造图结构函数数据类型定义:typedef struct VertexType vexsMAX; Adjmatrix arcsMAXMAX;MGraph;void CreateMGraph/邻接矩阵构成有向图 int i,j,k,w;
10、 fori=1;i G-vexsi=i; fori=1;i forj=1;j G-arcsij=IDF; printf; fork=1;k scanf; G-arcsij=w; printf;其中vexsMAX保存顶点信息.arcsMAXMAX用于保存边与边之间的信息。在构建时通过输入的边数i.j作为矩阵的行、列确定顶点的出度和入度。用邻接矩阵方法存储图。3、查询指定城市到其他城市自己建的最短路程:开始输入顶点v狄克斯特拉算法输出路径,距离结束 图2.3应用狄克斯特拉算法来具体实现这一步的需求。基本思想:设GV,E是一个带权有向图.把图中的顶点集合V分成两组.第一组为已经求出的最短路径的顶点集
11、合用S表示.初始时S中只有一个原点.以后每求得一条最短路径就加入的集合S中.知道全部顶点都加入到集合中.第二组.为其余未确定最短路径的顶点集合用U表示.按最短路径长度的递增次序依次把第二组的顶点就如S中。如果两个顶点之间有权值.并且各个路径的权值不同.就把最小的作为顶点与顶点的最短距离。k yuv x z 图2.4如图所示 若x+yk=u。同理若x+yu.D v1=0;Sv1=1; /原点编号放入s中 fori=2;i min=IDF; forw=1;w if!Sw&D w v=w;min=D w; Sv=1; /修改顶点u放入s中 forw=1;w if!Sw&arcsvw D w=D v+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 城市交通 咨询 系统 方案

链接地址:https://www.desk33.com/p-10466.html