第一次作业——subway
作业源程序代码:https://github.com/nrm1/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 |
· 具体编码 |
7h |
· Code Review |
· 代码复审 |
0h |
· Test |
· 测试(自我测试,修改代码,提交修改) |
9h |
Reporting |
报告 |
|
· Test Report |
· 测试报告 |
1h |
· Size Measurement |
· 计算工作量 |
0h |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
1h |
合计 |
21h |
2)改进程序
我花费了两个小时完成了程序的改进优化,在原先的搜索算法中,我只保证了搜索站数递增,却没有保障搜索已经过的站点就不会再次被搜索,导致搜索树上有很多冗余的分枝,后来通过增加一个判断站点是否已经增加过的方法对搜索时进行了剪枝,极大的提高了算法运行速度。
3)文件存储格式及理由
我采用的文件存储格式是L 路线名 地铁站名。L是为了区分路线名和地铁站名,L后紧跟的字符串为路线名。
4)程序正确性论证
本程序地图信息由文件读入后,又经过程序内部对线路的调整,和指定地图路线完全匹配,程序采用宽度优先搜索的方式,经多次实验验证,对各条路线均能产生正确的路线。符合作业要求。
5)学习与体悟
通过本次个人项目的编写,我个人的编写程序的能力有了很大的提高,但是,我同时也意识到了自己的能力的不足,希望通过今后课程的学习,能够有所突破,更近一步。不辜负老师,学长的期望。
6)性能分析图
7)测试用例
Subway -b 知春路 北京站
Subway -c 知春路 北京站
Subway -b 知春路 北京西站
Subway -c 知春路 北京西站
Subway -b 东直门 2号航站楼
Subway -b 2号航站楼 3号航站楼
Subway -b 北京站 沙河
Subway -c 北京站 沙河
Subway -b 前门 中关村
Subway -c 前门 中关村
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战