福大软工1816 · 第二次作业 - 个人项目
PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 40 |
· Estimate | · 估计这个任务需要多少时间 | 30 | 40 |
Development | 开发 | 700 | 430(未完) |
· Analysis | · 需求分析 (包括学习新技术) | 60 | 60(未完) |
· Design Spec | · 生成设计文档 | 30 | 30 |
· Design Review | · 设计复审 | 10 | 20 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 10 | 5 |
· Design | · 具体设计 | 30 | 30 |
· Coding | · 具体编码 | 500 | 240(未完) |
· Code Review | · 代码复审 | 60 | 30(未完) |
· Test | · 测试(自我测试,修改代码,提交修改) | 20 | 15(未完) |
Reporting | 报告 | 80 | 50(未完) |
· Test Repor | · 测试报告 | 60 | 40(未完) |
· Size Measurement | · 计算工作量 | 10 | 10 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 10 | 0(未完) |
| | 合计 |810 |520
解题思路
看到题目第一反应就是字好多不想看。。当然这是不行的,最后还是好好看了一遍。稍微思考了一下感觉统计字符和行数不难,其他都有一定难度。统计字符和行数在花了一段时间学习了有关fstream库的相关知识后还算容易就搞定了,单词统计也在思考了10几分钟就想出大概方法解决(比起很多人应该算思考时间很长了,所以说比别人差太多了),后来在实际操作过程中又发现了不少一开始没考虑周全的问题,不过最后也都搞定了,最后也花了蛮长时间的,出错出挺多的。。统计词频、排序等等,首先要考虑的是如何把词给抽出来,我打算在单词统计的基础上修改,大概想出了如何得到完整的词,但是如何把词给传出函数还没有具体想法,在考虑直接创立链表节点的可行性,但是这样感觉就没办法进行后续的接口封装了,纠结。。比较词频和字典序排序,初步预计用链表实现,在插入新节点时先遍历,然后按照字典序插入应插入的地方。所有词都插入完毕后再用选择排序的方法排出前十个,按照这种方法应该不会改变最终结果的字典序顺序,就是算法复杂度感觉会挺高的。时间受限还未实现。另外把输出传到输出文件的方法也还没有研究怎么实施,接口封装感觉还有很大问题,总而言之离完成还差得远。
关键代码说明
性能分析
后记
一开始没什么感觉,后来发现要学的新东西有很多。由于个人基础差的关系,很多东西都是我之前没有了解过的或者只是稍微了解已经忘记的。文件的读写、git的使用、visual studio的使用、链表的应用等等,有的像是算法方面的我了解的都不是很多,当初学习不用功尝到了后果,出来混的总是要还的。花了很多时间查资料,还有很多算法方面的还没有去了解,可惜时间已经来不及了。最近一直很忙,老实说我进大学以来很少像最近这么忙的(当然也和我以前不用功有很大的关系),剩下的时间完全不够我去弥补之前的漏洞、学习新东西和研究任务。加上身体状况不是很好,尽量不想熬夜,所以留给软工实践的时间并没有很多。不过尽管如此,也还是花了相当长的时间,至少三天来花费的时间已经接近我当初写第一篇博客时预计一周花费在软工上的时间了,然而还是不够,感觉还要一倍的时间我才能大概搞定。。。这次作业死线之前是搞不定了,不过接下来还会继续努力,做得好不好先不考虑,尽量至少把它做完。