地铁出行线路规划
概述
实现一个帮助进行地铁出行路线规划的程序,能够计算地铁线路最短路径。
项目需求
* 合理的地铁信息存储格式。简洁易懂的同时可以灵活拓展,也要方便程序读取。
- 地铁线路信息的获取
- 查询指定地铁线上的所有站点
- 查询出发站与目的站之间的最短路径
设计思路
存储结构
subway.txt 可由以下方式存储地铁站点信息
站点1 线路号1
站点2 线路号2
...
站点3 线路号3
例如:
刘园 1
西横堤 1
...
东海路 9
具体实现时无需对中转站进行额外的存储,只需判断同一站点是否在不同线路中出现即可。
缺陷:存储地铁信息时对于同一线路上的站点必须按出发站→目的站
的顺序进行存储。
算法实现
* 将站点信息存储为无向图
- 相邻站点间的距离可置为
1
- Dijkstra算法求解
- 处理异常情况,保证程序健壮性
计算完毕后保存计算结果,查询时直接调用即可,同时将结果输出至routine.txt中,格式如下:
3
洪湖里
西站
6号线
复兴路
测试样例
以下给出若干简单的测试样例以便测试
样例1
输入
西北角
二纬路
输出
3
西北角
西南角
二纬路
样例2
输入
南楼
西南楼
输出
3
南楼
下瓦房
5号线
西南楼
样例3
输入
金狮桥
成林道
输出
6
金狮桥
天津站
2号线
远洋国际中心
顺驰桥
靖江路
5号线
成林道
项目计划
PSP | Personal Software Process Stages | Time |
---|---|---|
Planning | 计划 | |
Estimate | 估计这个任务需要多少时间 | 1.5h |
Development | 开发 | |
Analysis | 需求分析 (包括学习新技术) | 3.5h |
Design Spec | 生成设计文档 | 2h |
Design Review | 设计复审 (和同事审核设计文档) | 1h |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 1h |
Design | 具体设计 | 3.5h |
Coding | 具体编码 | 6h |
Code Review | 代码复审 | 1h |
Test | 测试(自我测试,修改代码,提交修改) | 6h |
Reporting | 报告 | |
Test Report | 测试报告 | 2h |
Size Measurement | 计算工作量 | 1h |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 1h |
合计 | 29.5h |