预培训-个人项目(地铁出行线路规划)
项目原址: https://edu.cnblogs.com/campus/buaa/2019BUAASummerSETraining/homework/3407
仓库地址
项目概述
实现一个帮助进行地铁出行路线规划的命令行程序。
地铁线路情况如下图所示:
项目需求
- 实现一个能处理正确输入的命令行的计算地铁线路最短路径的程序
- 设计地铁文件用于存储地铁信息
- 实现程序与地铁信息的解耦
命令要求:subway.exe -map subway.txt
或 java:java subway -map subway.txt
- 提供线路信息查询
命令要求:subway.exe -a 1号线 -map subway.txt -o station.txt
或 java:java subway -a 1号线 -map subway.txt -o station.txt
- 提供站点间最短路线(经过的站点数最少)查询
命令要求:subway.exe -b 洪湖里 复兴路 -map subway.txt -o routine.txt
或 java:java subway -b 洪湖里 复兴路 -map subway.txt -o routine.txt
设计思路
文件格式
[
{
'Line' : '一号线',
'Station' : ['刘园', '洪湖里', ....., '李楼']
},
{
'Line' : '二号线',
'Station' : ['曹庄', '咸阳路', ....., '机场']
}
]
算法
可以把地铁规划问题对应为无向图,其中各站点为无向图中的点(vertex)。由需求条件知边权为1,则采用广度优先寻找起点站到终点站的最短路径,输出时每次判断下一站是否需要换乘。
异常情况
- 文件解析异常
- 站点(Station)不存在
- 线路(Line)不存在
- 没必要的换乘
语言
Java
更新
时间记录
熟悉爬虫抓取北京地铁信息,并转为json格式文本 1h
ver1.0 subway代码 3h
检查 10min