//需要使用的头文件
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
/*全局变量 用来存放设置*/
int chioce=1;//出题方式
int num=10;//题目总数
int add_range=10;//加法上限数
int sub_range=10;//减法上限
int minus_sign=0;//0为﹢ 1为- 相减结果是否可以为-
int sub_sign=0;//加减标志 0为+ 1为-
int mul_range=10;//乘法上限
void test()
{
int i,a,b,c;
int true_num=0;
system("cls");
switch(chioce)
{
case 1:
case 2:
srand(time(NULL));
for(i=0;i<num;i++)
{
a=rand()%add_range;
b=rand()%add_range;
printf("%d+%d=?\n",a,b);
scanf("%d",&c);
if(c==a+b)
{
true_num++;
}
}
break;
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
srand(time(NULL));
for(i=0;i<num;i++)
{
a=rand()%sub_range;
b=rand()%sub_range;
if(minus_sign==1)
{
printf("%d-%d=?\n",a,b);
scanf("%d",&c);
if(c==a-b)
{
true_num++;
}
}
if(minus_sign==0)
{
while(a-b<0)
{
a=rand()%sub_range;
b=rand()%sub_range;
}
printf("%d-%d=?\n",a,b);
scanf("%d",&c);
if(c==a-b)
{
true_num++;
}
}
}
break;
case 9:
case 10:
srand(time(NULL));
for(i=0;i<num;i++)
{
a=rand()%mul_range;
b=rand()%10;
printf("%d*%d=?\n",a,b);
scanf("%d",&c);
if(c==a*b)
{
true_num++;
}
}
break;
}
printf("你的正确率为:%.2f\n",(float)true_num/num);
system("pause");
}
/*菜单函数 显示*/
int menu()
{
int n;
system("cls");//清屏
printf("1:测试\n");
printf("2:设置\n");
printf("3:当前设置\n");
printf("0:退出\n");
scanf("%d",&n);
while(n<0||n>3)
{
printf("范围不正确,请重新输入\n");
scanf("%d",&n);
}
return n;
}
void Set_num()
{
int n;
do
{
system("cls");//清屏
printf("1:10题\n");
printf("2:20题\n");
printf("0:退出\n");
scanf("%d",&n);
while(n<0||n>2)
{
printf("范围不正确,请重新输入\n");
scanf("%d",&n);
}
switch(n)
{
case 1:
num=10;
break;
case 2:
num=20;
break;
}
}while(n!=0);
}
void Set_style()
{
int n;
do
{
system("cls");//清屏
printf("1:10以内的数相加\n");
printf("2:100以内的数相加\n");
printf("3:10以内的数相减\n");
printf("4:10以内的数相减(容许结果为负)\n");
printf("5:100以内的数相减\n");
printf("6:100以内的数相减(容许结果为负)\n");
printf("7:相加相减混合运算\n");
printf("8:相加相减混合运算(容许结果为负)\n");
printf("9:10以内的数相乘\n");
printf("10:100以内的数与10以内的数相乘\n");
printf("0:退出\n");
scanf("%d",&n);
while(n<0||n>10)
{
printf("范围不正确,请重新输入\n");
scanf("%d",&n);
}
switch(n)
{
case 1:
chioce=1;
add_range=10;
break;
case 2:
chioce=2;
add_range=100;
break;
case 3:
chioce=3;
sub_range=10;
minus_sign=0;
break;
case 4:
chioce=4;
sub_range=10;
minus_sign=1;
break;
case 5:
chioce=5;
sub_range=100;
minus_sign=0;
break;
case 6:
chioce=6;
sub_range=100;
minus_sign=1;
break;
case 7:
chioce=7;
minus_sign=0;
break;
case 8:
chioce=8;
minus_sign=1;
break;
case 9:
chioce=9;
mul_range=10;
break;
case 10:
chioce=10;
mul_range=100;
break;
}
}while(n!=0);
}
void Set()
{
int n;
do
{
system("cls");//清屏
printf("1:设置题目数\n");
printf("2:设置题型\n");
printf("3:退出\n");
scanf("%d",&n);
while(n<1||n>3)
{
printf("范围不正确,请重新输入\n");
scanf("%d",&n);
}
switch(n)
{
case 1:
Set_num();
break;
case 2:
Set_style();
break;
}
}while(n!=3);
}
void Print_Set()
{
system("cls");
printf("总题量为:%d题\n",num);
switch(chioce)
{
case 1:
printf("10以内的数相加\n");
break;
case 2:
printf("100以内的数相加\n");
break;
case 3:
printf("10以内的数相减\n");
break;
case 4:
printf("10以内的数相减(容许结果为负)\n");
break;
case 5:
printf("100以内的数相减\n");
break;
case 6:
printf("100以内的数相减(容许结果为负)\n");
break;
case 7:
printf("相加相减混合运算\n");
break;
case 8:
printf("相加相减混合运算(容许结果为负)\n");
break;
case 9:
printf("10以内的数相乘\n");
break;
case 10:
printf("100以内的数与10以内的数相乘\n");
break;
}
system("pause");
}
int main()
{
int n;
do
{
n=menu();
switch(n)
{
case 1:
test();
break;
case 2:
Set();
break;
case 3:
Print_Set();
break;
}
}while(n!=0);
return 0;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交