精品文档
一、问题描述
全国交通咨询模拟:处于对不同目的的旅客对交通工具有不同的要求。例如.
因公出差的旅客希望在旅途中的时间尽可能短.出门旅游的游客则希望旅费尽可能省.而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序.为旅客提供两种或三种最优决策的交通咨询。
【基本要求】(1)提供对城市信息进行编辑(如:添加或删除)的功能。
(2)城市之间有两种交通工具:火车和飞机。提供对列车时刻表和 飞机航班进行编辑(增设或删除)的功能。
(3)提供两种最优决策:最快到达或最省钱到达。全程只考虑一种 交通工具。
(4)旅途中耗费的总时间应该包括中转站的等候时间。
(5)咨询以用户和计算机的对话方式进行。由用户输入起始站、终 点站、最优决策原则和交通工具.输出信息:最快需要多长时 间才能到达或者最少需要多少旅费才能到达.并详细说明依次 于何时乘坐哪一趟列车或哪一次班机到何地。 【测试数据】
乌鲁木齐 1892 1145 242 668 呼和浩特 305 哈尔滨 长春 北京 137 704 沈阳 397 676 西宁 天津 216 511 349 674 兰州 大连 西安 郑州 徐州 842 534 651 成都 武汉 1100 967 409 上海 639 907 367 825 昆明 贵阳 株州 南昌 607 622 福州 672 675 255 柳州 广州 140 南宁 深圳
二、数据结构设计和核心算法设计描述:
1、根据题目中的基本要求分析.可以创建系统概念模型.流程设计框图如下:
.
精品文档
.
精品文档
班次 2、逻辑结构拆分: 城市编号 交通工具 信息 起止时间 火 车线路总数 票价 飞机线路总数 路线信息 火车信息
飞机信息 3、核心设计:根据上面的流程图和逻辑拆分.对这个问题有了一个比较直观.详细地了解。并且从中也可得知路线的添加即数据的存储是这个系统进行运作的一个基础。而为了便于数据的存储、添加、删除等操作.我选择了储存文件对这些数据进行了存储。将每个信息量放在不同的文件中.可以更有效、直观地对这些数据进行处理。
流程图中的7个主要功能模块在主函数中.采用输入选项进入子菜单.但是其他操作都是在路线添加好后进行的.并且为了每一项功能进行完后.系统可以
.
精品文档
及时回到主交互界面.我采用的是无限循环形式.即while(1)。
以邻接表作交通图的存储结构.表示边的结点内除含有邻接点的信息外.包括交通工具、路程中消耗的时间和花费以及出发和到达的时间等多项属性。
三、主控及功能模块层次结构: 1、模块说明:本系统分为个模块
1、)主函数 2、)添加城市
3、)查找城市并返回序号
4、)删除城市 5、)添加列车 6、)添加航班 7、)删除列车或航班 8、)找出最小费用路线
9、)初始化系统数据(读入内存) 10、)找出最快路线
11、)计算最快路线耗费的时间并打印 12、)计算最小费用路线 13、)主界面 14、)存储信息到文件 15、)退出、
2、下面是各模块示意图:
.
.
精品文档