#include
//标准输入输出
#include
//用于对程序进行退出操作
#include
//用于计时和随机数的产生
char YN;
enum{N,Y}; //录入用户选择
int x;
int
toSystem(int []); //函数声明
int
foreWord(int []); //函数声明
int
menu();
int
main()
{
int name[20]; //存储小学生姓名
toSystem(name); //起始界面
foreWord(name); //前言界面
menu(name); //主菜单
}
int
toSystem(int vals[])
{
printf("\t\t\t\tC语言程序设计案例\n");
printf("\t\t\t-----------------------------------------\n");
printf("\t\t\t\t名称:小学生算数自测系统\n");
printf("\t\t\t\t工具:Code::Blocks\n");
printf("\t\t\t\t作者:李安瑞\n");
printf("\t\t\t-----------------------------------------\n");
printf("\t\t\t\t请输入你的名字:");
scanf("%s",vals);
printf("\t\t\t\tYour name is %s,do you
want to the next?\n");
printf("\t\t\t\t如果你想继续,输入Y,想退出就输入N\t");
scanf("%c %c",&x,&YN);
if(YN)
{
system("cls"); //清屏
}else{exit(1);}; //退出
}
int
foreWord(int vals[])
{
printf("\t\t\t\t前言\n");
printf(" %s同学,你好,欢迎使用【小学生算数自测系统】,本程序以全菜单形式实现了以下功能;\n",vals);
printf("小学生的加法,减法,乘法和除法。\n");
printf(" 出于方便考虑,我们为您添加了退出选项\n");
printf(" 本程序若在执行中有问题,欢迎您批评指正!");
printf("\n 您的宝贵意见是我们的不竭动力!");
printf("\n温馨提示:小朋友在做题之前可以选择菜单5,了解一下测试规则。");
printf("\n 测试结束后可以选择菜单6对本次测试进行打分");
printf("\n\t\t\t\t如果你想继续,输入Y,想退出就输入N\t");
scanf("%c %c",&x,&YN);
if(YN)
{
system("cls");
}else{exit(1);};
}
int
menu()
{
int add();
int sub();
int dive();
int mul();
int exc();
int inform();
int choose;
printf("小朋友,欢迎你来到小学算数\n"); //用户选择
printf("\t\t\t\t1.加法\n");
printf("\t\t\t\t2.减法\n");
printf("\t\t\t\t3.乘法\n");
printf("\t\t\t\t4.除法\n");
printf("\t\t\t\t5.说明\n");
printf("\t\t\t\t6.评价\n");
printf("\t\t\t\t0.退出\n");
printf("请选择:");
scanf("%d",&choose);
system("cls");
switch(choose)
{
case 0:exit (1) ;
case 1:add();
case 2:sub();
case 3:mul();
case 4:dive();
case 5:inform();
case 6:exc();
}
}
int add()
{
int start,end;
start=time(NULL);
//起始时间
void rank(int,float);
int i,tnum,rand1,rand2,yours;
float ranks=0.0;
printf("请选择题目数量<建议在20题左右>:");
scanf("%d",&tnum);
for(i=0;i
go();
//是否进入菜单栏
}
int sub()
{
int start,end;
start=time(NULL);
void rank(int,float);
int i,tnum,rand1,rand2,yours;
float ranks=0.0;
printf("请选择题目数量<建议在20题左右>:");
//数组实现
scanf("%d",&tnum);
for(i=0;irand2)
{
printf("%d-%d=",rand1,rand2);
scanf("%d",&yours);
if (yours==rand1-rand2)
ranks++; //计入答对题的个数
}
else
{
printf("%d-%d=",rand2,rand1);
scanf("%d",&yours);
if (yours==rand2-rand1)
ranks++;
};
}
end=time(NULL);
printf("\t时间是%d\n",end-start);
rank(tnum,ranks);
go();
}
int mul()
{
void rank(int,float);
int i,j,tnum,rand1,rand2,yours;
float ranks=0.0;
for(j=0;j<3;j++)
{
if(j==0)
printf("第一关");
if(j==1)
printf("第二关");
if(j==2)
printf("第三关");
printf("\n请选择题目数量<建议在20题左右>:");
scanf("%d",&tnum);
for(i=0;i
{printf(“闯关失败!\n”);go();}
//有一题错误即失败
}
if(j==0)
printf("恭喜通过第一关!\n");
if(j==1)
printf("恭喜通过第二关!!\n");
if(j==2)
printf("恭喜通全关!!!\n");
}
go();
}
int
dive()
{
void rank(int,float);
int i,j,tnum,rand1,rand2,yours;
float ranks=0.0;
for(j=0;j<3;j++)
{
if(j==0)
printf("第一关");
if(j==1)
printf("第二关");
if(j==2)
printf("第三关");
printf("\n请选择题目数量<建议在20题左右>:");
scanf("%d",&tnum);
for(i=0;i
{printf(“闯关失败!\n”);go();}
}
if(j==0)
printf("恭喜通过第一关!\n");
if(j==1)
printf("恭喜通过第二关!!\n");
if(j==2)
printf("恭喜通全关!!!\n");
}
go();
}
void
rank(int tnum,float ranks)
{
printf("\n你答对了%5.0f题\n",ranks);
float average;
average = 100.0/tnum;
ranks*=average;
int integer;
integer=ranks;
if(integer==ranks)
printf("你的成绩是%d\n你的等级是",integer);
else
printf("你的成绩是%d\n你的等级是",integer+1);
if(integer<60)
{printf("D");}
else if(integer<75)
{printf("C");}
else if(integer<90)
{printf("B");}
else
{printf("A");};
}
void go()
//清屏选项
{
printf("\n\t\t\t\t如果你想继续,输入Y,想退出就输入N\t");
scanf("%c %c",&x,&YN);
if(YN)
{
system("cls");
menu();
}else{exit(1);};
}
int
inform()
{
printf("这个系统共有四个功能,分别为简单的加减乘除\n");
printf("其中加减法我们采取打分和评等级制\n");
printf("乘除法我们采取过关的方式\n");
printf("注:总分100,每小题的分数为总分除以题量,等级为A,B,C,D\n");
printf("关卡难度由随机数产生\n");
printf("制作者:李安瑞 日期:2018/12/16\n");
go();
}
int exc()
{
int ccc;
printf("请对系统进行评价哦,嘤嘤嘤~~~\n");
printf("请对系统打分(0--10):");
scanf("%d",&ccc);
printf("\n谢谢您的参与");
}