magipige
出于不同目的的旅客对交通工具和交通路径有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个交通咨询系统程序,为旅客提供最优决策的交通咨询。
提供对城市信息进行编辑的功能,包括交通信息的增加,删除,修改。
城市之间有两种交通工具:火车和飞机。
提供两种最优决策 : 最快到达或最省钱到达。全程只考虑一种交通工具。
咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则和交通工具 , 输出信息 : 最快需要多长时间才能到达或者最少需要多少旅费才能到达。
交通咨询系统包括交通信息的查询,交通信息的增加与修改,最省时间与最省钱的路线的生成。
为了实现交通咨询系统的作用,系统包含功能如图所示。
typedef struct unDiGraph
{
int numVerts; //结点
costAdj cost; //邻接矩阵
}unDiGraph,*UNG;
基本操作:
unDiGraph* CreateCostG()
操作结果:构造带权(费用)图。
unDiGraph* CreateTimeG()
操作结果:构造带权(时间)图。
构造飞机带权(费用)图。
PathMat *Floyed(unDiGraph *D)
操作结果:Floyed函数 求任意两点的最短路径。
为了便于系统测试使用,在系统初始化时便存入了预留的数据。
1.成都
2.兰州
3.石家庄
4.郑州
5.武汉
6.贵阳
成都与郑州之间的火车行程的时间为2,费用为4。
成都与兰州之间的火车行程的时间为3,费用为5。
成都与武汉之间的火车行程的时间为1,费用为3。
武汉与郑州之间的火车行程的时间为1,费用为2。
兰州与武汉之间的火车行程的时间为3,费用为6。
兰州与石家庄之间的火车行程的时间为1,费用为3。
武汉与贵阳之间的火车行程的时间为5,费用为2。
贵阳与石家庄之间的火车行程的时间为2,费用为4。
贵阳与兰州之间的火车行程的时间为4,费用为1。
成都与武汉之间的飞机行程的时间为3,费用为3。
成都与兰州之间的飞机行程的时间为1,费用为1。
兰州与石家庄之间的飞机行程的时间为2,费用为5。
兰州与贵阳之间的飞机行程的时间为4,费用为2。
石家庄与贵阳之间的飞机行程的时间为3,费用为1。
武汉与贵阳之间的飞机行程的时间为2,费用为3。
武汉与石家庄之间的飞机行程的时间为3,费用为4。
实现全国交通咨询模拟系统的开发,采用图结构类型存储城市的信息。其中,各城市间的邻接关系用图的邻接矩阵类型存储;城市信息用结构体数组存储,其中每个数组元素是一个结构体变量,包含时间和费用三个分量;图的顶点的个数和边的个数由变量费用、时间大小表示,它们是整型数据。
全国交通咨询模拟系统由4个功能模块组成:添加城市、删除程序、采用火车出行、采用飞机出行
下面给出功能模块图,如图所示。
ADT内基本操作函数之间的函数调用关系图,如图所示。
初始化:D[u,v]=A[u,v]
For k:=1 to n
For i:=1 to n
For j:=1 to n
If D[i,j]>D[i,k]+D[k,j] Then
D[i,j]:=D[i,k]+D[k,j];
算法结束:D即为所有点对的最短路径矩阵
为了实现全国交通咨询模拟系统,需要设计一个含有多菜单项的主控菜单子程序,以链接系统中各个子项目的调用,为了方便用户使用本系统,本系统主控菜单的运行界面如图所示。
交通资讯系统调试成功后在本地运行结果如下:
keyboard_arrow_left上一篇 : 基于QT实现的酒店预订与管理系统 8种排序算法的比较案例 : 下一篇keyboard_arrow_right