基本理解
要实现一个可以计算最短路线、查询地铁线站点等信息的规划地铁出行线路的程序。算法
1、需求分析
- 得到地铁线路图的信息。
对于地铁线路信息图,采用参数 -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
设计思路
1、存储设计
地铁信息的存储格式须要方便程序读取,简洁易懂,并能够灵活拓展。spa
- 地铁线路信息图——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站点 ……
2、程序设计
-
经过无向图保存地铁各站点,用最短路径——Dijkstra算法或Floyd算法等实现计算出起始站点与目的站点间的最短路线。命令行
-
能获取地铁线路图,并在输入地铁线后输出相应站点、在输入起始站点与目的站点后按照规范输出相应最短路线。设计
-
作出异常处理,当输入出错时给出提示。代码规范
3、我的计划
好好加油吧!Fighting!code
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 |