计算机辅导教学(CAI)软件开发:教小学生学算术_算术cai软件开发
计算机辅导教学(CAI)软件开发:教小学生学算术由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“算术cai软件开发”。
#include #include #include #include #include void cd();//菜单
void gz();//游戏规则函数 void add();//个位数加法 void add1();//十位数加法 void sub();//个位数减法 void sub1();//十位数减法 void mul();//个位数乘法 void mul1();//十位数乘法 void div();//个位数除法 void div1();//十位数除法 void tc();//退出函数 int sum=0,k;main(){ cd();return 0;} void cd()//菜单 { int z;printf(“
n”);
printf(“
菜单
n”);
printf(“ 0.规则
n”);printf(“ 1.加法
n”);printf(“ 2.减法
n”);printf(“ 3.乘法
n”);printf(“ 4.除法
n”);
printf(“
n”);printf(“
请选择
n”);
scanf(“%d”,&z);if(z>9||z
printf(“输入错误!请重新输入!n”);
scanf(“%d”,&z);} switch(z){ case 0: gz();break;
case 1: add();break;case 2: sub();break;
case 3: mul();break;
case 4: div();break;default:tc();} } void gz()//游戏规则函数 { int l;
printf(“
n”);
printf(“
游戏规则
n”);printf(“
1、你可以选择加法,减法,乘法,除法,运算四种运算。
n”);printf(“
2、每种运算分为两个等级,第一级和第二级
n”);printf(“
3、第一级为个位数运算,第二级为十位数运算。
n”);printf(“
4、做第一级正确率达到90%,将进入第二级。
n”);printf(“
5、若在第二级的正确率低于60%将会降级。
n”);printf(“
n”);
printf(“ 输入(0)返回菜单n”);scanf(“%d”,&l);if(l>=9||l
printf(“输入错误!请重新输入!n”);
printf(“
是否继续挑战?n”);
printf(“Yes(0)继续挑战,No(1)结束!n”);
scanf(“%d”,&l);} switch(l){ case 0: cd();break;default:tc();} } void add()//个位数加法 { int x,y,i,j;float answer;int sum=0;//统计一次答对的题数sum printf(“请输入挑战的题量:”);//输入的题目数量k scanf(“%d”,&k);for(i=1;i
srand((unsigned)time(0));//用当前时间作参数,计算随机数种子
x=(rand()%10);//取0~9之间的随机数
y=(rand()%10);
printf(“%d+%d=”,x,y);
scanf(“%f”,&answer);
if(answer!=(x+y))
{
j=1;
while(answer!=(x+y)&&j
{
printf(“答案错误,请输入正确答案:n”);
printf(“%d+%d=”,x,y);
scanf(“%f”,&answer);
j++;
}
if(j>=3)
{
printf(“正确答案:n”);
printf(“%fn”,answer=((float)x+(float)y));
}
else
{
printf(“回答正确!n”);
}
}
else
{
sum++;
printf(“回答正确!n”);
} } printf(“答对题数:%d 答错题数为:%5.2f%%n”,sum,(k-sum),(sum/(float)k*100));if((sum/(float)k)>=0.9){
printf(“恭喜您晋级了!n”);
add1();} else
{
printf(“抱歉您未能晋级n”);
tc();} } void add1()//十位数加法 { int x,y,i,k,j,sum=0;
%d 一次答对率
: float answer;printf(“请输入挑战的题量:”);scanf(“%d”,&k);for(i=1;i
srand((unsigned)time(0));
x=(rand()%90+10);
y=(rand()%90+10);
printf(“%d+%d=”,x,y);
scanf(“%f”,&answer);
if(answer!=(x+y))
{
j=1;
while(answer!=(x+y)&&j
{
printf(“答案错误,请输入正确答案:n”);
printf(“%d+%d=”,x,y);
scanf(“%f”,&answer);
j++;
}
if(j>=3)
{
printf(“正确答案:n”);
printf(“%fn”,answer=((float)x+(float)y));
}
else
{
printf(“回答正确!n”);
}
}
else
{
sum++;
printf(“回答正确!n”);
} } printf(“答对题数:%d 答错题数:为:%5.2f%%n”,sum,(k-sum),(sum/(float)k*100));if((sum/(float)k)
printf(“很抱歉,您降级了!回到第一级!n”);
add();} else
%d 一次答对率 {
printf(“恭喜您,顺利通关!n”);
tc();} } void sub()//个位数减法 { int x , y , i , k , j , sum=0;float answer;printf(“请输入挑战的题量:”);scanf(“%d”,&k);for(i=1;i
srand((unsigned)time(0));
loop: //配合goto转跳
{
x=(rand()%10);
y=(rand()%10);
}
if(x>=y)
{
printf(“%d-%d=”,x,y);
scanf(“%f”,&answer);
if(answer!=(x-y))
{
j=1;
while(answer!=(x-y)&&j
{
printf(“答案错误,请输入正确答案:n”);
printf(“%d-%d=”,x,y);
scanf(“%f”,&answer);
j++;
}
if(j>=3)
{
printf(“正确答案:n”);
printf(“%fn”,answer=((float)x-(float)y));
}
else
{
printf(“回答正确!n”);
}
}
else
{
sum++;
printf(“回答正确!n”);
}
}
else
goto loop;} printf(“答对题数:%d 答错题数:%d 为:%5.2f%%n”,sum,(k-sum),(sum/(float)k*100));if((sum/(float)k)>=0.9){
printf(“恭喜您晋级了!n”);
sub1();} else
{
printf(“抱歉您未能晋级!n”);
tc();} } void sub1()//十位数减法 { int x , y , i , k , j ,sum=0;float answer;printf(“请输入挑战的题量:”);scanf(“%d”,&k);for(i=1;i
srand((unsigned)time(0));
loop:
{
x=(rand()%90+10);
y=(rand()%90+10);
}
if(x>=y)
{
printf(“%d-%d=”,x,y);
scanf(“%f”,&answer);
if(answer!=(x-y))
{
j=1;
while(answer!=(x-y)&&j
一次答对率
{
printf(“答案错误,请输入正确答案:n”);
printf(“%d-%d=”,x,y);
scanf(“%f”,&answer);
j++;
}
if(j>=3)
{
printf(“正确答案:n”);
printf(“%fn”,answer=((float)x-(float)y));
}
else
{
printf(“回答正确!n”);
}
}
else
{
sum++;
printf(“回答正确!n”);
}
}
else
goto loop;
} printf(“答对题数:%d 答错题数:为:%5.2f%%n”,sum,(k-sum),(sum/(float)k*100));if((sum/(float)k)
printf(“很抱歉,您降级了!回到第一级!n”);
sub();} else
{
printf(“恭喜您,顺利通关!n”);
tc();} } void mul()//个位数乘法 { int x , y , k , i , j , sum=0;float answer;printf(“请输入挑战的题量:”);scanf(“%d”,&k);
%d 一次答对率 for(i=1;i
srand((unsigned)time(0));
x=(rand()%10);
y=(rand()%10);
printf(“%d*%d=”,x,y);
scanf(“%f”,&answer);
if(answer!=(x*y))
{
j=1;
while(answer!=(x*y)&&j
{
printf(“答案错误,请输入正确答案:n”);
printf(“%d*%d=”,x,y);
scanf(“%f”,&answer);
j++;
}
if(j>=3)
{
printf(“正确答案:n”);
printf(“%fn”,answer=((float)x*(float)y));
}
else
{
printf(“回答正确!n”);
}
}
else
{
sum++;
printf(“回答正确!n”);
} }
printf(“答对题数:%d 答错题数:为:%5.2f%%n”,sum,(k-sum),(sum/(float)k*100));if((sum/(float)k)>=0.9){
printf(“恭喜您晋级了!n”);
mul1();} else
{
printf(“抱歉您未能晋级!”);
tc();
%d 一次答对率 } } void mul1()//十位数乘法 { int x , y , i , k , j ,sum=0;float answer;printf(“请输入挑战的题量:”);scanf(“%d”,&k);for(i=1;i
srand((unsigned)time(0));
x=(rand()%90+10);
y=(rand()%90+10);
printf(“%d*%d=”,x,y);
scanf(“%f”,&answer);
if(answer!=(x*y))
{
j=1;
while(answer!=(x*y)&&j
{
printf(“答案错误,请输入正确答案:n”);
printf(“%d*%d=”,x,y);
scanf(“%f”,&answer);
j++;
}
if(j>=3)
{
printf(“正确答案:n”);
printf(“%fn”,answer=((float)x*(float)y));
}
else
{
printf(“回答正确!n”);
}
}
else
{
sum++;
printf(“回答正确!n”);
} } printf(“答对题数:%d 答错题数:为:%5.2f%%n”,sum,(k-sum),(sum/(float)k*100));if((sum/(float)k)
%d 一次答对率 {
printf(“很抱歉,您降级了!回到第一级!n”);
mul();} else
{
printf(“恭喜您,顺利通关!n”);
tc();} } void div()//个位数除法 { int x , y , i , k , j;int answer;int sum=0;printf(“请输入挑战的题量:”);scanf(“%d”,&k);for(i=1;i
srand((unsigned)time(0));
do
{
x=(rand()%10);
y=(rand()%10);
}
while(y==0||x%y!=0);
printf(“%d/%d=”,x,y);
scanf(“%d”,&answer);
if(answer!=(x/y))
{
j=1;
while(answer!=(x/y)&&j
{
printf(“答案错误,请输入正确答案:n”);
printf(“%d/%d=”,x,y);
scanf(“%f”,&answer);
j++;
}
if(j>=3)
{
printf(“正确答案:n”);
printf(“%fn”,answer=(x/y));
}
else
{
printf(“回答正确!n”);
}
}
else
{
sum++;
printf(“回答正确!n”);
} } printf(“答对题数:%d 答错为:%5.2f%%n”,sum,(k-sum),(sum/(float)k*100));if((sum/(float)k)>=0.9){
printf(“恭喜您晋级了!n”);
div1();} else
{
printf(“抱歉您未能晋级!”);
tc();} } void div1()//十位数除法 { int x , y , i , k , j , sum=0;int answer;printf(“请输入挑战的题量:”);scanf(“%d”,&k);for(i=1;i
srand((unsigned)time(0));
do
{
x=(rand()%90+10);
y=(rand()%90+10);
}
while(y==0||x%y!=0);
printf(“%d/%d=”,x,y);
scanf(“%d”,&answer);
if(answer!=(x/y))
{
j=1;
while(answer!=(x/y)&&j
题数:%d 一次答对率
{
printf(“答案错误,请输入正确答案:n”);
printf(“%d/%d=”,x,y);
scanf(“%f”,&answer);
j++;
}
if(j>=3)
{
printf(“正确答案:n”);
printf(“%fn”,answer=(x/y));
}
else
{
printf(“回答正确!n”);
}
}
else
{
sum++;
printf(“回答正确!n”);
} }
printf(“答对题数:%d 答错题数为:%5.2f%%n”,sum,(k-sum),(sum/(float)k*100));if((sum/(float)k)
printf(“很抱歉,您降级了!回到第一级!n”);
div();} else
{
printf(“恭喜您,顺利通关!n”);
tc();} } void tc()//退出函数 { int h;printf(“
是否继续挑战?n”);printf(“
Yes(0)继续挑战,No(1)结束!n”);scanf(“%d”,&h);if(h>9||h
printf(“输入错误!请重新输入!n”);
%d 一次答对率
:
} printf(“是否继续挑战?n”);printf(“Yes(0)继续挑战,No(1)结束!n”);scanf(“%d”,&h);} switch(h){ case 0: cd();break;case 1: printf(“游戏结束!n”);break;default:tc();}