不出bug不出bug12-03 06:55

软件工程-个人项目-地铁出行路线规划的命令行程序设计

天津地铁

任务

实现一个能处理正确输入的命令行的计算地铁线路最短路径的程序

作业要求

题目分析

语言选择

由于实现的是命令行程序,所以采用相对比较熟悉的c++

数据结构

  • 边数远远少于完全图,所以应该是稀疏图,所以选择邻接表存储来边的信息
  • 不同站点属于一个或多个线路,所以需要一个表存储站点的信息及其所在路线(当一个站点隶属于多个线路时就可换乘)
  • 需要输出最短的路线,所以需要一个表存储路线信息

需要的算法

Dijkstra算法实现最短路

输入输出

  • 按照示例要求需处理以下3类命令行输入

    subway.exe -map subway.txt

    subway.exe -a 1号线 -map subway.txt -o station.txt

    subway.exe -b 洪湖里 复兴路 -map subway.txt -o routine.txt

  • 按照要求输入的最短路文件示例如下:
3
洪湖里
西站
6号线
复兴路
  • 为了方便,自定义的地铁文件格式暂定为:
1号线 刘园 西横提 ...
2号线 曹庄 卞兴 ...
...

注:题目已固定每条线路的起点如下:

地铁线路名称 起始站点
1号线 刘园
2号线 曹庄
3号线 小淀
5号线 北辰科技园北
6号线 南孙庄
9号线 天津站

测试

测试包括三部分:正确性测试(正确场景)、鲁棒性测试(错误场景),提交的所有程序都要进行正确性测试和鲁棒性测试。

正确性测试

  • 无需换乘的最短路测试
  • 需要换乘的最短路测试
  • 同时有多条最短路的测试
  • 肿瘤医院到文化中心这段两条线路重合的部分,需要特别注意

鲁棒性测试

  • 命令行输入错误
    • 无效的参数
    • 无效的文件
    • 无效站点
    • 无效的路线
  • 输入站点信息的文件格式错误
  • 输出文件routine.txt已存在

项目psp计划

PSP 2.1 Personal Software Process Stages Time
Planning 计划
· Estimate · 估计这个任务需要多少时间 2h
Development 开发
· Analysis · 需求分析 (包括学习新技术) 3h
· Design Spec · 生成设计文档 2h
· Design Review · 设计复审 (和同事审核设计文档) 1h
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 1h
· Design · 具体设计 3h
· Coding · 具体编码 5h
· Code Review · 代码复审 1h
· Test · 测试(自我测试,修改代码,提交修改) 5h
Reporting 报告
· Test Report · 测试报告 2h
· Size Measurement · 计算工作量 1h
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 1h
合计 27h

程序之家二维码

小额赞赏

000
评论

为您推荐