📄 交通咨询.txt
字号:
}
}
输出没有列车或飞机从城市v0到v1;
}
· 求城市v0,v1之间的最少时间算法的伪码描述如下:
TimeDispose( )
{for(v=0;v<城市个数;v++)
{城市v还未求得最少时间;
*(D+v)=城市v0到v的最少时间;
将城市v的路径设置为空;
if(*(D+v)<INFINITY)
将城市v0和v加入到城市v的路径中;
}
城市v0到城市v0的最少时间为0;
城市v0设为已求得最少时间;
for(i=1;i<城市个数;v++)
{m=INFINITY;
for(w=0;w<城市个数;w++)
if(城市w未求得最少时间)
if(*(D+w)<m)
{v=w;
m=*(D+w);
}
if(v等于v1)
{根据城市v的路径输出从城市v0到城市v1所需经过的城市及路线;
输出最少时间v1;
返回;
}
else
{将城市v设为已求得最少时间;
for(w=0;<G.vexnum;w++)
if(城市w未求得最少时间并且从城市v到w有路径)
{保存城市w原来的路径;
将城市w的路径设为城市v的路径并在最后加入城市w;
利用时间树求出从城市v0城市w的最少时间及路径;
if(*(D+w)>从城市v0到城市w的最少时间)
*(D+w)=从城市v0到城市w的最少时间;
else
将城市w的路径还原;
}
}
}
}
输出没有列车或飞机从城市v0到v1;
}
六.测试分析
按照附录中的测试数据,得出如下测试、分析结果:
1. 操作员管理功能.
1>. 当我们从键盘输入有关图的顶点及弧的信息后,用显示图的函数验证,DOS中显示的图的信息与从键盘输入的信息相同,表明交通系统可以从键盘正确输入信息.
2>. 我们事先建立了有关图的3 个文本文件(包括city.txt,plan.txt,train.txt),在交通系统程序中,选择从文本文件输入图的信息后,用显示操作验证,表明文本文件的内容可以正确调入图的结构体中,说明交通系统可以从文本文件中读取信息.
3>. 当从键盘或文本文件初始化交通图后,测试增加或删除城市结点,增加或删除航班或列车弧,以上各功能都正确.
2. 交通咨询功能.
1>. 火车情况.
1.1>.最少费用.
a. 两地间无中转且有多辆火车.
北京----à郑州
输出结果为:
旅行路线是:
乘坐NO.27列车车次在13:15 从 Beijing 到zhengzhou.
最少旅行费用是78元.
而若选择NO.41 则花费为80 元.
结果正确.
b. 两地之间无中转达且只有一辆火车.
西安----à武汉
输出结果为:
旅行路线是:
乘坐NO.218列车车次在1:34从xi’an到wuhan.
最少旅行费用是178.00 元.
结果正确.
c. 两地之间有中转.
昆明----à北京
输出结果为:
旅行路线是:
乘坐NO.323列车车次在16.:31从kunming到Guangzhou.
乘坐NO.59列车车次在3:39从Guangzhou 到shanghai.
乘坐NO.41列车车次在0:35从shanghai 到zhengzhou.
乘坐NO.27列车车次在13:42 从zhengzhou 到Beijing.
最少旅行费用是462 元.
而若选择 昆明---à武汉---à兰州---à北京 则花费为506 元.
若选择 昆明---à武汉---à西安---à郑州---à北京 则花费为472 元.
结果正确.
1.2>最短时间.
a. 两地间无中转且有多辆火车.
北京----à郑州
输出结果为:
旅行路线是:
乘坐NO.41列车车次在13:15从Beijing 到zhengzhou.
最少旅行时间是7:57.
结果正确.
b.两地之间无中转达且只有一辆火车.
乌鲁木齐----à兰州
输出结果为:
旅行路线是:
乘坐No.371列车车次在0:35从wulumuqi 到lanzhou.
最少旅行时间是10:48.
结果正确.
c. 两地之间有中转.
广州----à兰州
输出结果为:
旅行路线是:
乘坐NO.59列车车次在3:39从guangzhou到shanghai.
乘坐NO.41列车车次在0:35从shanghai到zhengzhou.
乘坐NO.41列车车次在9.40从zhengzhou到Beijing.
乘坐NO.134列车车次在19.24从Beijing到lanzhou.
最少旅行时间是54:49.
结果正确.
1.3>.最短周转次数.
a. 两地可直达且有中转.
昆明---à广州
输出结果为:
旅行路线是:
乘坐NO.323列车车次在16:31从kunming到guangzhou.
最少旅行中转次数是0次 .
而若选择 昆明---à武汉---à长沙---à兰州 则 结果为3.
结果正确.
b.两地间有多条中转路径.
昆明---à上海
输出结果为:
旅行路线是:
乘坐NO.323列车车次在16:31从kunming 到guangzhou.
乘坐NO.59列车车次在3:39从guangzhou 到shanghai.
最少旅行总转次数是1次 .
而若选择 昆明---à武汉---à西安---à郑州---à上海 则 结果为4.
结果正确.
2.飞机情况.
2.1>.两地无直达.
兰州---à武汉
输出结果为:
不存在飞机航班从lanzhou到wuhan.
2.2>.两地无直达.
拉萨---à昆明
a.最少费用:
输出结果为:
乘坐NO.173飞机航班在10:20 从lasa 到kunming.
最少旅行费用是830 元.
结果正确.
b.最短时间:
输出结果为:
乘坐NO.173 飞机航班在10:20 从lasa 到kunming.
最少旅行时间是1:25.
结果正确.
c.最短中转次数.
输出结果为:
乘坐NO.173 飞机航班在10:20 从lasa 到kunming.
最少旅行中转次数是0次.
结果正确.
2.3>两地可中转.
广州----à北京
a.最少费用:
输出结果为:
乘坐NO.2323飞机航班在10:15 从Guangzhou 到xi’an.
乘坐NO.210 飞机航班在12:35 从xi’an 到beijing.
最少旅行费用是2250 元.
结果正确.
b.最短时间:
输出结果为:
乘坐NO.2323 飞机航班在10:15 从Guangzhou 到xi’an.
乘坐NO.210 飞机航班在12:35 从xi’an 到beijing.
最少旅行时间是4:00.
结果正确.
c.最短中转次数.
输出结果为:
乘坐NO.2323 飞机航班在10:15 从Guangzhou 到xi’an.
乘坐NO.210 飞机航班在12:35从xi’an 到beijing.
最少旅行中转次数是1次.
结果正确.
3.打印
打印结果正确;
4.退出
能正确退出
七.使用说明
1.运行程序,首先出现主界面。主界面包括四个选项:选项一:管理员管理界面,选择该项可进行城市交通系统的管理,具体使用说明见说明2;选项二:用户咨询界面,选择该项可进行最少费用、最少时间、最少中转次数的决策咨询,具体使用见说明7;选项三:显示城市交通系统程序,选择该项可显示城市交通系统的所有信息,包括城市、航班和列车车次;选项四:退出程序,选择该项将退出程序。
2.管理员管理界面包括5个选项:选项一:初始化城市交通系统界面,可进行城市交通系统的初始化,具体使用见说明3;选项二:城市编辑界面,可进行城市的增加和删除,具体使用见说明4;选项三:航班编辑界面,可进行航班的增加和删除,具体使用见说明5;选项四:列车车次编辑界面,可进行列车车次的增加和删除,具体使用见说明6;选项五:返回上一级菜单,可返回主界面。
3.初始化城市交通系统界面包括两个选项:选项一:通过键盘初始化城
市交通系统,选择该项后程序将给出输入说明,按输入说明用户需逐
步输入城市、航班、列车车次的信息来对城市交通系统初始化。在输入航班和列车信息时需注意两点:a.所输入的航班和列车的发车时间均在同一天。b.若发车时间小于到达时间,则说明列车在同一天到达,若发车时间大于到达时间,则说明列车在次日达到。飞机航班也是如此;选项二:通过文档初始化城市交通系统,选择该项可用文档进行初始化,但文档必须存在于程序的同一目录下,且必须包含CITY,PLANE,TRAIN三个文本文档,否则程序将提示出错。
4.城市编辑界面包括两个选项:选项一:增加城市,可在城市交通系统中加入新的城市,若用户输入的是已有的城市名,程序将提示出错;选项二:删除城市,可在城市交通系统中删除城市,用户必须输入一个已有的城市名,否则程序提示出错。
5.航班编辑界面包括两个选项:选项一:增加航班,可在两个城市之间
新增航班,选择该项后用户需输入新增航班的编号,起始城市,到达
城市及费用、时间等信息;选项二,删除航班,可删除两个城市间的
一条航班,选择该项后用户需输入要删除航班的编号,起始城市,到
达城市的信息,若航班不存在或编号、城市输入有误,程序将提示错
误。
6.列车车次编辑界面包括两个选项:选项一:增加列车车次,可在两个
城市之间新增列车车次,选择该项后用户需输入新增列车的编号,起
始城市,到达城市及费用、时间等信息;选项二,删除列车车次,可
删除两个城市间的一条列车车次,选择该项后用户需输入要删除车次
的编号,起始城市,到达城市的信息,若列车车次不存在或编号、城
市输入有误,程序将提示错误。
7.用户咨询界面包括四个选项:选项一:最少费用咨询;选项二:最少时间咨询;选项三:最少中转次数咨询;选项三:返回上级菜单,可返回主界面。选择选项一、二、三都要求用户输入咨询信息,包括起始城市,到达城市和交通工具。输入完毕后城市提示用户是否确认,若不确认则要求用户重新输入咨询信息,若确认则给出用户所需的最优决策信息。
八.附录:测试数据
航班时刻表
机 号
出 发 地
到 达 地
出发时间
到达时间
费 用
6320
北京
上海
上海
北京
16:20
18:00
17:25
19:05
680元
2104
北京
乌鲁木齐
乌鲁木齐
北京
8:00
10:45
9:55
11:40
1150元
201
北京
西安
西安
北京
15:25
12:35
17:00
14:15
930元
2323
西安
广州
广州
西安
7:15
10:15
9:35
11:35
1320元
173
拉萨
昆明
昆明
拉萨
10:20
12:35
11:45
14:00
830元
3304
拉萨
武汉
武汉
拉萨
14:15
16:25
15:45
17:55
890元
82
乌鲁木齐
昆明
昆明
乌鲁木齐
9:30
13:05
12:15
15:50
1480元
4723
武汉
广州
广州
武汉
7:05
11:25
8:45
13 :05
810元
列车时刻表
车 次
出 发 地
到 达 地
出发时间
到达时间
车 费
27
北京
郑州
西安
郑州
郑州
西安
郑州
北京
13:15
21:24
05:41
13:42
21:12
05:13
13:30
21:39
78元
82元
82元
78元
41
北京
郑州
上海
郑州
郑州
上海
郑州
北京
7:11
15:20
00:35
09:40
15:08
00:13
09:28
17:37
90元
100元
100元
90元
59
上海
广州
广州
上海
08:20
03:39
03:16
22:53
182元
134
兰州
北京
北京
兰州
03:52
19:24
18:56
10:28
162元
323
广州
昆明
昆明
广州
06:18
16:31
16:14
02:27
102元
873
武汉
昆明
昆明
武汉
07:13
21:42
21:17
11:46
134元
116
武汉
长沙
长沙
武汉
9:36
18:54
18:32
03:48
98元
373
长沙
广州
广州
长沙
13:15
00:35
00:15
11:35
116元
747
兰州
武汉
武汉
兰州
17:41
15:13
14:47
12:19
210元
371
兰州
乌鲁木齐
乌鲁木齐
兰州
11:42
00:35
23:54
11:23
114元
218
武汉
西安
西安
武汉
18:50
01:34
11:51
18:35
178元
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -