#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<Windows.h>
void show1(); .//开始界面
int getchoice(); //选择界面
int dowork(int n); //随机做乘除法
int num(); //用户确定做题的数量
void print(int s,int n); //打印得分以及评价
void show1() //开始界面
{
printf("****************************************\n");
printf("| |\n");
printf("| 欢迎使用整数乘除法练习器 |\n");
printf("| |\n");
printf("| 1. 开始 |\n");
printf("| 2. 退出 |\n");
printf("| |\n");
printf("| 请选择: |\n");
printf("| |\n");
printf("****************************************\n");
}
int getchoice()
{
int a;
scanf("%d",&a);
return a;
}
int num() //题量获取
{
int n;
printf("请输入要做的题目数:\n");
scanf("%d",&n);
return n;
}
int dowork(int n) //练习模块
{
int a,b,c,d,e,i,s=0,x=0,y=0;
srand((int)time(NULL)); //产生不同随机数
for(i=0;i<n;i++)
{
e=rand()%2; //随机产生0或1,来控制随机是乘法(0)还是除法(1)
a=rand()%100; //产生100以内的随机数并赋值
b=rand()%100;
if(e==0) //乘法
{
if(a*b<100)
{
printf("%d*%d=",a,b);
scanf("%d",&d);
if(a*b==d)
{
printf("正确!\n");
s+=10;
x++;
}
else
{
printf("错误!\n");
y++;
}
}
else
{
n++;
continue;
}
}
if(e==1) //除法
{
if(b!=0&&a%b==0) //b(分母)不能为零,无意义
{
printf("%d/%d=",a,b);
scanf("%d",&c);
if(a/b==c)
{
printf("正确!\n");
s+=10;
x++;
}
else
{
printf("错误!\n");
y++;
}
}
else
{
n++;
continue;
}
}
}
printf("您一共做了%d道题,其中正确%d道,错误%d道\n",x+y,x,y);
return s;
}
void print(int s,int n) //根据百分比输出结果及评语
{
printf("您的得分是:%d\n",s);
if(s/10/n<0.6) //正确率60%以下
printf("成绩不及格.\n请努力!\n");
if(s/10/n>=0.6&&s/10/n<0.8) //正确率60%到80%
printf("成绩及格.\n请加油!");
if(s/10/n>=0.8) //正确率80%以上
printf("成绩优秀.\n再接再厉!\n");
}
int main()
{
int a,n1,n2,s;
L: show1();
a=getchoice();
if(a==1)
{
system("cls"); //清屏代码
n1=n2=num();
printf("Let's go!!!\n");
}
else if(a==2)
{
system("cls");
printf("谢谢使用!\n");
return 0;
}
s=dowork(n1);
print(s,n2);
Sleep(4000); //延迟4秒(引用库函数Windows.h)
goto L; //跳转到 L 标签
}
主界面:
正确提示:
错误提示: