制作一个可供小学数学运算程序:10以内加减法,能根据输入题数出题,判断做题是否正确,最后计算分数。

2020-05-31 教育 174阅读
要求:制作一个可供小学数学运算的程序。10以内的加减法,能根据输入题数出题,判断做题是否正确,最后计算分数,
例如:请输入题数:2
1+5=
2+4=
由用户输入答案,程序根据答案判断正误,输出正确率(%)
界面要示:图形方式界面(使用c语言绘制界面)
我目前做的程序,现在脑子很混乱,所以最后几行乱七八糟的没改。。。希望有高人指点,帮我完成整个程序的循环。还有,用turbo c为这个程序制作一个简单的欢迎界面和运行界面
#include
#include
#include
char d1,d2;
int Getanum(int num)
{
int a;
srand(num*num+time(0));
a=(rand()+num)%10;//产生10以内的随机数
return a;
}
void main()
{
loop:int i,num,a,b,c,op,error;
error = 0;//错误数置零
num = 100;//使得下面的while循环成立即可
printf("同学们,开始做题喽!输入题数吧^.^:");
scanf("%d",&num);
for(i=0;i{
a = Getanum(i);//第一个操作数
b = Getanum(a);//第二个
op = (Getanum(a+b)+b)%2;//产生符号 +或者-
switch(op)
{
case 0://+
if(a+b>10)//超过10重新来
{
i--;
break;
}
else
{
printf("%d : %d + %d = ",i+1,a,b);//出题
scanf("%d",&c);//取输入的结果
if(c != a+b)//答案错误
{
printf("出错啦,做题要仔细哦!\n");
error++;
}
else//正确答案鼓励一下
{
printf("真棒!再接再厉哦!\n");
}
}
break;
case 1://-
if(b>a)//保证a>b 使得不出现负数
{
a=a+b;
b=a-b;
a=a-b;
}
printf("%d : %d - %d = ",i+1,a,b);//出题
scanf("%d",&c);//取结果
if(c != a-b)
{
printf("出错啦,做题要仔细哦!\n");
error++;//错误自加
}
else
{
printf("真棒!再接再厉哦!\n");
}
break;
default:
break;
}
}
printf("%d 道题错误!\n",error);//输出错误数
printf("你的正确率为百分之 %d .\n",(num-error)*100/num);//所得分数
printf("还需要多加努力哦,继续做题么?\n继续请输入y,不继续请输入n");
d1=getchar();
if(d1='y')goto loop;
else printf("byebye!");
}
最佳答案
程序改好了 界面先放放吧 不用graphics.h的话做个简单的欢迎界面还是可以的
#include
#include
#include
char d1,d2;
int Getanum(int num)
{
int a;
srand(num*num+time(0));
a=(rand()+num)%10;//产生10以内的随机数
return a;
}
int main()
{
int i,num,a,b,c,op,error;
error = 0;//错误数置零
num = 100;//使得下面的while循环成立即可
printf("同学们,开始做题喽!输入题数吧^.^:");
scanf("%d",&num);
for(i=0;i {
a = Getanum(i);//第一个操作数
b = Getanum(a);//第二个
op = (Getanum(a+b)+b)%2;//产生符号 +或者-
switch(op)
{
case 0://+
if(a+b>10)//超过10重新来
{
i--;
break;
}
else
{
printf("%d : %d + %d = ",i+1,a,b);//出题
while(!scanf("%d",&c))
{
fflush(stdin);
}//取输入的结果
if(c != a+b)//答案错误
{
printf("出错啦,做题要仔细哦!\n");
error++;
}
else//正确答案鼓励一下
{
printf("真棒!再接再厉哦!\n");
}
}
break;

case 1://-
if(b>a)//保证a>b 使得不出现负数
{
a=a+b;
b=a-b;
a=a-b;
}
printf("%d : %d - %d = ",i+1,a,b);//出题
scanf("%d",&c);//取结果
if(c != a-b)
{
printf("出错啦,做题要仔细哦!\n");
error++;//错误自加
}
else
{
printf("真棒!再接再厉哦!\n");
}
break;

default:
break;
}
}
printf("%d 道题错误!\n",error);//输出错误数
printf("你的正确率为百分之 %d .\n",(num-error)*100/num);//所得分数
printf("还需要多加努力哦,继续做题么?\n继续请输入y,不继续请输入n");
fflush(stdin);
d1=getchar();
if(d1=='y')
main();
else
{
printf("byebye!\n");
exit(0);
}
return 0;
}
这个是加法的:
#include
#include
#include
void main()
{
int i,n=0,x,k;
cout<<"请输入题目的数目:";
cin>>x;
for(i=1;i<=x;i++)
{
int a,b,c,d;
srand(time(NULL));
a=rand()%10;
Sleep(200);
srand(time(NULL));
b=rand()%10;
cout<c=a+b;
cin>>d;
if(c==d)
{
cout<<"回答正确,继续加油"<n++;
}
else cout<<"回答错误,加把劲哦"<cout<<"\n";
}
k=n*(100/x);
if(k>=80)
{
cout<<"恭喜你得到好成绩,你的得分为:"<}
else cout<<"成绩一般哦,请继续加油,你的得分为:"<}
这个是减法的:
#include
#include
#include
void main()
{
int i,n=0,x,k;
cout<<"请输入题目的数目:";
cin>>x;
for(i=1;i<=x;i++)
{
int a,b,c,d,t;
srand(time(NULL));
a=rand()%10;
Sleep(200);
srand(time(NULL));
b=rand()%10;
if(a {
t=a;a=b;b=t;
}
cout< c=a-b;
cin>>d;
if(c==d)
{
cout<<"回答正确,继续加油"< n++;
}
else cout<<"回答错误,加把劲哦"< cout<<"\n";
}
k=n*(100/x);
if(k>=80)
{
cout<<"恭喜你得到好成绩,你的得分为:"< }
else cout<<"成绩一般哦,请继续加油,你的得分为:"<}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com