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