github链接:https://github.com/HanHuiMin/subway
1. 使用PSP表格记录下在程序的各个模块上预计花费的时间和实际花费的时间。
PSP 2.1 |
Personal Software Process Stages |
Time |
Planning |
计划 |
|
· Estimate |
· 估计这个任务需要多少时间 |
30h |
Development |
开发 |
|
· Analysis |
· 需求分析 (包括学习新技术) |
1h |
· Design Spec |
· 生成设计文档 |
无 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
30min |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
无 |
· Design |
· 具体设计 |
1h |
· Coding |
· 具体编码 |
5h |
· Code Review |
· 代码复审 |
1h |
· Test |
· 测试(自我测试,修改代码,提交修改) |
3h |
Reporting |
报告 |
|
· Test Report |
· 测试报告 |
2h |
· Size Measurement |
· 计算工作量 |
1h |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
2h |
合计 |
16h30min |
2.性能分析图
对于求换乘数最少的问题,借鉴了求最短路径问题的广搜算法,但是面临一个问题:不能像广搜算法每次向外扩散一个站点,所以考虑每次扩散一条线路,直到找到终点所在的线路。
实现代码过程中,遇到一个问题:需要求出换乘次数最少的线路中距离最近的方案。考虑把从不同的站点扩散得到的站点存进一个数组,即该数组中可能存放着多个终点,但是这些终点是从不同的线路到达的,从这些线路中找到距离最短的那条输出。
3.测试用例
subwayRoute.exe –b 苏庄 俸伯
subwayRoute.exe –b 生命科学园 北京站
subwayRoute.exe –b 安河桥北 天宫院
subwayRoute.exe –b 南邵 国贸
subwayRoute.exe –c 苏庄 俸伯
subwayRoute.exe –c 沙河 育新
subwayRoute.exe –c 中关村 九龙山
subwayRoute.exe –c 天宫院 望京
subwayRoute.exe 一号线
subwayRoute.exe 八通线
4.心得体会
此次项目,是初次学习软件工程,任务量和难度对于刚开始这门课的同学来说还是不小的,学会了从需求开始思考问题,在实现代码之前先分析好问题,想清楚解决的思路和具体方案,对问题有一个整体的认识会使程序出错更少,实现起来更加方便,效率更高。
5.线路图的存储
地铁线路图的存储采用统一的格式,线路:站点1,站点2,……站点n,环线会在线路名后加上“(环线)”,这样采用统一的格式存储地图,便于程序的处理,同时简单明了,阅读容易。