结对编程

程序代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int a,b,d,t; //定义两个操作数a,b,结果d,输入结果t
char c; //运算符c可取“+、-、×、÷”
int i,sum=0; //题目数量i,答对数目sum
srand(time(0));

for(i=0;i<10;i++)
{
a=rand()%100+1;
b=rand()%100+1;
c=rand()%4; //0表加,1表减,2表乘,3表除

/**< 数据合格判断及算式显示 */
printf("第%d题:",i+1);
switch(c)
{
case 0:
while((d=a+b)>100) //保证和在100内
{
a=rand()%100+1;
b=rand()%100+1;
}
printf("%d + %d = ",a,b);
break;
case 1:

if(a<b) //被减数大于减数
{
d=a;
a=b;
b=d;
}
d=a-b;
printf("%d - %d = ",a,b);
break;
case 2:
while((d=a*b)>100) //保证积小于100
{
a=rand()%100+1;
b=rand()%100+1;
}
printf("%d × %d = ",a,b);
break;
case 3:
while(a>100||b>100||(a*b==0)) //保证被除数小于100且除数不为0
{
a=rand()%100+1;
b=rand()%100+1;
}
if(a<b) //被除数必须大于除数
{
d=a;
a=b;
b=d;
}
a=(a/b)*b; //保证整除
d=a/b;
printf("%d ÷ %d = ",a,b);
break;
}
/**< 输入你的计算结果 */
scanf("%d",&t);
if(d==t)
{
sum++;
printf("正确\n");
}
else
printf("错误\n");

}
/**< 输出答对题数和得分 */
printf("答对 %d 题,得分:%d\n",sum,sum*10);
return 0;
}

 

 

实验结果截图:

 

 

实验过程:

本次实验首先根据题目与伙伴制定解题思路,制定数据结构,选择实验环境,确定了我们代码所需完成的任务,然后开始编程。在编程过程中,首先自己开始编程,另一个在旁边纠错,实现基本要求后另一个开始编程,我在旁边纠错。最终通过对两个人编程的代码分析,选择高效的代码得到了上面的解题代码,完成了本次作业。

我在编程过程中,遇到最大的问题便是问题所要求的自动出题,通过向另一个人询问方法得到了解决,学会了rand与srand两个函数的基本用法。结对编程的伙伴则是在编程过程中出现一些细微的错误,通过我的提醒也及时进行更改,使得代码完整运行。

 

实验心得:

通过这种编程方法能够明显的提升编程效率,并且通过交流可以得到多种解题思路,当然两个人编程的代码也不会相同,可以取其精华,去其糟粕,互相学习,提升两个人的编程能力。除此以外,结对编程还可以增强我们的沟通能力与表达能力,只有两个人都能表达出自己对待这个问题的看法,才能最终得到一致的解决方法。希望以后的编程都能采取结对编程方法。

posted @ 2021-04-24 21:41  Ashuaiyaa  阅读(61)  评论(0)    收藏  举报