简易地铁规划项目
简易地铁规划项目
一.项目信息
| 课程 | https://edu.cnblogs.com/campus/gdgy/cse2021 |
| --------|------------------------------- ---------------------------- |
| 作业要求| https://edu.cnblogs.com/campus/gdgy/cse2021/homework/12288 |
| 作业目标| <熟悉并掌握个人项目开发流程> |
|github|https://github.com/CS-200225/subway|
二.个人开发时间估算
| PSP2.1 | 预计耗时 | 实际耗时 |
|---|---|---|
| Planning | 20 | 30 |
| Estimate | 20 | 90 |
| Development | 200 | 500 |
| Analysis | 15 | 60 |
| Design Spec | 30 | 30 |
| Design Review | 10 | 10 |
| Design | 40 | 40 |
| Coding | 40 | 200 |
| Code Review | 30 | 30 |
| Test | 15 | 10 |
| Reporting | 60 | 40 |
| Test Repor | 20 | 40 |
| Size Measurement | 10 | 10 |
| Postmortem & Process Improvement Plan | 10 | 20 |
| Summary | 505 | 1100 |
三.算法、模块接口设计与实现
1.算法
最短路径基于Dijkstra算法,首先找到距离V0最近的顶点V1,再寻找Vn(n=2,3,...,N)时判断Vn-2Vn-1与Vn-1Vn-2的路线是否相同。
如果路线相同从V0到Vn的时间t=min+G.arcs[k][w].weight;如果路线不同,需增加换乘时间5分钟t=min+G.arcs[k][w].weight+5。
比较t与(*d)[i][w]确定下一个最近顶点Vn。重复以上步骤,直至找到V0到所有顶点的最近距离。
代码:


2.系统模块功能的设计:
北京地铁换乘路线查询系统主要包括
⑴调用文件初始化地铁线路与图中的顶点函数
⑵初始化图的函数
⑶查看地铁线路详细信息函数
⑷在图中定位起始站与终点站的位置函数
⑸在地铁线路中判定每次经过的站始发为换乘站的函数
⑹花费最少时间查找最短路径的核心函数
⑺输出最短路径函数
⑻在途中需要的换乘信息函数
⑼主要功能实现函数
⑽操作选择函数
⑾主界面函数与查询界面函数。
3.部分函数如下


四.单元测试、程序运行
五.本次项目耗费大量时间和精力完成,在做项目的过程中也收获了很多很多,完成之后很有成就感,期待每一次进步

浙公网安备 33010602011771号