892编号全国交通咨询模拟系统实验报告

上传人:玩*** 文档编号:145991837 上传时间:2020-09-25 格式:PDF 页数:41 大小:783.85KB
返回 下载 相关 举报
892编号全国交通咨询模拟系统实验报告_第1页
第1页 / 共41页
892编号全国交通咨询模拟系统实验报告_第2页
第2页 / 共41页
892编号全国交通咨询模拟系统实验报告_第3页
第3页 / 共41页
892编号全国交通咨询模拟系统实验报告_第4页
第4页 / 共41页
892编号全国交通咨询模拟系统实验报告_第5页
第5页 / 共41页
点击查看更多>>
资源描述

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

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

2、的等候时间。 (5)咨询以用户和计算机的对话方式进行。由用户输入起始站、终 点站、最优决策原则和交通工具,输出信息:最快需要多长时 间才能到达或者最少需要多少旅费才能到达, 并详细说明依次 于何时乘坐哪一趟列车或哪一次班机到何地。 【测试数据】【测试数据】 二、数据结构设计和核心算法设计描述:二、数据结构设计和核心算法设计描述: 1、根据题目中的基本要求分析,可以创建系统概念模型,流程设计 框图如下: 1、根据题目中的基本要求分析,可以创建系统概念模型,流程设计 框图如下: 呼和浩特 北京 大连 西宁 武汉 南昌 842 137 674 825 672 徐州 397 乌鲁木齐 哈尔滨 长春 沈

3、阳 天津 郑州 西安 兰州 成都 上海 昆明贵阳株州 福州 柳州 广州 深圳 南宁 1892 216 1145 668 1100967 639907 349 676 511 242 305 704 651 622 367 409 255 607 675 140 534 2、逻辑结构拆分: 3、核心设计:核心设计:根据上面的流程图和逻辑拆分,对这个问题有了一个比较直观, 详细地了解。 并且从中也可得知路线的添加即数据的存储是这个系统进行运作的 一个基础。而为了便于数据的存储、添加、删除等操作,我选择了储存文件对这 些数据进行了存储。将每个信息量放在不同的文件中,可以更有效、直观地对这 些数据进行

4、处理。 流程图中的 7 个主要功能模块在主函数中,采用输入选项进入子菜单,但是 其他操作都是在路线添加好后进行的,并且为了每一项功能进行完后,系统可以 交 通 工 具 信息 起止时间 班次 票价 城市编号 火 车 线 路 总数 火车信息 飞机信息 路线信息 飞 机 线 路 总数 及时回到主交互界面,我采用的是无限循环形式,即 while(1) 。 以邻接表作交通图的存储结构,表示边的结点内除含有邻接点的信息外,包 括交通工具、路程中消耗的时间和花费以及出发和到达的时间等多项属性。 三、主控及功能模块层次结构:三、主控及功能模块层次结构: 1、模块说明:本系统分为个模块1、模块说明:本系统分为个

5、模块 1、 )主函数 2、 )添加城市 3、 )查找城市并返回序号 4、 )删除城市 5、 )添加列车 6、 )添加航班 7、 )删除列车或航班 8、 )找出最小费用路线 9、 )初始化系统数据(读入内存) 10、 )找出最快路线 11、 )计算最快路线耗费的时间并打印 12、 )计算最小费用路线 13、 )主界面 14、 )存储信息到文件 15、 )退出、 2、下面是各模块示意图: 基本操作: Char nameMAX_STRING_N UM 班次 Int starttime 出发时间 Int starttime 到达时间 TrafficNodeDat 交通工具交通工具 信息信息 Int c

6、ost 票价 Short int city 城市编号 Int TrainNum 火车路线数 int FlightNum 航班路线数 TrafficNodeDat TrainMAX_TRAFFIC_ NUM 火车路线信息 UNodeDat 路线路线 信息信息 TrafficNodeDat FlightMAX_TRAFFIC_ 航班路线信息 NUM 函数变量声明: #include #include #define ERR 0 #define OK 1 #define Dij_MAXN 33 #define MAX_VERTEX_NUM 31 #define MAX_STRING_NUM 10 #

7、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 EndCity; /该有向边指向的顶点在数组中的位置,即该城市编号 int Cost; /票价 Tra

8、fficNodeDat; typedef struct VNode CityType city; int TrainNum,FlightNum; /标记下面 Train 数组和 Flight 数组里元素个数 TrafficNodeDat TrainMAX_TRAFFIC_NUM; /数组成员为结构体,记录了 到达城市、起止时间、票价和班次 TrafficNodeDat FlightMAX_TRAFFIC_NUM; / int Cost; /遍历时到达该城 市的耗费(时间或者费用) VNodeDat; typedef struct PNode int City; int TraNo; PNode

9、Dat; 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; 函数构成: int main() char nameMAX_STRING_N

10、UM; 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, / switch (Command) case 0: /退出 return 0; case 1: /添加城市 InitSysData(); printf(n 输入城市名:); scanf(%s, InsertCity(name);

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

12、tf(输入列车/飞机班次:); scanf(%s, printf(起始时刻(00:00,24 小时制):); scanf(%2d:%2d, printf(到达时刻(00:00,24 小时制):); scanf(%2d:%2d, printf(票价:);scanf(%d, if (traveltype) InsertFlight(name,s_city,e_city,s_hour*60+s_minute,e_hour*60+e_minute,cost); else InsertTrain(name,s_city,e_city,s_hour*60+s_minute,e_hour*60+e_minute,cost); SaveSysInfo(); printf(System Info Save OK!n); break; case 4: /删除路线 InitSysData(); printf(输入班次:); scanf(%s, DelPath(name); SaveSysInfo(); printf(System Info Save OK!n); break; case 5: /最小耗费 InitSysData(); printf(n 起始城市:); scanf(%s, s

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 实验设计

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