#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 标签
}
主界面:
正确提示:
错误提示: