第三次作业
github项目地址:https://github.com/AngelSum233/WordCount.git
作业地址:https://www.cnblogs.com/angelsum/p/10658390.html
合作:因为是室友直接结对成功,计划代码一人一半,然后我汇总,后边一个人做测试,一个人进行性能分析。
讨论过程(非摆拍)
一、实现基本功能
1. 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 |
2.解题思路
先读取文件放在一个字符串里。其实这四个点最开始完成的是字符数和行数,都是用同一种思路完成的,注意换行符是两个字符,用正则表达式时应注意一下字符数以及行数之间的关系。后边比较难的是统计单词数和单词出现的频率最高的前十个单词。想到后边还要统计频率,所以这里也用了dictionary,在网上查询了其相关用法,这里我先是将满足条件的单词整理出来放在字典里,在加条件的同时就已经得到了单词数。然后遍历字典,按照题目所给的要求进行排序。
3.设计实现过程
设计大致如下图,编写几个类在里面装方法,然后在主函数里面进行调用
下面是我们主函数代码:
4.代码规范
这个是由我们俩分工合作得来的,为了汇总方便,我们按照书上P64的要求规范自己的代码。
在编写代码时,为了对方能看懂,我们会写时一起规定类的命名以及某些变量的命名。
出现的问题:即使我们在写的时候都在讨论,后边审查代码时,还是可读性比较差,对方不解释有的东西比较难懂,后边通过关键地方注释还是能简单明白。
5.上传代码
有了上次失败的经验,这一次贼快就传上去了,需要注意的是,一定要记住自己的密码
二、性能分析
完成以上工作后开始进行性能分析,等待的时间还是挺长的,然后观察了一下,发现main函数被调用的次数最多,其次就是统计符号类的调用。
三、总结
两个人分工合作确实要容易的多,遇到不懂的时候也没有那么慌张。在写代码时遇到了很多新东西,一个巴掌的能力是有限的,但是加上同伴的就能够打响(害羞.jpg)
其实做这个非常吃力,在写代码的时候就遇到了很多问题,设计如何循环,如何把单词清理好,还有用字典来统计频率。真的尽力了,我感觉自己太差了,还是要多多去接待一些新的东西.......