基本理解
要实现一个能够计算最短路线、查询地铁线站点等信息的规划地铁出行线路的程序。
一、需求分析
- 获得地铁线路图的信息。
对于地铁线路信息图,采用参数 -map 作为标志。程序启动时需要通过读取 -map 参数来获得对应的自定义地铁文件(命名为 subway.txt)。一个调用应用程序的示例如下:
subway.exe -map subway.txt
- 能够查询指定地铁线经过的站点。
在给定地铁线路时,从线路的起始站点开始, 依次输出该地铁线经过的所有站点,直到终点站。在应用程序需要支持一个新的命令行参数 -a 指定用户希望查询的地铁线路。输出的文件使用 -o 命令行参数来指定。一个调用应用程序的示例如下:
subway.exe -a 1号线 -map subway.txt -o station.txt
- 能够查询起始站点与目的地间的最短路线,并输出经过的站点的个数和路径(包括起始站点与目的站点),如果需要换乘,则在换乘站的下一行输出换乘的线路。
在命令行中以 -b 参数加两个地铁站点名称分别作为出发与目的,比如用户希望知道 洪湖里 到复兴路 之间的最短路线是怎样的,他就可以使用如下命令让程序将结果写入 routine.txt 中。
subway.exe -b 洪湖里 复兴路 -map subway.txt -o routine.txt
设计思路
一、存储设计
地铁信息的存储格式需要方便程序读取,简洁易懂,并可以灵活拓展。
- 地铁线路信息图——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站点……
- 起始站点与目的地间的最短路线——routine.txt
1
1站点
2站点
3站点
……
2号线(换乘)
1站点
2站点
3站点
……
二、程序设计
-
通过无向图保存地铁各站点,用最短路径——Dijkstra算法或Floyd算法等实现计算出起始站点与目的站点间的最短路线。
-
能获取地铁线路图,并在输入地铁线后输出相应站点、在输入起始站点与目的站点后按照规范输出相应最短路线。
-
做出异常处理,当输入出错时给出提示。
三、个人计划
好好加油吧!Fighting!
PSP 2.1 | Personal Software Process Stages | Time |
---|---|---|
Planning | 计划 | |
· Estimate | · 估计这个任务需要多少时间 | 1h |
Development | 开发 | |
· Analysis | · 需求分析 (包括学习新技术) | 1h |
· Design Spec | · 生成设计文档 | 1h |
· Design Review | · 设计复审 (和同事审核设计文档) | 1h |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 1h |
· Design | · 具体设计 | 1h |
· Coding | · 具体编码 | 12h |
· Code Review | · 代码复审 | 3h |
· Test | · 测试(自我测试,修改代码,提交修改) | 6h |
Reporting | 报告 | |
· Test Report | · 测试报告 | 2h |
· Size Measurement | · 计算工作量 | 1h |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 1h |
· 合计 | 31h |