第一次作业——subway

作业源程序代码:https://github.com/R-81/subway

作业程序使用说明:通过输入命令参数求解路线(仅支持-b,-c),根据参数得出路线后,程序不会结束,此时可输入地铁路线名(例如地铁一号线)输出此路线上所有车站名。

1)各模块开发需要消耗的时间

 

Personal Software Process Stages

Time

Planning

计划

· Estimate

· 估计这个任务需要多少时间

15h

Development

开发

· Analysis

· 需求分析 (包括学习新技术)

1h

· Design Spec

· 生成设计文档

0h

· Design Review

· 设计复审 (和同事审核设计文档)

0h

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

0h

· Design

· 具体设计

2h

· Coding

· 具体编码

8h

· Code Review

· 代码复审

0h

· Test

· 测试(自我测试,修改代码,提交修改)

8h

Reporting

报告

· Test Report

· 测试报告

1h

· Size Measurement

· 计算工作量

0h

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

1h

 

合计

21h

2)改进程序

  对于-c的路径索索进行了一次改进,具体表现为将搜索过的线路进行标记,在下一次搜索的时候省去搜索这些被标记的线路,能够减少大量的多余搜索,但是在多个线路上的换乘车站依旧能够得到有效搜索。

3)文件存储格式及理由

  我采用的文件存储格式是Line 路线名 地铁站名。Line是为了区分路线名和地铁站名,Line后紧跟的字符串为路线名。对于环线路线,需要在该线路站名最后加上重复的起点,达到连接成环的效果。

4)程序正确性论证

  程序从文件读取线路信息和站点信息,通过处理后存入合适的数据结构中,通过参数的不同,选择以广度优先搜索为主要算法,不同的搜索方式进行路径搜索。经过多次测试和改正后,能达到作业要求效果。

5)学习与体悟

  感觉这次由于自己在书写代码前没能做好充分的思考,导致在测试阶段重复修改了很多次,浪费了不少时间,下次应该在设计阶段考虑得更周密一点,这样反而会节省出来时间。

6)性能分析图

  第一次作业——subway

7)测试用例

-c 苹果园 2号航站楼

-b 苹果园 2号航站楼

-c 2号航站楼 苹果园

-b 2号航站楼 苹果园

-b 知春路 北京西站

-c 知春路 北京西站

-b 四惠 高碑店

-b 四惠 四惠东

地铁一号线

地铁八通线

上一篇:zabbix 4.0 安装配置(二)


下一篇:CSP2019 树上的数 题解