导航

地铁出行线路规划

Posted on 2019-09-20 19:24  31701062马钰萍  阅读(328)  评论(0编辑  收藏  举报

一、项目:
实现一个帮助进行地铁出行路线规划的命令行程序。

二、需求
(1)、显示地铁线路图的信息

(2)、查询地铁线路信息

(3)、查询两个地铁站之间的最短路径

 

 

三、设计

(1)、使用的编程语言java
在考虑使用 c语言还是 java之间之间纠结了很久,对于 c语言总有一种先入为主的偏好。后来考虑到实现一个项目,对于本人来说,使用 java语言更加具体结构性、框架性,更加清晰便捷,故选择java语言来编写项目;

 

(2)、地铁线路存储格式

使用txt格式的文件保存线路信息

1号线:刘园,西横堤,果酒厂,本溪路,勤俭道,洪湖里,西站 , 西北角,西南角,二纬路,海光寺……
2号线:曹庄,卞兴,芥园西道,咸阳路,长虹公园,广开四马路,西南角,鼓楼,东南角,建国道,天津站……
3号线:小淀,丰产河,华北集团,天士力,宜兴埠,张兴庄,铁东路,北站,中山路,金狮桥,天津站……
5号线:北辰科技园北,丹河北道,北辰道,职业大学,淮河道,辽河北道,宜兴埠北,张兴庄,志成路……

 

(3)、使用的算法
在这个项目中,很重要的一个功能是查询两个站点之间的最短路径,考虑使用Dijkstra算法。
求解最短路径的算法,具体学习过Dijkstra算法和Floyd算法,本次项目中两种算法都适用,因此主要在其中进行选择。就熟悉度而言,本人最终决定使用Dijkstra算法。

 

(4)、主要的数据结构

主要包括站点、地铁线路、地铁线路图、路径。

 

四、测试

(1)、正确场景的测试

java subway -map subway.txt    //得到地铁线路图信息
java subway -a 1号线 -map subway.txt -o station.txt    //查询地铁线路信息
subway.exe -b 洪湖里 复兴路 -map subway.txt -o routine.txt   //查询两个站点之间的最短路径

根据输出的结果进行验证;

 

(2)、异常场景的测试

主要包括地铁站不存在、地铁线路不存在、两个站点之间不可达、命令行输入的格式出错、文本文件的格式与预期不符等情况;