欢迎来到天天文库
浏览记录
ID:42537310
大小:628.69 KB
页数:31页
时间:2019-09-17
《全国交通咨询模拟系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、全国交通咨询模拟系统的设计与实现1•问题描述出于不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,岀门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。2.需求分析(1)提供对城市信息进行编辑(如:添加或删除)的功能。⑵城市之间有两种交通工具:火车和飞机。⑶提供两种最优决策:最快到达或最省钱到达。全程只考虑一种交通工具。⑷旅途中耗费的总吋间应该包括中转站的等候吋间。(5)咨询以用户
2、和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则和交通工具,输出信息:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。3.概要设计因为全国交通咨询模拟中有众多城市之间的连接关系,为实现全国交通咨询系统的开发,釆用图类型与邻接表类型来存储城市之间的信息。下面给出他们的ADT的定义。3.1抽象数据类型定义如下:typedefstructunDiGraphintnurnVeHs;//结点costAdjcost;//邻接矩阵}unDi
3、Graph,*UNG;基本操作:unDiGraph*CreateCostG()操作结果:构造带权(费用)图。unDiGraph^CreateTimeG()操作结果:构造带权(时间)图。构造飞机带权(费用)图。PathMat*Floyed(unDiGraph*D)操作结果:Floyed函数求任意两点的最短路径。3.2系统功能模块设计全国交通咨询模拟系统由4个功能模块组成:添加城市、删除程序、采用火车出行、采用飞机出行下面给出功能模块图,如图3・1所示。全国交通咨询模拟飞机出行火车出行阴铀r飞火班添加/
4、删除城市最节约费用路线最短时间路线最节约费用路线最短时间路线火车的查询飞机的查询图3-1全国交通咨询模拟功能模块图3.3主要函数调用关系图(给出ADT内基本操作的那些函数之间的函数调用关系图)如图3・2所示。Main()Pri()■Chose_money()■Chose_time()money()If_money()Floyed()F_time()administrator()■MMIaddcityO—1edit」ine61editho1editfhoeditflin'()1系统函数调用关系图图3-
5、23.4主界面设计为了实现全国交通咨询模拟系统,需要设计一个含有多菜单项的主控菜单子程序,以链接系统屮各个子项目的调用,为了方便用户使用本系统,本系统主控菜单的运行界面如图3-3所示。输入你希望查询的种类代码,”4gggggg全国父通猗里鶴拟系统*「查看越詩木*2•选择罐短时间路线、*3・选捋叢节约费用路线—薛序*2・*3.*4.*0-ggggg"運河寸匕地址大学华信学院@*™*™感谢您购沪二_二^二祝您岀行愉快,一路顺风望您能提出宝贵意见***********请选择(0-4)4.详细设计实现全国交
6、通咨询模拟系统的开发,采用图结构类型存储城市的信息。其屮,各城市间的邻接关系用图的邻接矩阵类型存储;城市信息用结构体数组存储,其屮每个数组元素是一个结构体变量,包含吋间和费用三个分量;图的顶点的个数和边的个数由变量费用、时间大小表示,它们是整型数据。4.1数据类型定义数据存储:有向图、邻接表函数调用:#includeJtincludcttinclude^include#include#includ
7、e//引用的文本件#dcfincINF65535//定义一个最大数定为无穷值^defineMAX13typedefintcostAdj[MAX+1][MAX+1];//图邻接矩阵从1开始记数intPath[MAX+1][MAX+1];//图邻接矩阵从1开始记数into[13],h;typedefstructunDiGraph{intnumVerts;//结点costAdjcost;//邻接矩阵}unDiGraph,*UNG;//图的定义costAdjB,L;voidpr(inti
8、)〃选择城市voidpri()//输岀城市unDiGraph*CreateCostG()//构造带权(费用)图返回首地址G:unDiGraph*CreateTimeG()//构造带权(吋间)图返冋首地址G:unDiGraph*CrcatcFlyG()//飞机的相关信息voidFloyed(unDiGraph*D,unDiGraph*M)//Floyed函数求任意两点的最短路径:■■voidprn_pass(inti,intj)//为了求从i到j的最短路径,只需要调用如
此文档下载收益归作者所有