结对编程
Github地址 | https://github.com/Corvvus/201831061426.git |
---|---|
结对伙伴 | 张楠 |
伙伴学号 | 201831061423 |
伙伴博客地址 | https://www.cnblogs.com/wxllovezn/p/11683533.html |
PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 50 |
Estimate | 估计这个任务需要多少时间 | 20 | 25 |
Development | 开发 | 200 | 200 |
Analysis | 需求分析 (包括学习新技术) | 50 | 40 |
Design Spec | 生成设计文档 | 20 | 20 |
Design Review | 设计复审 (和同事审核设计文档) | 25 | 25 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 15 | 15 |
Design | 具体设计 | 100 | 80 |
Coding | 具体编码 | 600 | 630 |
Code Review | 代码复审 | 25 | 20 |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 50 |
Reporting | 报告 | 30 | 20 |
Test Report | 测试报告 | 25 | 30 |
Size Measurement | 计算工作量 | 30 | 20 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计 | 40 | 50 |
合计 | 1200 | 1275 |
设计过程
1)设计一个结构体
typedef struct Tree{ char data[N]; int count; struct Tree *lchild; struct Tree *rchild; }Tree,*bTree; class Word{ public: Word(); int get_word(int start, int end, char* p, char* word); void create_Tree(char* m, bTree& b); void Order(bTree b, FILE* q); int sum; char temp[N]; char temp1[N]; char word[N]; char file_Name[20]; int j; int i; };
2)初始化里面的数据
Word::Word() { sum = 0; j = 0; i = 0; }
3)获取单词数的函数
int Word::get_word(int start, int end, char* p, char* word) { memset(word, 0, sizeof(char)); for ( i = start; i<end; i++) { if (isalpha(p[i])) { word[j] = p[i]; j++; } else if (j == 0) { continue; } else { word[j] = '\0'; j = 0; sum++; break; } } return i; }
5)排序
void Word::Order(bTree b, FILE* q) { if (b != NULL) { Order(b->lchild, q); fprintf(q, "\t%-30s 次数:%-9d\t\n", b->data, b->count); printf("\t%-30s 次数:%-9d\t\n", b->data, b->count); Order(b->rchild, q); } }
代码会读取输入的文件名,将文件内的内容展示出来,并计算单词数量和出现的次数,将这些数据再写进一个新的文件。
注意:需首先输入要统计的文件的名称,最后在写一个文件名,来导入统计的信息。
运行结果如下:![]()

代码规范
由于是我们两个人共同完成的,所以在写代码时,我较多的运用c++,伙伴更多的使用c语言,但还好大家都严格按照代码规范来写代码,在沟通时并没有出现较大障碍。我们参考的代码规范在这个网站:https://www.cnblogs.com/linuxAndMcu/p/11303688.html 和 https://zhuanlan.zhihu.com/p/54121195
效能工具测试
我们做了一下效能工具测试,得到了一个大概的效能图

总结
这次的作业是结对编程,很考验两个人之间的合作,一开始有一些沟通障碍,可能是不熟悉的原因吧,但后期的效率有明显的提高,两个人的分工也越来越合理。在解决问题的时候相互协商,大家相互调整了自己的代码,最后才得以将双方的代码结合在一起并成功运行。

来源:https://www.cnblogs.com/zhangzhuoxin/p/11683529.html