1.题目要求
能够自动生成四则运算练习题
可以定制题目数量
用户可以选择运算符
用户设置最大数(如十以内、百以内等)
用户选择是否有括号、是否有小数
用户选择输出方式(如输出到文件、打印机等)
最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)
2.队伍组成
由于同寝室舍友杨里生缺少队友,我们决定拉他入伙,将驾驶员的代码编写部分分工合作,由杨里生完成测试。
在实际编写中,黄绍伟负责编写了主函数,四则运算生成
我负责添加了括号,小数,功能的实现等完善了程序
驾驶员:饶光宇,黄绍伟
领航员:杨里生
3.程序代码
#include<stdio.h>
#include<math.h>
#include<windows.h>
#include<time.h>
void add()
{
int d,e,x;
printf(" 请选择几以内的运算:");
scanf("%d",&x);
printf(" 需要练习多少道题:");
scanf("%d",&d);
printf(" 是否为小数(1.小数 2.整数): ");
scanf("%d",&e);
switch(e)
{
case 1:
Xiaoshu1(d,x);break;
case 2:
Zhengshu1(d,x);
break;
}
}
void Zhengshu1(int d,int x)
{
int a,b,i;
for(i=0;i<d;i++)
{
a=rand()%x;
b=rand()%x;
printf("
%d + %d = %d",a,b,a+b);
}
}
void Xiaoshu1(int d,int x)
{
float a,b;
int i;
x=x*100;
for(i=0;i<d;i++)
{
a=rand()%x*0.01;
b=rand()%x*0.01;
printf("
%.2f + %.2f =%.2f",a,b,a+b);
}
}
void del()
{
int d,e,x;
printf(" 请选择几以内的运算:");
scanf("%d",&x);
printf(" 需要练习多少道题:");
scanf("%d",&d);
printf(" 是否为小数(1.小数 2.整数): ");
scanf("%d",&e);
switch(e)
{
case 1:
Xiaoshu2(d,x);break;
case 2:
Zhengshu2(d,x);
break;
}
}
void Zhengshu2(int d,int x)
{
int a,b,i;
for(i=0;i<d;i++)
{
a=rand()%x;
b=rand()%x;
for(;a-b<0;)
{
a=rand()%x;
b=rand()%x;
}
printf("
%d - %d = %d",a,b,a-b);
}
}
void Xiaoshu2(int d,int x)
{
float a,b;
int i;
x=x*100;
for(i=0;i<d;i++)
{
a=rand()%x*0.01;
b=rand()%x*0.01;
printf("
%.2f - %.2f =%.2f",a,b,a-b);
}
}
void mul()
{
int d,e,x;
printf(" 请选择几以内的运算:");
scanf("%d",&x);
printf(" 需要练习多少道题:");
scanf("%d",&d);
printf(" 是否为小数(1.小数 2.整数): ");
scanf("%d",&e);
switch(e)
{
case 1:
Xiaoshu3(d,x);break;
case 2:
Zhengshu3(d,x);
break;
}
}
void Zhengshu3(int d,int x)
{
int a,b,i;
for(i=0;i<d;i++)
{
a=rand()%x;
b=rand()%x;
printf("
%d * %d = %d",a,b,a*b);
}
}
void Xiaoshu3(int d,int x)
{
float a,b;
int i;
x=x*100;
for(i=0;i<d;i++)
{
a=rand()%x*0.01;
b=rand()%x*0.01;
printf("
%.2f * %.2f =%.2f",a,b,a*b);
}
}
void di()
{
int d,e,x;
printf(" 请选择几以内的运算:");
scanf("%d",&x);
printf(" 需要练习多少道题:");
scanf("%d",&d);
printf(" 是否为小数(1.小数 2.整数): ");
scanf("%d",&e);
switch(e)
{
case 1:
Xiaoshu4(d,x);break;
case 2:
Zhengshu4(d,x);break;
}
}
void Zhengshu4(int d,int x)
{
int a,b,i;
for(i=0;i<d;i++)
{
a=rand()%x;
b=rand()%x+1;
printf("
%d / %d = %d",a,b,a/b);
}
}
void Xiaoshu4(int d,int x)
{
float a,b;
int i;
x=x*100;
for(i=0;i<d;i++)
{
a=rand()%x*0.01;
b=rand()%x*0.01+0.01;
printf("
%.2f / %.2f =%.2f",a,b,a/b);
}
}
void kuohao()
{
int a,b,c,x,d,i,e;
printf(" 请选择几以内的运算:");
scanf("%d",&x);
printf(" 需要练习多少道题:");
scanf("%d",&e);
for(i=0;i<=e;i++)
{
a=rand()%x;
b=rand()%x;
d=rand()%x;
printf("
(%d + %d)*%d = ",a,b,d);
a=a+b;
printf("%d",a*d);
}
}
int main()
{
int choise;
int con=1;
printf("
欢迎进入小学简易四则运算
");
while(1)
{
printf(" 请选择:
");
printf(" 加法运算(请输入1)
");
printf(" 减法运算(请输入2)
");
printf(" 乘法运算(请输入3)
");
printf(" 除法运算(请输入4)
");
printf(" 括号运算(请输入5)
");
printf(" 退出运算(请输入6)
");
scanf("%d",&choise);
switch(choise)
{
case 1:
add();
break;
case 2:
del();
break;
case 3:
mul();
break;
case 4:
di();
break;
case 5:
kuohao();
break;
case 6:
return 0;
}
printf("
重新选择?(请输入1)
");
printf("
退出运算?(请输入0)
");
scanf("%d",&con);
if(con==1)
con=1;
else if(con==0)
break;
else
printf("抱歉!,你输入的指令有误!请重新输入!
");
}
return 0;
}
4.运行截图
程序主界面
加法运算
减法运算
乘法运算
除法运算
括号运算
5. coding
6.总结
一开始觉得题目还蛮简单的,但是写的时候还是遇到了不少的问题,又觉得其实并不是那么的简单,在仔细查阅了资料并和导航员讨论后,才有了具体的实现思路,通过反复的测试编写,基本完成了题目的要求。自己的团队能力得到了提高,体会到了团队合作的高效。在团队合作的过程中无论是领航员还是驾驶员,在他们的身上我都看到了值得自己学习的地方,真所谓三人行必有我师焉,通过团队合作互相学习,共同进步。
感谢大家