2019北航培训个人项目

一、项目思路

本项目实现一个帮助进行地铁出行路线规划的命令行程序,参照平时实际出行时情况,考虑换乘、候车的时间等代价,在求地铁线路最短路径时,也按换乘次数最少来实施的。因能力有限,程序若有不完善的地方,尽情老师谅解。

  1. 地铁线路信息等用一个名为subway.txt文本文件存储,文件内容及格式如下:

Line1:刘园,西横堤,果酒厂,本溪路,勤俭道,洪湖里,西站#6,西北角,西南角#2,二纬路,海光寺,鞍山道,营口道#3,小白楼,下瓦房#5,南楼,土城,陈塘庄,复兴门,华山里,财经大学,双林,李楼
Line2:曹庄,卞兴,芥园西道,咸阳路,长虹公园#6,广开四马路,西南角#1,鼓楼,东南角,建国道,天津站#3#9,远洋国际中心,顺驰桥,靖江路#5,翠阜新村,屿东城,登州路,国山路,空港经济区,滨海国际机场
Line3:小淀,丰产河,华北集团,天士力,宜兴埠,张兴庄#5,铁东路,北站#6,中山路,金狮桥,天津站#2#9,津湾广场,和平路,营口道#1,西康路,吴家窑,天塔,周邓纪念馆,红旗南路#6,王顶堤,华苑,大学城,高新区,学府工业区,杨伍庄,南站
Line5:北辰科技园北,丹河北道,北辰道,职业大学,淮河道,辽河北道,宜兴埠北,张兴庄#3,志成路,思源道,建昌道,金钟河大桥#6,月牙河,幸福公园,靖江路#2,成林道,津塘路,直沽#9,下瓦房#1,西南楼,文化中心#6,天津宾馆#6,肿瘤医院#6,体育中心,凌宾路,昌凌路,中医一附院,李七庄南
Line6:南孙庄,南何庄,大毕庄,金钟街,徐庄子,金钟河大桥#5,民权门,北宁公园,北站#3,新开河,外院附中,天泰路,北运河,北竹林,西站#1,复兴路,人民医院,长虹公园#2,宜宾道,鞍山西道,天拖,一中心医院,红旗南路#3,迎风道,南翠屏,水上公园东路,肿瘤医院#5,天津宾馆#5,文化中心#5,乐园道,尖山路,黑牛城道,梅江道,左江道,梅江公园,梅江会展中心,解放南路,洞庭路,梅林路
Line9:天津站#2#3,大王庄,十一经路,直沽#5,东兴路,中山门,一号桥,二号桥,张贵庄,新立,东丽开发区,小东庄,军粮城,钢管公司,胡家园,塘沽,泰达,市民广场,太湖路,会展中心,东海路

线路名称后用“:”与其后站点间隔,站点与站点间用“,”间隔;
若某站为换乘或中专站点,在其后用“#数字”,表示在此线路的这个站点上可以换乘到数字序号所指的线路上,如1号线的西站可以转到6号线,9号线的天津站可以转到2号线和3号线。
2.运用C++,具体思路有:

mian()接收用户的输入,调用各个函数块,实现最短路径。

Station()函数,实现读取各个线路的站点名称,并将其放入数组中,利用数组可以标记出具有换乘特质的站点。

利用BFS算法,实现指定源点-终点的最短路径查找。 .BFS算法利用队列实现按层次遍历图。 . 在层次遍历中,记录路径及最短路径。

Path()函数,实现路径的生成和选择。
测试:

1、测试读取各个线路TXT文本的正确性

2、测试换乘车站数组是否读取正确

3、测试路径选择函数,第一是否可以输出,第二输出是否为最短路径

  • 体会:
  • 1、多年不进行项目编程,生疏很多,需要写一写代码了
原文地址:https://www.cnblogs.com/zhanggreenwind/p/11225214.html