地铁出行路线规划设计
地铁出行路线规划设计
1.任务
实现一个帮助进行地铁出行路线规划的命令行程序。该程序具有线路查询、最短线路查询等功能。
2.具体实现
1.语言:Java
2.数据结构:图
3.算法:Dijkstra最短路径算法
4.前端界面:Swing
5.数据格式:
//subway.txt
1 站点1 站点2 站点3 ...
2 站点1 站点2 站点3 ...
3.站点1 站点2 站点3 ...
6.具体思路
- 创建地铁站点类、地铁线路类,将数据从txt文件中读入程序中
- 将各个站点抽象为无向图的一个节点,线路之间用路径表示
- 输出线路时只需输出地铁线路类的某个实例
- 利用Dijkstra算法进行最短路径查找
3.需求分析
1.利用 -map
参数来获得对应的自定义地铁文件(命名为 subway.txt)
java subway -map subway.txt
2.支持一个新的命令行参数 -a
进行地铁线路查询,并通过命令参数-o
进行输出
java subway -a 1号线 -map subway.txt -o station.txt
3.利用参数-b
查询两个站点之间最短(经过的站点数最少)路线,并输出
subway.exe -b 洪湖里 复兴路 -map subway.txt -o routine.txt
4.项目计划表
PSP 2.1 | Personal Software Process Stages | Time |
---|---|---|
Planning | 计划 | 2h |
· Estimate | · 估计这个任务需要多少时间 | 2h |
Development | 开发 | 24h |
· Analysis | · 需求分析 (包括学习新技术) | 5h |
· Design Spec | · 生成设计文档 | 4h |
· Design Review | · 设计复审 (和同事审核设计文档) | 2h |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 1h |
· Design | · 具体设计 | 4h |
· Coding | · 具体编码 | 8h |
· Code Review | · 代码复审 | 1h |
· Test | · 测试(自我测试,修改代码,提交修改) | 1h |
Reporting | 报告 | 6h |
· Test Report | · 测试报告 | 3h |
· Size Measurement | · 计算工作量 | 1h |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 2h |
合计 | 32h |
5.总结
该项目主要是利用已学的java和数据结构知识来对实际问题进行抽象和解决。该项目主要的难点在于Java对本地文件的读取和数据的识别、最短路径算法的使用以及图这一数据结构的使用。