库地址:https://github.com/Nicolagl/031602617
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 30 |
· Estimate | · 估计这个任务需要多少时间 | 20 | 20 |
Development | 开发 | 1000 | 1200 |
· Analysis | · 需求分析 (包括学习新技术) | 120 | 120 |
· Design Spec | · 生成 设计文档 | 0 | 0 |
· Design Review | · 设计复审 | 0 | 0 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 30 | 20 |
· Design | · 具体设计 | 40 | 50 |
· Coding | · 具体编码 | 400 | 4 50 |
· Code Review | · 代码复审 | 20 | 20 |
· Test | · 测试(自我测试,修改代码,提交修改) | 20 | 30 |
Reporting | 报告 | 20 | - |
· Test Repor | · 测试报告 | - | - |
· Size Measurement | · 计算工作量 | - | - |
· Postmortem & Process Improvement P lan | · 事后总结, 并提出过程改进计划 | 30 | 40 |
合计 | 1710 | 1980 |
解题思路
看到题目的第一眼,感觉就是字符串的处理,有点像之前做过的回文串类似的题目,但具体的算法和过程已经记不太清了。于是搜了一下关于字符,词组,单词的处理,发现了哈希表和散列表。
参考了以下几个博客的文章:
https://blog.csdn.net/matrix_designer/article/details/6462284
https://blog.csdn.net/misskissc/article/details/17505167
https://blog.csdn.net/alburthoffman/article/details/19641123
https://www.cnblogs.com/ustcccj/archive/2018/03/30/8678755.html
总结题目的算法部分,大致基本是字符的识别,单词的识别,以及频率的计算。
字符识别
单词
前十
自己的测试
关于性能分析,由于之前未学习过来自文件的文本输入输出,于是基本完全参照了https://github.com/eudaem/homework1/blob/master/PB16061441/hw1(终版).cpp的代码,但没有找到分析性能时加入数据的方法,问了同学并尝试后也并无建树,因此这一部分不是十分理想。
总结
本次项目的前期准备工作对我来说是有史以来最长的了,因为Git和Github对我来说基本是全新的内容,从来没有使用过。首先学习了赵畅同学分享给我的教程:http://www.cnblogs.com/schaepher/p/5561193.html?tdsourcetag=s_pcqq_aiomsg#others。
然而,为了实现老师“Visual Studio Community 2017“进行开发,运行环境为64-bit Windows 10”的环境,我直接重装的了系统,但为了省事用了ghost,结果在安装完git之后,git bash各种闪退,各种调试均无成效,想起来也只可能是系统出了问题。只好再装一次系统,终于git不闪退了,但这也花去了不少的宝贵时间。
由于初次认识Git,基本语句实践起来也是问题多多,关于本地库和网络的关联也着实研究了一个晚上,参考了各种资料和网站的问题分析,对GitHub也算是有了新的认识。
但在代码方面,借鉴和引用的地方就偏多了些,一个是第一次面对有接口和封装的题目,并且c++也有所退步。我一定会在近期加紧补习c与算法的知识,在之后的作业里靠自己的力量取得胜利。