全国交通咨询模拟系统C++实现(课程设计报告)

全国交通咨询模拟系统C++实现(课程设计报告)

ID:47488505

大小:182.00 KB

页数:22页

时间:2020-01-12

全国交通咨询模拟系统C++实现(课程设计报告)_第1页
全国交通咨询模拟系统C++实现(课程设计报告)_第2页
全国交通咨询模拟系统C++实现(课程设计报告)_第3页
全国交通咨询模拟系统C++实现(课程设计报告)_第4页
全国交通咨询模拟系统C++实现(课程设计报告)_第5页
资源描述:

《全国交通咨询模拟系统C++实现(课程设计报告)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、全国交通咨询模拟一、设计目的掌握线性表、栈、图结构和对文件的操作,学习屏幕编辑和菜单技术,掌握用最短路径及其搜索算法编制较综合性的程序,能用图的邻接存储结构求解最优路线问题,解决有关实际问题。得到软件设计技能的训练。二、问题描述交通咨询模拟。根据旅客的不同需要,要考虑到旅客希望在旅途中的时间尽可能短、希望旅费尽可能省等的要求。旅途用火车或飞机作为交通工具。用计算机编制程序,为旅客提供两种最优决策的交通咨询系统。三、基本要求1、对城市信息(城市名、城市间的里程)进行编辑:具备添加、修改、删除功能;2、对城市间的两种交通工具:飞机和火车。对飞机

2、航班和列车时刻表进行编辑:里程、航班和列车班次的添加、修改、删除;3、提供两种最优决策:最快到达或最省钱到达。全程只考虑一种交通工具,可以不考虑回程;4、旅途中的耗费的总时间应包括中转站的等候时间。其中飞机至少二小时,火车至少一小时;5、咨询以用户和计算机对话方式进行,要注意人机交互的屏幕界面。由用户选择最优决策原则和交通工具,输入起始站、终点站、出发时间,输出信息:最快需要多长时间才能到达及旅费,或者最少需要多少旅费才能到达及时间,并详细说明依次于何时何地乘坐哪一趟班机或列车何时到达何地。四、实现提示1、算法思路(1)数据存储。城市信息(

3、城市名、代码)、交通信息(城市间的里程、各航班和列车时刻)存储于磁盘文件。建议把城市信息存于文件前面,交通信息存于文件的后面,用fread和fwrite函数操作。(2)数据的逻辑结构。根据设计任务的描述,其城市之间的旅游交通问题是典型的图结构,可看作为有向图,图的顶点是城市,边是城市之间所耗费的时间(要包括中转站的等候时间)或旅费。(3)数据的存储结构。采用邻接表和邻接矩阵都可作为数据的存储结构,但当邻接边不多时,宜采用邻接表,以提高空间的存储效率。这里建议采用邻接表作为数据的存储结构。(4)用不同的功能模块对城市信息和交通信息进行编辑。添

4、加、修改、删除功能可用菜单方式或命令提示方式。只要能方便的对城市信息和交通信息进行管理即可,但要注意人机界面,具体实现由学生自行设计,也可参考有关程序(届时在网上提供)。这些工作有不小的工作量。(5)最优决策功能模块(fastorprovince)。①读入城市信息和交通信息,用邻接表生成含权网络,表头数组中的元素存放城市名及对方城市到达该元素所代表城市的所有信息;表头数组中的元素所对应的单链表存放与该元素所代表的城市有交通联系的城市(代码、里程、航班、列车车次)。②根据具体最优决策的要求,用Dijkstra算法求出出发城市到其它各城市的最优

5、值(最短时间或最小的费用),搜索过程中所经过城市的局部最优信息都保存在邻接表的表头数组中。其目的城市所代表的元素中就保存了所需的最优决策结果。这过程中,要用队列或栈保存局部最优决策值(局部最短的时间或最省的费用)变小的城市,其相应的初始值可为∞,并在表头数组对应的城市元素中保存响应的信息。开始时,栈(队)中只有出发地城市,随着对栈(队)顶(首)城市有交通联系的城市求得决策值(最短时间或最小的费用),若该值是局部最优值且该城市不在栈(队)中,则进栈(队),直至栈(队)为空。③输出结果。从目的城市出发,搜索到出发城市,所经过的城市均入栈,再逐一

6、出栈栈中的城市,输出保存在表头数组中对应城市的信息(对方城市的出发信息,里程、时间、费用等)及最终结果。即输出依次于何时何地乘坐几点的飞机或火车于何时到达何地;最终所需的最快需要多长时间才能到达及旅费,或者最少需要多少旅费才能到达及时间。(6)主程序可以有系统界面、菜单;也可用命令提示方式;选择功能模块执行,要求在程序运行过程中可以反复操作。2、数据结构本程序运用了关于图这种数据结构。他的抽象数据类型定义如下:typedefstructunDiGraph{intnumVerts;//结点costAdjcost;//邻接矩阵}unDiGrap

7、h,*UNG;基本操作:unDiGraph*CreateCostG()操作结果:构造带权(费用)图。unDiGraph*CreateTimeG()操作结果:构造带权(时间)图。构造飞机带权(费用)图。PathMat*Floyed(unDiGraph*D)操作结果:Floyed函数求任意两点的最短路径。3、算法思想本程序运用了图的知识,构造了无向带权费用图和无向带权时间图。(如图1,图2所示)图1.十三城市之间火车费用表(权值表示费用)图2.十三城市之间火车行驶时间表(权值表示时间)并利用Floyed函数求带权图两点之间的最短路径。通过对带权

8、费用图和带权时间图求最短路径,就可以最短道从一城市到另一城市之间最省时间和最省费用的走法。为了简洁直观,本设计对课本内的交通网进行了简化,原来的25个城市缩减为13个。但是基本实

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。