第四次作业:结对编程

GIT地址 git地址
结对伙伴 201831061218 +201831061220
伙伴学号 201831061220
伙伴博客地址 伙伴博客地址

一.PSP表格

PSP2.1 Personal Software Process Stages
·Planning 计划 预估耗时(分钟) 实际耗时(分钟)
·Estimate · 估计这个任务需要多少时间 1400 1500
·Development 开发 1300 1290
·Analyse · 需求分析 (包括学习新技术) 50 80
· Design Spec · 生成设计文档 60 80
· Design Review · 设计复审 (和同事审核设计文档) 30 30
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 40 30
Design · 具体设计 100 120
Coding · 具体编码 700 800
· Code Review · 代码复审 60 50
Test · 测试(自我测试,修改代码,提交修改 100 100
Reporting 测试报告 30 30
· Test Report · 测试报告 30 20
· Size Measurement · 计算工作量 40 40
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 20 30
合计 1700 1900

二.接口实现和过程设计

设计

见如下思维导图
第四次作业:结对编程_第1张图片
因为这个结对编程作业篇幅有点长,我和我的伙伴通过一起慢慢读题,搞了好久才读懂题目,然后画出思维导图,当把思维导图画出来后,我们就感觉此次作业的需求一目了然,以及两人对代码的分工合作变得清晰很多。

各类关系

count里面装了完成程序的函数。
main里面执行主函数,集成所有功能。接受字符“-i,-o,-m,-n”,根据不同的字符来执行不同的功能。这个功能因为时间有限,加上我们两个都不太懂命令行传参的形式运行,很遗憾没能完成

实现

第四次作业:结对编程_第2张图片
关键函数:

void  charsum();//统计字符数

void cizu();//统计单词总数

void line();//统计有效行数

void sum();//统计前十高频词汇并且以小写格式输出

工程里面主要文件:
第四次作业:结对编程_第3张图片
我们两个通过讨论,以及根据作业要求分析,初步将几个功能模块确定下来,分别分配给两个人,然后分工完成自己的功能模块,最后两个人一起写main.cpp从而进行汇总。

三.代码复审

在复审途中,存在最多的就是这个错误,多个cpp中定义了同一个变量。
第四次作业:结对编程_第4张图片
解决方法是我们将重复命名的变量进行了修改。

四.程序分部运行结果

字符统计:统计文中字符总数
第四次作业:结对编程_第5张图片
有效单词统计:统计单词长度大于3的数量
第四次作业:结对编程_第6张图片
行数统计:统计有效行数
第四次作业:结对编程_第7张图片
词频统计:频率最多的十个单词输出单词和词频
第四次作业:结对编程_第8张图片
将运行结果录入到text.txt中
第四次作业:结对编程_第9张图片
最后将每个功能模块汇总,实现截图:
第四次作业:结对编程_第10张图片

五.单元测试

第四次作业:结对编程_第11张图片
第四次作业:结对编程_第12张图片

第四次作业:结对编程_第13张图片
第四次作业:结对编程_第14张图片

效能分析

第四次作业:结对编程_第15张图片
可以从图中看出,cpu占比最多的那部分就是完成高频词统计那一块儿,我们两个认为这是因为存在多个字符串比较。

样本分析报告

第四次作业:结对编程_第16张图片
第四次作业:结对编程_第17张图片

六.结对过程及我的感想

第四次作业:结对编程_第18张图片
这次结对编程并不顺利,中途遇到很多问题,一开始读题都读不懂,很我的伙伴花了很长时间才明白作业内容,因为没用过命令行参数输入,也查了很多资料学习,但是因为时间关系也没能把它做好,感觉很遗憾。
在此特别感谢我的伙伴,我们在调试bug的时候,两个人一起合作,相互鼓励,互相指点,解决了许多bug。这让我真切地感受到1+1>2。此外,不仅是技术方面伙伴能够提供非常大的帮助,在精神层面上,伙伴间也能相互鼓励,还能弥补一个人思维的局限性,让两个人对问题想得更加全面。这次作业让我意识到自己有多么多么的菜,需要学的东西还有很多啊,希望自己能永远不忘最初时的热爱,最后也能不负期许。

你可能感兴趣的:(第四次作业:结对编程)