全国交通咨询模拟系统实验报告.

上传人:花**** 文档编号:145354088 上传时间:2020-09-19 格式:DOCX 页数:41 大小:803KB
返回 下载 相关 举报
全国交通咨询模拟系统实验报告._第1页
第1页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《全国交通咨询模拟系统实验报告.》由会员分享,可在线阅读,更多相关《全国交通咨询模拟系统实验报告.(41页珍藏版)》请在金锄头文库上搜索。

1、一、问题描述 全国交通咨询模拟:处于对不同目的的旅客对交通工具有不同的要求。例如, 因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则希望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。【基本要求】(1)提供对城市信息进行编辑(如:添加或删除)的功能。 (2)城市之间有两种交通工具:火车和飞机。提供对列车时刻表和 飞机航班进行编辑(增设或删除)的功能。 (3)提供两种最优决策:最快到达或最省钱到达。全程只考虑一种 交通工具。 (4)旅途中耗费的总时间应该包括中转站的等候时间。 (5)咨询以用户和计算机的对话方式进行。

2、由用户输入起始站、终 点站、最优决策原则和交通工具,输出信息:最快需要多长时 间才能到达或者最少需要多少旅费才能到达,并详细说明依次 于何时乘坐哪一趟列车或哪一次班机到何地。徐州397乌鲁木齐哈尔滨长春沈阳天津郑州西安兰州成都上海昆明贵阳株州福州柳州广州深圳南宁189221611456681100967639907349676511242305704651622367409255607675140【测试数据】呼和浩特北京137674西宁大连534842武汉825南昌6722、 数据结构设计和核心算法设计描述:1、 根据题目中的基本要求分析,可以创建系统概念模型,流程设计框图如下: 班次2、逻辑

3、结构拆分: 起止时间城市编号交通工具 信息 票价飞机线路总数火车线路总数火车信息路线信息飞机信息3、 核心设计:根据上面的流程图和逻辑拆分,对这个问题有了一个比较直观,详细地了解。并且从中也可得知路线的添加即数据的存储是这个系统进行运作的一个基础。而为了便于数据的存储、添加、删除等操作,我选择了储存文件对这些数据进行了存储。将每个信息量放在不同的文件中,可以更有效、直观地对这些数据进行处理。流程图中的7个主要功能模块在主函数中,采用输入选项进入子菜单,但是其他操作都是在路线添加好后进行的,并且为了每一项功能进行完后,系统可以及时回到主交互界面,我采用的是无限循环形式,即while(1)。 以邻

4、接表作交通图的存储结构,表示边的结点内除含有邻接点的信息外,包括交通工具、路程中消耗的时间和花费以及出发和到达的时间等多项属性。3、 主控及功能模块层次结构:1、 模块说明:本系统分为个模块1、)主函数 2、)添加城市 3、)查找城市并返回序号4、)删除城市5、)添加列车6、)添加航班7、)删除列车或航班8、)找出最小费用路线9、)初始化系统数据(读入内存)10、)找出最快路线11、)计算最快路线耗费的时间并打印12、)计算最小费用路线13、)主界面14、)存储信息到文件15、)退出、2、下面是各模块示意图:基本操作: TrafficNodeDat 交通工具 信息Char nameMAX_ST

5、RING_NUM 班次 Int starttime 出发时间 Int starttime 到达时间 Int cost 票价 UNodeDat 路线 信息 Short int city 城市编号 Int TrainNum 火车路线数 int FlightNum 航班路线数 TrafficNodeDat TrainMAX_TRAFFIC_NUM 火车路线信息 TrafficNodeDat FlightMAX_TRAFFIC_NUM 航班路线信息函数变量声明:#include #include #define ERR 0 #define OK 1 #define Dij_MAXN 33 #defin

6、e MAX_VERTEX_NUM 31 #define MAX_STRING_NUM 10 #define MAX_TRAFFIC_NUM 10 const char CityFile =D:city.txt; const char TrainFile =D:train.txt; const char FlightFile =D:flight.txt; typedef short int CityType; typedef struct TrafficNode char nameMAX_STRING_NUM; /班次 int StartTime,StopTime; /起止时间 int EndC

7、ity; /该有向边指向的顶点在数组中的位置,即该城市编号 int Cost; /票价 TrafficNodeDat; typedef struct VNode CityType city; int TrainNum,FlightNum; /标记下面Train数组和Flight数组里元素个数 TrafficNodeDat TrainMAX_TRAFFIC_NUM; /数组成员为结构体,记录了到达城市、起止时间、票价和班次 TrafficNodeDat FlightMAX_TRAFFIC_NUM; / int Cost; /遍历时到达该城市的耗费(时间或者费用) VNodeDat; typede

8、f struct PNode int City; int TraNo; PNodeDat; VNodeDat AdjListMAX_VERTEX_NUM; /System Info char CityNameMAX_VERTEX_NUMMAX_STRING_NUM; /城市名,采用第一下标为该城市在本程序中的编号 int CityNum; /城市数目 PNodeDat PathMAX_VERTEX_NUM; /存储临时最小时间路径 PNodeDat MinPathMAX_VERTEX_NUM; /存储搜索到当前的最小时间路径 int MinTime,StartTime; int curPath

9、; 函数构成: int main() char nameMAX_STRING_NUM; char s_cityMAX_STRING_NUM; char e_cityMAX_STRING_NUM; int Command,cost; int startcity,endcity,traveltype; int s_hour,s_minute,e_hour,e_minute; while (1) ShowMenu(); /显示菜单 scanf(%d,&Command); / switch (Command) case 0: /退出 return 0; case 1: /添加城市 InitSysDat

10、a(); printf(n输入城市名:); scanf(%s,&name); InsertCity(name); SaveSysInfo(); printf(System Info Save OK!n); break; case 2: /删除城市 InitSysData(); printf(n输入城市名:); scanf(%s,&name); DelCity(name); SaveSysInfo(); printf(System Info Save OK!n); break; case 3: /添加路线 InitSysData(); printf(起始站城市名:); scanf(%s,&s_city); printf(终点站城市名:); scanf(%s,&e_city); printf(类型(列车0,航班1):); scanf(%d,&traveltype); printf(输入列车/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号