天津地铁线路最短路径计算项目规划
天津地铁线路路径查询项目规划
一、项目介绍
实现一个帮助进行地铁出行路线规划的命令行程序。
二、项目完成预估表
PSP 2.1 | Personal Software Process Stages Time | Time |
---|---|---|
Planning | 计划 | |
· Estimate · | 估计这个任务需要多少时间 | 1day |
Development | 开发 | |
· Analysis | · 需求分析 (包括学习新技术) | 3day |
· Design Spec | · 生成设计文档 | 1day |
· Design Review | · 设计复审 (和同事审核设计文档) | 1day |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 1day |
· Design | · 具体设计 | 1day |
· Coding | · 具体编码 | 2day |
· Code Review | · 代码复审 | 1day |
· Test | · 测试(自我测试,修改代码,提交修改) | 1day |
Reporting | 报告 | |
· Test Report | · 测试报告 | 1day |
· Size Measurement | · 计算工作量 | 1day |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 1day |
All Time | 合计 |
三、项目需求分析
需求1:实现一个支持显示地铁线路与计算换乘的程序
对于地铁路线的数据,将使用subway.txt文件来存储。
对于地铁线路信息图,采用参数 -map
作为标志,例如:
java subway -map subway.txt
需求2:实现地铁线路查询功能
对于地铁线路信息图,采用-a
来指定地铁路线,采用参数 -o
来输出到指定文件station.txt,例如:
java subway -a 1号线 -map subway.txt -o station.txt
需求3:实现最短路径查询
以 -b
参数加两个地铁站点名称分别作为出发与目的,将结果写入 routine.txt,例如:
subway.exe -b 洪湖里 复兴路 -map subway.txt -o routine.txt
四、设计思路
使用语言
java
存储数据格式
- subway.txt文件数据格式:
1号线 站点1 站点2 站点3 ……
2号线 站点1 站点2 站点3 ……
3号线 站点1 站点2 站点3 ……
4号线 站点1 站点2 站点3 ……
5号线 站点1 站点2 站点3 ……
……
- station.txt文件数据格式:
站点1
站点2
站点3
站点4
站点5
……
- routine.txt 文件数据格式:
3
洪湖里
西站
6号线
复兴路
程序功能部分
使用邻接表存储图,顶结点为站点,边结点为各个相邻站点。
利用BFS算法,实现指定起点-终点的最短路径查找。BFS算法利用队列实现按层次遍历图。在层次遍历中,记录路径及最短路径。
五、 程序分析与优化
单元测试
对每个单元进行测试。
根据各个函数功能,测试输入与输出。
主要采用白盒测试方法,包括语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合、路径覆盖等方法,对代码的逻辑路径进行覆盖测试。