- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
全国交通咨询模拟系统的设计与实现
问题描述
出于不同目的的旅客对交通工具有不同的要求。 例如, 因公出差的旅客希 望在旅途中的时间尽可能短 , 出门旅游的游客则期望旅费尽可能省 , 而老年旅 客则要求中转次数最少。 编制一个全国城市间的交通咨询程序 , 为旅客提供两 种或三种最优决策的交通咨询。
需求分析
提供对城市信息进行编辑 ( 如 : 添加或删除 ) 的功能。
城市之间有两种交通工具:火车和飞机。
提供两种最优决策 : 最快到达或最省钱到达。全程只考虑一种交通工 具。
旅途中耗费的总时间应该包括中转站的等候时间。
咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最 优决策原则和交通工具 , 输出信息 : 最快需要多长时间才能到达或者最少 需要多少旅费才能到达 , 并详细说明依次于何时乘坐哪一趟列车或哪一次 班机到何地。
概要设计
因为全国交通咨询模拟中有众多城市之间的连接关系,为实现全国交通咨询 系统的开发,采用图类型与邻接表类型来存储城市之间的信息。下面给出他 们的ADT的定义。
3.1 抽象数据类型定义如下:
typedef struct unDiGraph
{
int numVerts; // 结点
costAdj cost; // 邻接矩阵
}unDiGraph,*UNG;
基本操作:
unDiGraph* CreateCostG()
操作结果: 构造带权 ( 费用) 图。
unDiGraph* CreateTimeG()
操作结果: 构造带权(时间)图。
构造飞机带权 ( 费用) 图。
PathMat *Floyed(unDiGraph *D)
操作结果: Floyed 函数 求任意两点的最短路径。
3.2 系统功能模块设计
全国交通咨询模拟系统由 4 个功能模块组成: 添加城市、删除程序、 采用火车出行、 采
用飞机出行
F面给出功能模块图,如图 3-1所示。
全国交通咨询模拟
添加/删除城市飞机/火车的班次查火车出行火车的杳询 飞机的查询般扣时间路线费用路线
添加/删除城市
飞机/火车的班次查
火车出行
火车的杳询 飞机的查询
般扣时间路线
费用路线
图3-1
图3-1全国交通咨询模拟功能模块图
3.3主要函数调用关系图
(给出ADT内基本操作的那些函数之间的函数调用关系图) 如图3-2所示。
ChOEe_tirrie()Chas亡_皿白11钾 匚administratcrOFlo/ed(]edit line6edit fho图
ChOEe_tirrie()
Chas亡_皿白11钾 匚
administratcrO
Flo/ed(]
edit line
6
edit fho
图3-2
系统函数调用关系图
3.4主界面设计
以链为了实现全国交通咨询模拟系统, 需要设计一个含有多菜单项的主控菜单子程序, 接系统中各个子项目的调用,为了方便用户使用本系统,本系统主控菜单的运行界面如图 3-3所示。
以链
痢入你希望查询的种类代码伤遥羅到最範巒-亠 林mm全国乂通备荷模扌(1
痢入你希望查询的种类代码伤遥羅到最範巒-亠 林mm全国乂通备荷模扌(1系统
M
幵
?查看博帀 並
乳选拇襄节约费用路线
4-fJSS卷序
* 9-退出程jf
TH”翻H匕地丑大学华信学院国 “?***感谢您的便 ……-
?-
W-
餐
*
您盲遷出宝贵意见***********
请选择Cb-43
详细设计
实现全国交通咨询模拟系统的开发, 采用图结构类型存储城市的信息。 其中,各城市间
的邻接关系用图的邻接矩阵类型存储; 城市信息用结构体数组存储, 其中每个数组元素
是一个结构体变量,包含时间和费用三个分量; 图的顶点的个数和边的个数由变量费用、 时间大小表示,它们是整型数据。
4.1数据类型定义
数据存储:有向图、邻接表 函数调用:
#i nclude win dows.h #i nclude stdio.h #in elude crtdbg.h
#include string.h
引用的文本件定义一个最大数定为无穷值#i ncludeiostream.h #i nclude malloc.h〃 #defi ne INF 65535 // #defi ne MAX
引用的文本件
定义一个最大数定为无穷值
typedef in t costAdj[MAX+1][MAX+1];〃 图邻接矩阵从 1 开始记数
int Path[MAX+1][MAX+1];// 图邻接矩阵从1开始记数
in t o[13],h;
typedef struct un DiGraph
{
int num Verts; // 结点
costAdj cost; // 邻接矩阵
}u nDiGraph,*UNG; // 图的定义
co
文档评论(0)