第一次作业——subway

Posted 崔正龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一次作业——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)性能分析图

  技术分享

 

 

7)测试用例

 -c 苹果园 2号航站楼

-b 苹果园 2号航站楼

-c 2号航站楼 苹果园

-b 2号航站楼 苹果园

-b 知春路 北京西站

-c 知春路 北京西站

-b 四惠 高碑店

-b 四惠 四惠东

地铁一号线

地铁八通线

 

以上是关于第一次作业——subway的主要内容,如果未能解决你的问题,请参考以下文章

Subway (树中心 + 树hash)

PAT甲级1131 Subway Map (30分)(DFS)

PAT甲级1131 Subway Map (30分)(DFS)

第一次寒假作业 汇总

第一次个人编程作业

团队作业四-团队项目汇总