第三次作业
作业地址:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2879
GitHub地址:https://github.com/GJW459/WordCount.git
1.结对编程讨论照片:代码:郭经伟。单元测试:李家豪
2.PSP表格:
PSP2.1 | Personal Software Process Stages | 估计耗时(分钟) | 实际耗时 |
Planning | 计划 | 10 | 30 |
Estimate | 估计这个任务需要多少时间 | 30 | 20 |
Development | 开发 | 1000 | 1400 |
Analysis | 需求分析 | 60 | 180 |
Design Spec | 生成设计文档 | 30 | 20 |
Design Review | 设计复审 | 5 | 5 |
Coding Standard | 代码规范 | 30 | 30 |
Design | 具体设计 | 50 | 90 |
Coding | 具体编码 | 500 | 700 |
Code Review | 代码复审 | 30 | 30 |
Test | 测试 | 500 | 700 |
Reporting | 报告 | 380 | 540 |
Test Report | 测试报告 | 120 | 100 |
Size Measurement | 计算工作量 | 30 | 40 |
Postmortem&Process Improvement Plan | 事后总结,并提出过程改进计划 | 60 | 60 |
总结 | 1580 | 2050 |
3.解题思路:首先关于文件这方面的以前接触不多,以前没怎么使用过,很陌生,所以百度了很多,这次代码我主要用的streamreader和streamwriter做的,学到了streamreader和streamwriter中关于文件的读和写。然后学到了Regex类中的正则表达式和Split函数。然后用到了以前没怎么用过的集合list和哈希表和dictionary泛型和其中的排序。
4.设计过程
counthang:这个方法计算行数。count1:统计字符。count2:统计字符:count3:统计词频,并且里面包含扩展功能。count4:按字典顺序排序。
5.代码板块:此处用了streamreader和streamwriter和regex类和正值表达式和dictionary泛型和哈希表以及集合的排序
第一次提交的基础功能:
下面是拓展功能
第二次提交拓展功能
6.代码复审:
一开始我无法解决单词频数的问题,后面靠百度其他人的心得,用dictionary解决了问题。
7.性能测试:
从这里看main方法和count3方法占用cpu较多。
8.单元检测:
9.异常处理:
输入的时候文件名不对,产生异常。
10.心得体会:
1.一开始的项目的需求分析做得不够好,走了很多弯路。下次得仔细审题。
2.这次代码还是用了我很多时间,但是最后还是做出来了,还是有些满足感,从中也学习到了以前没用过的知识,比如文件的读写,正值表达式,泛型集合的使用。
3.代码的规范还是有点问题,没有eclipse好用,没有快捷键规范代码。
4.我做这个项目的时间较长,所以编码的能力还得提高,还是数据结构的老问题,卡在哈希表和其排序很长时间。还得继续努力。
5.也学习了利用visio画设计图。