项目信息
课程 | https://edu.cnblogs.com/campus/gdgy/cse2021 |
---|---|
作业要求 | https://edu.cnblogs.com/campus/gdgy/cse2021/homework/12288 |
作业目标 | 完成地铁出行路线规划及其查询 |
GitHub | https://github.com/xiaohie233/subway |
计算模块接口的设计与实现过程
算法实现的思想
文本中,开头第一个为路线名字,用"-"分割每个站点,如果该站点可以转站则用@+"线路名"来完成。
至于算法,是我自己想出来的一种算法,借鉴二叉树的层序遍历算法,因为地铁线路的图不太复杂,于是就用队列和邻接矩阵来完成最短路径的查询而代替了图的广度最优先算法。核心思想就是找到初始点,开始一层一层遍历,找到目标点后就是最短路径,缺点是只能有一种最短路径,如果有相同的最短路径只能记录一个。
计算模块部分单元测试展示
1.查询路线
2.两点间的最短路径
程序运行结果展示
*PSP 2.1* | *Personal Software Process Stages* | *Time* |
---|---|---|
*Planning* | *计划* | 2h |
· Estimate | · 估计这个任务需要多少时间 | 2h |
*Development* | *开发* | 10h |
· Analysis | · 需求分析 (包括学习新技术) | 2h |
· Design Spec | · 生成设计文档 | 30min |
· Design Review | · 设计复审 (和同事审核设计文档) | 15min |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 15min |
· Design | · 具体设计 | 1h |
· Coding | · 具体编码 | 5h |
· Code Review | · 代码复审 | 30min |
· Test | · 测试(自我测试,修改代码,提交修改) | 30min |
*Reporting* | *报告* | 1h |
· Test Report | · 测试报告 | 30min |
· Size Measurement | · 计算工作量 | 10min |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 20min |
合计 | 13h |