软件工程综合实践第二次作业,结对编程,编写四则运算。
这是第二次两个人编写一个程序,上一次是两个人合作编写一个网上购书系统,并不是结对编程,因为基本上是分开进行的,在编写过程中出现了很多分歧,最后赶在结束之前勉强完成。这一次的结对编程,我将和学号为1759114的小姐姐一起完成,希望我们能够合作愉快。
我们选择用C语言来编写这个小程序,用的是Visual Studio 2017编译器,个人感觉这个编译器自动调整格式和报错功能很实用。
作业的要求:1.两个运算符,100以内的数字,不需要写答案。(估计时间1)
2.现在估计写这个程序需要的时间
3.马上把代码写出来
4.需要写出答案,并且保证答案在0...100之间(估计时间2)
5.有条件的请马上把程序和运算结果的截屏发到博客上
新的要求: 1.题目避免重复
2.可扩展性
3.可定制(数量/打印方式)
4.具体定制
(1)是否有乘除法,是否有括号,数值范围,加减有无负数
(2)除法有无余数,是否支持分数,打印中每行的间隔可调整
现在估计做好这个软件需要多长时间
我们选择了加和减两个比较简单的运算符,先从简单的开始,减少结对编程中的矛盾,预计时间20分钟,我本来打算把界面设计一并做好,听取小姐姐的建议,界面设计可以在后面进行添加,把加减做成两个函数,通过随机数生成器,随机选择加减法运算。我觉得这个建议很不错,更方便后面添加更多的功能。考虑到使用随机数函数并不是很熟悉,我去百度了这个函数。
//method.h #pragma once #ifndef __METHOD_H__ #define __METHOD_H__ #include<stdio.h> #include<stdlib.h> #include<time.h> //函数声明 void Interface(); char Symbol(); int Number(); void addition(); void subtraction(); void swap(); void Interface() { //主界面 int num; //用于存储输入的题量 char sym; //用于存储生成的符号 printf("请输入题量:"); scanf_s("%d", &num); //输入题量 for (int i = 0; i < num; i++){ //循环进行 sym = Symbol(); if (sym == '+')addition(); //输出加法运算式 else subtraction(); //输出减法运算式 } } char Symbol() { //随机生成符号 int num; //用于存储生成的数字,1-2代表+和- srand((unsigned)time(NULL)); //重新“播种”,改变种子,让生成的数字改变 num = rand() % 1 + 1; //种子生成器,产生1-2之间的数字 if (num == 1)return '+'; //为1返回+ else return '-'; //为2返回- } int Number() { //随机生成整数 int num; //用于存储生成的数字 srand((unsigned)time(NULL)); //重新“播种”,改变种子,让生成的数字改变 num = rand() % 1 + 98; //种子生成器,产生1-99之间的数字 return num; } void addition() { //加法运算 int result; //用于存储结果 int num1, num2; //用于存储生成的两个数字 num1 = Number(); //调用随机生成函数赋给num1 num2 = Number(); //调用随机生成函数赋给num2 result = num1 + num2; //将两个数的和赋给result printf("%d + %d = \n", num1, num2); //打印运算式 } //考虑没有负数结果的运算,写一个用于交换数字的函数 void swap(int &num1, int &num2) { //交换函数 if (num1 < num2) { num1 = num1 + num2; num2 = num1 - num2; num1 = num1 - num2; } } void subtraction() { //减法运算 int result; //用于存储结果 int num1, num2; //用于存储生成的两个数字 num1 = Number(); //调用随机生成函数赋给num1 num2 = Number(); //调用随机生成函数赋给num2 swap(num1, num2); result = num1 - num2; //将两个数的和赋给result printf("%d - %d = \n", num1, num2); //打印运算式 } #endif //main.cpp #include "pch.h" #include "method.h" int main() { Interface(); //主界面函数 return 0; }
由于在写代码的过程中添加了注释和讨论,比预计的20分钟久了很多,共用时33:22,在运行的时候发现生成的数字都是一样的,没有做到不重复,就开始找错误,查资料和纠错用了大概十几分钟。debug的过程真的是痛并快乐着,找到bug并修复的喜悦和找不到bug,找到bug却不知道怎么改的烦恼。
void Interface() { //主界面 int num; //用于存储输入的题量 char sym; //用于存储生成的符号 srand((unsigned)time(NULL)); //重新“播种”,改变种子,让生成的数字改变 printf("请输入题量:"); scanf_s("%d", &num); //输入题量 for (int i = 0; i < num; i++){ //循环进行 sym = Symbol(); if (sym == '+')addition(); //输出加法运算式 else subtraction(); //输出减法运算式 } } char Symbol() { //随机生成符号 int num; //用于存储生成的数字,1-2代表+和- //srand((unsigned)time(NULL)); //重新“播种”,改变种子,让生成的数字改变 num = rand() % 2 + 1; //种子生成器,产生1-2之间的数字 if (num == 1)return '+'; //为1返回+ else return '-'; //为2返回- } int Number() { //随机生成整数 int num; //用于存储生成的数字 //srand((unsigned)time(NULL)); //重新“播种”,改变种子,让生成的数字改变 num = rand() % 99 + 1; //种子生成器,产生1-99之间的数字 return num; }
修改的几处代码,发现我把随机数函数写错了,我们两个人都没有发现这个错误,结果耗费了更多的时间。在编写的过程中,我们的编写风格差异并不大,可能是由于编译器的缘故,自动调整格式。在编写的过程中,我们忘记了声明函数,在编译器的提醒下,我们把bug修复,最终运行出了结果。
总结一下得失:第一次结对编程不免有些分歧,比起一个人效率慢一些,但是结对编程可以避免我一个敲代码时经常偷懒的坏习惯,而且能够给出建议,选择更好更优的解决方案。小姐姐和我分别分摊了加减法,随机数生成,主界面函数,可能是程序并不是特别复杂,在处理上没有太大的问题。
开始下一个环节,写出答案且答案在0-100之间,我们在之前的代码编写中考虑到了答案的问题,所以在修改上可以更加便捷,预计时间5分钟。
void addition() { //加法运算 int result; //用于存储结果 int num1, num2; //用于存储生成的两个数字 num1 = Number(); //调用随机生成函数赋给num1 num2 = Number(); //调用随机生成函数赋给num2 result = num1 + num2; //将两个数的和赋给result if (result > 100)addition(); //如果结果大于100,重新调用该函数 else printf("%d + %d = %d\n", num1, num2, result); //打印运算式 } void subtraction() { //减法运算 int result; //用于存储结果 int num1, num2; //用于存储生成的两个数字 num1 = Number(); //调用随机生成函数赋给num1 num2 = Number(); //调用随机生成函数赋给num2 swap(num1, num2); result = num1 - num2; //将两个数的差赋给result printf("%d - %d = %d\n", num1, num2, result); //打印运算式 }
修改量并不是很大,用了大概三分钟的时间实现了功能。毫无分歧的实现了这个功能,离目标已经不远了。题目不重复基本实现,打印数量可以自己输入,剩下的就是打印方式和具体定制。看了要求后,感觉我们理解错了意思,不过也没太大问题,在后面我们会添加更多的功能。
功能要实现的多了,我们就开始出现了分歧,不知道该怎么处理比较好。由于时间有限,我们只实现了一部分的功能,再加上结对编程出现了分歧,在如何处理上,产生了矛盾。在后面的处理上,没有考虑到修改方便的问题,复制了很多代码,显得代码很长很多,基本上都是重复的操作,在实现功能上,没有足够的时间去继续处理,已经花了很多的时间在实现功能上,我们最后实现的结果就定下了。
我们希望尽快完成,但是越急反而效率越低,在代码测试过程中出现了许多小bug,很多都是复制过来没有进行修改。最后我们实现了加法运算,减法有无余数的运算,乘法运算,除法有无余数的运算,混合无负数、无余数的运算和混合有负数、有余数的运算,输出有答案和无答案的运算式,可以自己选择题目数量和一行显示的题目数量(1-4)个,放弃了分数运算(这个讨论的时候就感觉太过复杂,先实现了简单的,然后时间消耗太久放弃了),放弃了括号(没有实现可以选择几个数进行四则运算的功能),每行的间隔可调整被改成了每行放几个运算式,还有就是不能进行答案判断正误。
我把四则运算的函数改成了int型,是为了能够进行多个数之间的四则运算,由于时间有限,未能实现该功能,截取了其中一部分功能。
//method.h #pragma once #ifndef __METHOD_H__ #define __METHOD_H__ #include<stdio.h> #include<stdlib.h> #include<time.h> //函数声明 void Interface(); //主界面 char Symbol(); //随机生成符号 int Number(); //随机生成数字 int addition(char judge); //加法运算 int subtraction(char judge, char Judge); //减法运算 void swap(); //交换函数 int multiplication(char judge); //乘法运算 int division(char judge, char Judge); //除法运算 void Interface() { //主界面 int num; //用于存储输入的数字 int n; //用于选择一行输出的运算式数量 char judge; //用于选择是与否 char Judge; //用于减法有无负数和除法有无余数 char sym; //用于存储生成的符号 srand((unsigned)time(NULL)); //重新“播种”,改变种子,让生成的数字改变 printf("**********************************欢迎使用四则运算**********************************\n"); printf("\n\n\n"); printf(" ********************************** \n"); printf(" ** 1.加法运算 ** \n"); printf(" ** 2.减法无负 ** \n"); printf(" ** 3.减法有负 ** \n"); printf(" ** 4.乘法运算 ** \n"); printf(" ** 5.除法无余 ** \n"); printf(" ** 6.除法有余 ** \n"); printf(" ** 7.混合有负余 ** \n"); printf(" ** 8.混合无负余 ** \n"); printf(" ** 0.退出程序 ** \n"); printf(" ********************************** \n"); printf("\n\n\n"); printf("**************************************请选择:**************************************\n"); do { scanf_s("%d", &num); //输入选择 if (num == 0)exit(1); //退出程序 else if (num == 1) { //加法运算 num = 0; sym = '+'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); } else if (num == 2) { //减法无负 num = 0; sym = '-'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); Judge = '1'; } else if (num == 3) { //减法有负 num = 0; sym = '-'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); Judge = '0'; } else if (num == 4) { //乘法运算 num = 0; sym = '*'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); } else if (num == 5) { //除法无余 num = 0; sym = '/'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); Judge = '0'; } else if (num == 6) { //除法有余 num = 0; sym = '/'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); Judge = '1'; } else if (num == 7) { //混合有余负 num = 0; sym = 'R'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); Judge = '1'; } else if (num == 8) { //混合无余负 num = 0; sym = 'R'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); Judge = '0'; } else printf("错误选项!请重新选择:"); } while (num != 0); char s = sym; //存储符号备份 printf("请输入题量:"); scanf_s("%d", &num); //输入题量 printf("请输入一行显示运算式数量(1-4):"); scanf_s("%d", &n); //输入数量 for (int i = 0; i < num; i++){ //循环进行 if (s == 'R')sym = Symbol(); //随机生成符号 if (sym == '+')addition(judge); //输出加法运算式 else if (sym == '-')subtraction(judge,Judge); //输出减法运算式 else if (sym == '*')multiplication(judge); //输出乘法运算式 else if (sym == '/')division(judge,Judge); //输出除法运算式 if ((i + 1) % n == 0 && i != 0)printf("\n"); } printf("\n"); } char Symbol() { //随机生成符号 int num; //用于存储生成的数字,1-2代表+和- //srand((unsigned)time(NULL)); //重新“播种”,改变种子,让生成的数字改变 num = rand() % 4 + 1; //种子生成器,产生1-4之间的数字 if (num == 1)return '+'; //为1返回+ else if (num == 2) return '-'; //为2返回- else if (num == 3) return '*'; //为3返回× else return '/'; //为4返回÷ } int Number() { //随机生成整数 int num; //用于存储生成的数字 //srand((unsigned)time(NULL)); //重新“播种”,改变种子,让生成的数字改变 num = rand() % 99 + 1; //种子生成器,产生1-99之间的数字 return num; } int addition(char judge) { //加法运算 int result; //用于存储结果 int num1, num2; //用于存储生成的两个数字 num1 = Number(); //调用随机生成函数赋给num1 num2 = Number(); //调用随机生成函数赋给num2 result = num1 + num2; //将两个数的和赋给result if (result > 100)addition(judge); //如果结果大于100,重新调用该函数 else if(judge == '1') printf("%d + %d = %d\t\t", num1, num2, result); //打印有答案的运算式 else printf("%d + %d = \t\t", num1, num2); //打印无答案的运算式 return result; } //考虑没有负数结果的运算,写一个用于交换数字的函数 void swap(int &num1, int &num2) { //交换函数 if (num1 < num2) { num1 = num1 + num2; num2 = num1 - num2; num1 = num1 - num2; } } int subtraction(char judge, char Judge) { //减法运算 int result; //用于存储结果 int num1, num2; //用于存储生成的两个数字 num1 = Number(); //调用随机生成函数赋给num1 num2 = Number(); //调用随机生成函数赋给num2 if(Judge == 1)swap(num1, num2); //无负运算 result = num1 - num2; //将两个数的差赋给result if(judge == '1')printf("%d - %d = %d\t\t", num1, num2, result); //打印有答案运算式 else printf("%d - %d = \t\t", num1, num2); //打印无答案运算式 return result; } int multiplication(char judge) { //乘法运算 int result; //用于存储结果 int num1, num2; //用于存储生成的两个数字 num1 = Number(); //调用随机生成函数赋给num1 num2 = Number(); //调用随机生成函数赋给num2 result = num1 * num2; //将两个数的积赋给result if (result > 100)multiplication(judge); //如果结果大于100,重新调用该函数 else if(judge == '1') printf("%d × %d = %d\t\t", num1, num2, result); //打印有答案运算式 else printf("%d × %d = \t\t", num1, num2); //打印无答案运算式 return result; } int division(char judge, char Judge) { //除法运算 int result; //用于存储结果 int remainder; //用于存储余数 int num1, num2; //用于存储生成的两个数字 num2 = Number(); //调用随机生成函数赋给num2 if (Judge == 1) { num1 = num2 * (rand() % 10 + 1); //将num2的整数倍传给num1,整除无余数 result = num1 / num2; //将num1和num2的商赋给result if (num1 > 100)division(judge, Judge); //如果被除数num1大于100,重新调用该函数 else if (judge == '1') printf("%d ÷ %d = %d\t\t", num1, num2, result); //打印有答案运算式 else printf("%d ÷ %d = \t\t", num1, num2); //打印无答案运算式 } else { num1 = Number(); //有余数的运算 result = num1 / num2; //将num1和num2的商赋给result remainder = num1 % num2; //将num1和num2的余数赋给remainer if (judge == '1') printf("%d ÷ %d = %d 余 %d\t\t", num1, num2, result, remainder); //打印有答案运算式 else printf("%d ÷ %d = \t\t", num1, num2); //打印无答案运算式 } return result; } #endif //main.cpp #include "pch.h" #include "method.h" int main() { while (1) { Interface(); //主界面函数 } return 0; }
总结得失:在添加功能的函数上存在着一些不同的意见,在这上面浪费了很多时间,不过有更多不同的想法;在分工上,各自选择了要实现的功能,因为用一台电脑进行编写,一人编写,一人辅助纠错,不会出现两个人分别实现功能最后在连接上出现大量错误的问题;第一次结对编程,比起一个人实现,效率有些低,还会出现很多分歧,感觉如果处理得好会是一个很好的编写程序的方法。
对未实现的功能感到不是很满足,我又修改了自己的代码,让功能变得更加完整,不过没有处理好除法上的问题,因为设定的数字类型都是int型,所以在做除法运算会出现一定的问题,最后使得结果在+-100之间,勉强实现多位数字之间的运算,放弃了乘除法先运算的问题,便都加上了括号。
#pragma once #ifndef __METHOD_H__ #define __METHOD_H__ #include<stdio.h> #include<stdlib.h> #include<time.h> //#define A a+b //定义加法 //#define S a-b //定义减法 //#define M a*b //定义乘法 //#define D a/b //定义除法 //函数声明 void Interface(); //主界面 char Symbol(); //随机生成符号 int Number(); //随机生成数字 int addition(char judge); //加法运算 int subtraction(char judge, char Judge); //减法运算 void swap(); //交换函数 int multiplication(char judge); //乘法运算 int division(char judge, char Judge); //除法运算 int Multi_digit(int number); //多位数字运算 void Interface() { //主界面 int num; //用于存储输入的数字 int n; //用于选择一行输出的运算式数量 int number; //存储位数 char judge; //用于选择是与否 char Judge; //用于减法有无负数和除法有无余数 char sym; //用于存储生成的符号 srand((unsigned)time(NULL)); //重新“播种”,改变种子,让生成的数字改变 printf("**********************************欢迎使用四则运算**********************************\n"); printf("\n\n\n"); printf(" ********************************** \n"); printf(" ** 1.加法运算 ** \n"); printf(" ** 2.减法无负 ** \n"); printf(" ** 3.减法有负 ** \n"); printf(" ** 4.乘法运算 ** \n"); printf(" ** 5.除法无余 ** \n"); printf(" ** 6.除法有余 ** \n"); printf(" ** 7.混合有负余 ** \n"); printf(" ** 8.混合无负余 ** \n"); printf(" ** 9.多位数字运算 ** \n"); printf(" ** 0.退出程序 ** \n"); printf(" ********************************** \n"); printf("\n\n\n"); printf("**************************************请选择:**************************************\n"); do { scanf_s("%d", &num); //输入选择 if (num == 0)exit(1); //退出程序 else if (num == 1) { //加法运算 num = 0; sym = '+'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); } else if (num == 2) { //减法无负 num = 0; sym = '-'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); Judge = '1'; } else if (num == 3) { //减法有负 num = 0; sym = '-'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); Judge = '0'; } else if (num == 4) { //乘法运算 num = 0; sym = '*'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); } else if (num == 5) { //除法无余 num = 0; sym = '/'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); Judge = '0'; } else if (num == 6) { //除法有余 num = 0; sym = '/'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); Judge = '1'; } else if (num == 7) { //混合有余负 num = 0; sym = 'R'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); Judge = '1'; } else if (num == 8) { //混合无余负 num = 0; sym = 'R'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); Judge = '0'; } else if (num == 9) { //多位数字运算 num = 0; sym = 'M'; printf("是否输出答案(是(1),否(0)):"); getchar(); scanf_s("%c", &judge); printf("请输入要进行运算的位数:"); scanf_s("%d", &number); } else printf("错误选项!请重新选择:"); } while (num != 0); char s = sym; //存储符号备份 printf("请输入题量:"); scanf_s("%d", &num); //输入题量 printf("请输入一行显示运算式数量(1-4):"); scanf_s("%d", &n); //输入数量 for (int i = 0; i < num; i++){ //循环进行 if (s == 'M') { Multi_digit(number); if ((i + 1) % n == 0 && i != 0)printf("\n"); } else { if (s == 'R')sym = Symbol(); //随机生成符号 if (sym == '+')addition(judge); //输出加法运算式 else if (sym == '-')subtraction(judge, Judge); //输出减法运算式 else if (sym == '*')multiplication(judge); //输出乘法运算式 else if (sym == '/')division(judge, Judge); //输出除法运算式 if ((i + 1) % n == 0 && i != 0)printf("\n"); } } printf("\n"); } char Symbol() { //随机生成符号 int num; //用于存储生成的数字,1-2代表+和- //srand((unsigned)time(NULL)); //重新“播种”,改变种子,让生成的数字改变 num = rand() % 4 + 1; //种子生成器,产生1-4之间的数字 if (num == 1)return '+'; //为1返回+ else if (num == 2) return '-'; //为2返回- else if (num == 3) return '*'; //为3返回× else return '/'; //为4返回÷ } int Number() { //随机生成整数 int num; //用于存储生成的数字 //srand((unsigned)time(NULL)); //重新“播种”,改变种子,让生成的数字改变 num = rand() % 99 + 1; //种子生成器,产生1-99之间的数字 return num; } int addition(char judge) { //加法运算 int result; //用于存储结果 int num1, num2; //用于存储生成的两个数字 num1 = Number(); //调用随机生成函数赋给num1 num2 = Number(); //调用随机生成函数赋给num2 result = num1 + num2; //将两个数的和赋给result if (result > 100)addition(judge); //如果结果大于100,重新调用该函数 else if(judge == '1') printf("%d + %d = %d\t\t", num1, num2, result); //打印有答案的运算式 else printf("%d + %d = \t\t", num1, num2); //打印无答案的运算式 return result; } //考虑没有负数结果的运算,写一个用于交换数字的函数 void swap(int &num1, int &num2) { //交换函数 if (num1 < num2) { num1 = num1 + num2; num2 = num1 - num2; num1 = num1 - num2; } } int subtraction(char judge, char Judge) { //减法运算 int result; //用于存储结果 int num1, num2; //用于存储生成的两个数字 num1 = Number(); //调用随机生成函数赋给num1 num2 = Number(); //调用随机生成函数赋给num2 if(Judge == 1)swap(num1, num2); //无负运算 result = num1 - num2; //将两个数的差赋给result if(judge == '1')printf("%d - %d = %d\t\t", num1, num2, result); //打印有答案运算式 else printf("%d - %d = \t\t", num1, num2); //打印无答案运算式 return result; } int multiplication(char judge) { //乘法运算 int result; //用于存储结果 int num1, num2; //用于存储生成的两个数字 num1 = Number(); //调用随机生成函数赋给num1 num2 = Number(); //调用随机生成函数赋给num2 result = num1 * num2; //将两个数的积赋给result if (result > 100)multiplication(judge); //如果结果大于100,重新调用该函数 else if(judge == '1') printf("%d × %d = %d\t\t", num1, num2, result); //打印有答案运算式 else printf("%d × %d = \t\t", num1, num2); //打印无答案运算式 return result; } int division(char judge, char Judge) { //除法运算 int result; //用于存储结果 int remainder; //用于存储余数 int num1, num2; //用于存储生成的两个数字 num2 = Number(); //调用随机生成函数赋给num2 if (Judge == 1) { num1 = num2 * (rand() % 10 + 1); //将num2的整数倍传给num1,整除无余数 result = num1 / num2; //将num1和num2的商赋给result if (num1 > 100)division(judge, Judge); //如果被除数num1大于100,重新调用该函数 else if (judge == '1') printf("%d ÷ %d = %d\t\t", num1, num2, result); //打印有答案运算式 else printf("%d ÷ %d = \t\t", num1, num2); //打印无答案运算式 } else { num1 = Number(); //有余数的运算 result = num1 / num2; //将num1和num2的商赋给result remainder = num1 % num2; //将num1和num2的余数赋给remainer if (judge == '1') printf("%d ÷ %d = %d 余 %d\t\t", num1, num2, result, remainder); //打印有答案运算式 else printf("%d ÷ %d = \t\t", num1, num2); //打印无答案运算式 } return result; } int Multi_digit(int number){ int n[10]; char s[10]; int *num = n, result; char *sym = s; num[0] = Number(); result = num[0]; for (int i = 1; i < number; i++){ sym[i] = Symbol(); num[i] = Symbol(); } for (int i = 1; i < number; i++){ switch (sym[i]) { case '+':result += num[i]; break; case '-':result -= num[i]; break; case '*':result *= num[i]; break; case '/':result /= num[i]; break; } } if (result > 100 || result < -100)Multi_digit(number); else { for (int i = 1; i < number; i++) { printf("("); } printf("%d", num[0]); for (int i = 1; i < number; i++) { printf(" %c %d) ", sym[i], num[i]); } printf(" = %d\t\t", result); } return result; } #endif
两个人纠错总是比一个人纠错有趣,而且会少犯一些错误,大大提高了测试上的效率,由于结对编程需要两人使用一台电脑进行,需要分配时间一起进行编写,时间上不是很充足,在功能的实现上也很勉强。总体上来说,结对编程的收获大于一个人的编程,希望我们两人能在接下来的结对编程测试中配合默契,完成更多的程序。
小姐姐的合作感言:非常高兴能再次跟学号为1759130的同学结对编程,我在编程以及其他方面上的不足恰好他都可以弥补。虽然过程中遇到了很多小困难,但在我和搭档的共同努力下,克服了困难并顺利完成任务。
最后这篇博文由我来发布,这也是她对我的信任,希望我们在接下来的结对编程中能做得更好,感谢她与我一起完成这一个小程序。