本次结对编程由本人和2152709共同未完成。
程序代码:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
#include<math.h>
void menu();
int main()
{
system("cls");
menu();
eturn 0;
}
void addtion()
{
int a,b,i,d,number;
srand ( (unsigned) time (NULL) );
system("cls");
printf("\t请输入题目数!\n\t\t");
scanf("%d",&number);
getchar();
printf("\t程序将会随机出题,请输入正确答案!\n\t\t");
for(i=0;i<number;i++)
{
a=rand()%100;
b=rand()%100;
if(a+b>=100)
{
i--;
continue;
}
printf("\n\t%d + %d=",a,b);
scanf("%d",&d);
if(d==a+b)
{
printf("\t恭喜答对了\n");
}
else printf("\t很可惜,错了哦!答案是%d\n",a+b);
}
printf("\t你已经做完测试,请按任意键返回菜单\n");
getch();
}
void subtraction()
{
int a,b,i,d,number;
srand ( (unsigned) time (NULL) );
system("cls");
printf("\t请输入题目数!\n\t\t");
scanf("%d",&number);
getchar();
printf("\t程序将会随机出题,请输入正确答案!\n\t\t");
for(i=0;i<number;i++)
{
a=rand()%100;
b=rand()%100;
if(a-b<=0)
{
i--;
continue;
}
printf("\n\t%d - %d=",a,b);
scanf("%d",&d);
if(d==a-b)
{
printf("\t恭喜答对了\n");
}
else printf("\t很可惜,错了哦!答案是%d\n",a-b);
}
printf("\t你已经做完测试,请按任意键返回菜单\n");
getch();
}
void multiply()
{
int a,b,i,d,number;
srand ( (unsigned) time (NULL) );
system("cls");
printf("\t请输入题目数!\n\t\t");
scanf("%d",&number);
getchar();
printf("\t程序将会随机出题,请输入正确答案!\n\t\t");
for(i=0;i<number;i++)
{
a=rand()%100;
b=rand()%100;
if(a*b>=100)
{
i--;
continue;
}
printf("\n\t%d * %d=",a,b);
scanf("%d",&d);
if(d==a*b)
{
printf("\t恭喜答对了\n");
}
else printf("\t很可惜,错了哦!答案是%d\n",a*b);
}
printf("\t你已经做完测试,请按任意键返回菜单\n");
getch();
}
void division()
{
int i,a,b,number,c,f,g;
double d,e;
srand ( (unsigned) time (NULL) );
system("cls");
printf("\t请输入题目数!\n\t\t");
scanf("%d",&number);
getchar();
printf("\t是否整除?(是1/否0)\n\t\t");
scanf("%d",&c);
getchar();
printf("\t程序将会随机出题,请输入正确答案!\n\t\t");
if(c==0)
{
for(i=0;i<number;i++)
{
a=rand()%100;
b=rand()%100;
if((a<b)||b==0||a%b==0)
{
i--;
continue;
}
printf("\n\t%d / %d=",a,b);
e=(a*1.0)/b;
scanf("%lf",&d);
if(fabs(e-d)<0.001)
{
printf("\t恭喜答对了\n");
}
else
printf("\t很可惜,错了哦!答案是%.2lf\n",e);
}
printf("\t你已经做完测试,请按任意键返回菜单\n");
getch();
}
else
{
for(i=0;i<number;i++)
{
a=rand()%100;
b=rand()%100;
if(a<b||b==0||a%b!=0)
{
i--;
continue;
}
printf("\n\t%d / %d=",a,b);
g=a/b;
scanf("%d",&f);
if(g==f)
{
printf("\t恭喜答对了\n");
}
else printf("\t很可惜,错了哦!答案是%d\n",a/b);
}
printf("\t你已经做完测试,请按任意键返回菜单\n");
getch();
}
}
void menu()
{
int i;
printf("\n\n\t******************************\n");
printf("\t* 欢迎使用四则运算练习软件 *\n");
printf("\t* 1- 加法 *\n");
printf("\t* 2- 减法 *\n");
printf("\t* 3- 乘法 *\n");
printf("\t* 4- 除法 *\n");
printf("\t* 0- 退出 *\n");
printf("\t******************************");
i=getch();
switch(i)
{
case '1':addtion();break;
case '2':subtraction();break;
case '3':multiply();break;
case '4':division();break;
case '0':exit(0);break;
default:system("cls");printf("\n\t\t请输入1~4!\n\n\n");getch();break;
}
main();
}
部分结果截图:
心得体会:
这次结对编程让我感受到结对在花的时间上小于一个人,这是因为和队友一起讨论题目要求、制定方案可行性,远比一个人效率高。而在写程序的时候,队友在一旁监督能极大的减少手误。并且出现bug时,两个人一起思考流程,找出错误原因的效率高于一个人。而且有的时候虽然会出现流程设计上的分歧,但是不同的设计方案,反而拓宽了思路。并且如果之后要重构,也可以快速的采用另一种方案。