第三次作业——结对编程

一、地址

 GITH地址:https://github.com/haveadate/WordCount.git

结对伙伴的作业地址:https://www.cnblogs.com/haveadate/p/10652689.html

二、结对过程

 在结对之后,选定了两方都有空的时间出来讨论,现制定了PSP表,然后根据各自水平,分配任务。各自的任务完成过后,先自审,再交由对方复审,然后汇总,封装成dll文件,进行单元测试和效能分析,并且改进代码,最后撰写博客。

   

三、PSP表

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

 880

 1395

· Estimate

· 估计这个任务需要多少时间

 880

 1395

Development

开发

 760

 1270

· Analysis

· 需求分析 (包括学习新技术)

 40

 50

· Design Spec

· 生成设计文档

 30

 35

· Design Review

· 设计复审 (和同事审核设计文档)

 50

 60

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

 20

 15

· Design

· 具体设计

 30

 50

· Coding

· 具体编码

 400

900

· Code Review

· 代码复审

 60

 40

· Test

· 测试(自我测试,修改代码,提交修改)

 100

 120

Reporting

报告

 120

 125

· Test Report

· 测试报告

 60

 60

· Size Measurement

· 计算工作量

 30

 40

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

 30

 25

合计

 880

 1395

四、思路

 看到这个题目时,觉得很难,但是在和结对伙伴讨论之后,发现还是可以解决。首先就是读取文件,然后把它存进一个字符串里面,就可以进行统计字符个数,然后用字符串的Split方法分割成字符串数组,通过循环对每个字符串数组中的元素进行判断,针对这个判断我们又重新制定了一个方法,用于专门判断它是否是一个单词,其思路为再将字符串转化为字符数组,如果它符合条件,就count进去。还查找了关于命令行参数的资料。

五、设计实现过程

  有一个对文件的操作类 class fileOperate,里面有统计字符个数方法charNumber()、统计单词个数方法wordNumber()、统计文件行数方法lineNumber()、统计单词频率方法wordTimes()。展示一下结对方写的判断一字符串是否是一个单词的isWords(string word)方法、获取文件中的频率最高的n个词的wordTimes(int n)方法、获取文件中指定词组的wordGroup(int len)方法的流程图:

                                                                                       

 由于此次的方法都是有返回值的,所以在单元测试部分,都是创建一个FileOperate的对象,然后通过调用相应的方法,然后使用断言判断进行单元测试。

六、代码规范

1. 命名规则:使用驼峰命名法。给类或函数或字段命名,使用具有相应中文意思的英文单词。

2. 分行:不把多条语句放在一行上,不把多个变量定义在一行上。

3. 断行与空白的{}行:”{“”}”单独在一行。

4. 注释:在类或方法的上面使用文档注释,在方法中使用单行注释。

七、代码复审

  因为本人负责的部分比较简单,所以没有什么太大的问题。

  lineNumber()方法原来用的File类下的一个ReadAllLInes()方法,会把空白行也计算进去,所以在结对方的指导下,改成了下面的代码。

八、代码说明

 

    读取文件,然后判断是否为空,用字符串来存,可以直接读取长度。

   

九、单元测试

  大部分为结对方完成的测试 

   

 

  

   十、说明

该部分由结对方完成

基本功能的实现:

  

  

  健壮性:

  

  基本实现了错误提示功能;

  新添功能: 仿照像cmd、matlab等等中的help命令:

  

  获得帮助路径不唯一:

  

 十一、总结

 此次结对项目令自己深刻认识到了与同学之间的差距,看来平时还是要多敲代码多思考。在本次作业中,复习了一下类库知识,如何封装,并且复习了一下上次作业的git push 等操作。还学习了新的知识,命令行参数。在同学的身上也看到了很多值得我学习的地方,这次的作业令我收获颇多。还要努力提高自己的水平,减轻合作伙伴的压力。

猜你喜欢

转载自www.cnblogs.com/youthlll/p/10651526.html