Github项目地址:https://github.com/cool-girltoday/WordCount.git
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
Planning | 计划 | 15 | 10 |
· Estimate | · 估计这个任务需要多少时间 | 1400 | 1200 |
Development | 开发 | 720 | 600 |
· Analysis | · 需求分析 (包括学习新技术) | 240 | 200 |
|
| ||
· Design Review | · 设计复审 (和同事审核设计文档) | 40 | 60 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 20 | 10 |
· Design | · 具体设计 | 90 | 60 |
· Coding | · 具体编码 | 480 | 500 |
· Code Review | · 代码复审 | 240 | 60 |
· Test | · 测试(自我测试,修改代码,提交修改) | 180 | 120 |
Reporting | 报告 | 40 | 10 |
· Test Report | · 测试报告 | 30 | 10 |
· Size Measurement | · 计算工作量 |
|
|
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 30 | 10 |
| 合计 | 1400 | 1000 |
照片:
思路:
拿到这个项目,大致的思路就是,把文件中的字符都读到一个String字符串中,再对字符串进行操作
1、统计Ascii码:计算string的字符串的长度2、统计行数:对文件每行每行的读取,有读取出数据则 行数line++ ,最后返回line3、统计单词数:把String函数用split函数对字符串进行划分,存入到一个String数组中,再计算数组的长度4、统计单词频度:用键值对(key-value)映射,单词作为key,单词数量作为value。预想的方案(简化版)
代码规范:
1、 类型(类、结构、委托、接口)、字段、属性、方法、事件的命名
我们都尽量使用英文,如果实在有的地方不能我们就用中文替代,并做了注解2、不使用缩写 所有类型、字段、属性、方法、事件尽量不使用缩写。3、不使用单个字母的变量 不使用单个字母的变量, 像 i、m、n,使用index等来替换,用于循环迭代的变量除外。4、缩进字符约定为45、 注释
类型、属性、事件、方法、方法参数,根据需要添加注释。
如果类型、属性、事件、方法、方法参数的名称已经是自解释了,不需要加注释;
否则需要添加注释。6、类型名称和源文件名称一致
设计实现过程
项目类的设计
- WordDeal类,用来统计相关信息的方法。
- ReadFile :用来读取文件中的数据并存到String数组中。
- Main类,调用上面两个类的方法,实现具体功能。
代码分析:
1、
读取文件数据函数
2、文件字符数函数
3、行数计算
4、统计单词字数
5、统计频数
单元测试:
复审发现的问题:
起初将问题想得太简单,结果做完初步的基本功能后,要实现之后的功能变得困难,只好重新做。
程序中消耗最大的函数:
统计单词频数的函数,用了过多的循环导致效率低下。
感受:这次结对编程所完成的任务效率远大于一个人完成任务的效率,可以看出与同伴之间的差距,学习到更多,来提升自己。这次的作业又对c#更进一步了解,学习到了正则表达式如何使用。是很棒的学习旅程!