陈三三的第三次博客作业
一、地址
1.作业地址:https://www.cnblogs.com/c-s-s/p/10651639.html
2.Git地址:https://github.com/AngelSum233/WordCount.git
3.同伴作业地址:https://github.com/AngelSum233/WordCount.git
二、结对过程
在一个寝室,结对编程比较方便。所以很快就组好队了。计划代码一人一半,由夏欣同学进行汇总,然后我做单元测试,夏欣同学进行性能分析。
三、PSP表格
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
20 | 15 |
· Estimate |
· 估计这个任务需要多少时间 |
240 | 240 |
Development |
开发 |
200 | 200 |
· Analysis |
· 需求分析 (包括学习新技术) |
60 | 60 |
· Design Spec |
· 生成设计文档 |
15 | 10 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
10 | 10 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 | 10 |
· Design |
· 具体设计 |
15 | 15 |
· Coding |
· 具体编码 |
60 | 60 |
· Code Review |
· 代码复审 |
15 | 15 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
15 | 30 |
Reporting |
报告 |
40 | 40 |
· Test Report |
· 测试报告 |
20 | 20 |
· Size Measurement |
· 计算工作量 |
10 | 10 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
10 | 10 |
合计 |
260 | 265 |
四、解题思路描述
先读取文件放在一个字符串里。其实这四个点最开始完成的是字符数和行数,都是用同一种思路完成的,注意换行符是两个字符,用正则表达式时应注意一下字符数以及行数之间的关系。后边比较难的是统计单词数和单词出现的频率最高的前十个单词。想到后边还要统计频率,所以这里也用了dictionary,在网上查询了其相关用法,这里我先是将满足条件的单词整理出来放在字典里,在加条件的同时就已经得到了单词数。然后遍历字典,按照题目所给的要求进行排序。
五、设计实现过程
先分析我们所需要的函数,然后就做成了一下的结构图。
六、代码规范
这个是由我们俩分工合作得来的,为了汇总方便,我们按照书上P64的要求规范自己的代码。
在编写代码时,为了对方能看懂,我们会写时一起规定类的命名以及某些变量的命名。
出现的问题:即使我们在写的时候都在讨论,后边审查代码时,还是可读性比较差,对方不解释有的东西比较难懂,后边通过关键地方注释还是能简单明白。
七、性能分析表
做完以上工作后,我们就开启了性能分析,会等待较长的时间。可以看到在性能分析中被调用得最多的函数是main函数,其次就是计数函数。性能分析倒是没有遇到太大的问题,很快就完成了。
八、代码说明
以下就是我们的主函数部分展示图。
这是运行结果。
然后,代码完成后,我们就把代码传输到git上了。下面是上传的截图。
九、个人感受
1.对于这种项目,确实是没有太多的经验,然后我们就在百度上找了很多资料,也询问了一些大佬,最后完成了代码部分。
2.通过这次学习,我们的确收获了很多,也在锻炼中知道了自己的不足,我们会认真的对待每一次作业的。
3.这次的作业,我们也明白了1+1>2的道理,比如说一个巴掌拍不响,另一个巴掌也拍不响,但是一个巴掌和另一个巴掌就能发出掌声(doge)。
4.好好学习,天天向上。