问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用C语言编写一个简单的"小学数学测试系统"

发布网友 发布时间:2022-05-03 10:01

我来回答

1个回答

热心网友 时间:2023-10-20 09:13

include <stdio.h> /* 调用库函数 */
#include <stdlib.h> /* 调用库函数 */
int Tha; /* 变量 表示第一个运算数 */
int Thb; /* 第二个运算数 */
int Tresult; /* 正确答案 */
int Qcount; /* 题目的个数 */
int Upnum; /* 升级的分数 */
int Tscore; /* 当前得分 */
char op; /* 运算符号 */

TestTen() /* 出第一个级别题的函数 */
{
int Userda; /* 用户给出的答案 */
int temp; /* 临时变量,用于交换两个变量得值 */

op=random(4)+1; /* 产生一个1-4之间的随机数,用于表示+ ,- , * , / */

switch(op) /* 判断运算符是什么 */
{
case 1: /* 加 的情况 */
{ Tha=random(10); /* 产生一个0-9之间的随机数 放在第一个运算数 Tha中 */
Thb=random(10); /* 产生一个0-9之间的随机数 放在第二个运算数 Thb中 */
Tresult=Tha+Thb;break; /* 计算出正确答案 放在 Tresult中 */
}
case 2: /* 减 的情况 */
{ Tha=random(10);
Thb=random(10);
if(Tha<Thb) /* 减不能的负 所以第一个运算数要比第二个大,如果小,则交换两变量的值 */
{temp=Tha;Tha=Thb;Thb=temp;} /* 交换 */
Tresult=Tha-Thb;break; /* 计算出正确答案 放在 Tresult中 */
}
case 3: /* 乘 的情况 */
{ Tha=random(10);
Thb=random(10);
Tresult=Tha*Thb;break;
}
case 4: /* 除 的情况 */
{do /* 循环 保证可以除尽 */
{ do /* 循环保证 除数不为 0 */
{Tha=random(10);
Thb=random(10);

if(Tha<Thb)
{temp=Tha;Tha=Thb;Thb=temp;}

}while(Thb==0) ; /* 当除数0 的时候继续产生新的随机数 */
}while((Tha%Thb)!=0); /* 当不能整除的时候继续产生新的随机数 */
Tresult=Tha/Thb;
break;
}
}

switch(op) /* 根据 op的值决定输出 问题 */
{
case 1: {printf("\n%d + %d = ",Tha,Thb);break;}
case 2: {printf("\n%d - %d = ",Tha,Thb);break;}
case 3: {printf("\n%d X %d = ",Tha,Thb);break;}
case 4: {printf("\n%d / %d = ",Tha,Thb);}
}

scanf("%d",&Userda); /* 用户输入答案 */

while(Userda!=Tresult) /* 判断答案是否正确 */
{ if(Tscore>=10) /* 不正确减分 */
Tscore=Tscore-10;
printf("\nWrong! Now Your Score: %d",Tscore); /* 输出错误信息和 当前分数 */
/*if(Tscore<Upnum)
return; */
printf("\n Input The Answer Again: "); /* 提示重新输入 */
scanf("%d",&Userda); /* 用户输入答案 */
}

Tscore=Tscore+10; /* 答对了 加分 */
printf("\n Right! Now Your Score: %d",Tscore); /* */
}

TestHun() /*出第二个级别题的函数*/
{
int Userda;
int temp;

op=random(4)+1;

switch (op)
{
case 1:
{ Tha=random(90)+10; /* 产生 10-99 之间的随机数,即两位数 */
Thb=random(90)+10;
Tresult=Tha+Thb;break;
}
case 2:
{ Tha=random(90)+10;
Thb=random(90)+10;
if(Tha<Thb)
{temp=Tha;Tha=Thb;Thb=temp;}
Tresult=Tha-Thb;break;
}
case 3:
{ Tha=random(90)+10;
Thb=random(90)+10;
Tresult=Tha*Thb;break;
}
case 4:
{do
{ do
{Tha=random(90)+10;
Thb=random(90)+10;

if(Tha<Thb)
{temp=Tha;Tha=Thb;Thb=temp;}

}while (Thb==0) ;
}while ((Tha%Thb)!=0);
Tresult=Tha/Thb;
break;
}
}

switch(op)
{
case 1: {printf("\n%d + %d = ",Tha,Thb);break;}
case 2: {printf("\n%d - %d = ",Tha,Thb);break;}
case 3: {printf("\n%d X %d = ",Tha,Thb);break;}
case 4: {printf("\n%d / %d = ",Tha,Thb);}
}

scanf("%d",&Userda);

while(Userda!=Tresult)
{ if(Tscore>=10)
Tscore=Tscore-10;
printf("\nWrong! Now Your Score: %d",Tscore);
if(Tscore<Upnum) /* 如果分数小于设定的分数则直接推出函数 */
return;
printf("\n Input The Answer Again: ");
scanf("%d",&Userda);
}

Tscore=Tscore+10;
printf("\n Right! Now Your Score: %d",Tscore);

}

main()
{
int Leiji=0; /* 变量 , 存储 累计答题数目 */
randomize(); /* 保证每次运行程序 产生的随机数序列不相同的语句 */
clrscr(); /* 清屏 : 清除屏幕上上次运行的内容,重新开始运行程序 */
clrscr();
printf("\nTEST START:-------------------------------------");
printf("\n Please Input Question Count: "); /* 提示信息 :输入问题个数 */
scanf("%d",&Qcount); /* 用户输入问题个数 */

do
{printf("\n Please Input UpLevel Score(Times of 10 (Sheng ji de fen shu;)) : ");
/* 提示信息 :输入升级分数(10的倍数 ) */
scanf("%d",&Upnum); /* 用户输入升级分数 */
if(Upnum<10) /* 如果用户输入的升级分数<10 */
printf("\n Must > = 10 ! ");
else if(Upnum%10!=0) /* 如果用户输入的升级分数不是10的倍数 :即 整除10 不等于0 */
printf("\n Must Some Times of 10!(10 de bei shu!)"); /* */
else break;
}while(1); /* 不满足条件永远循环 */

printf("\n--------------------------------------------------------");
printf("\n--------------------------------------------------------"); printf("\nTest Start:");
printf("\n--------------------------------------------------------");
printf("\n----------------------------------");
printf("\n Lever 1 Start :");

Begin1:

printf("\n----------------------");
printf("\n Question: %d",Leiji+1); /* 输出 题号 */
TestTen();
Leiji++;

if(Leiji==Qcount) /* 如果做题个数 和 事先设定好的问题个数相同 则结束答题! */
{ printf("\n--------------------------------------------------------");
printf("\n--------------------------------------------------------\n");
printf("\n Test Over!!!\n");
printf("\n--------------------------------------------------------");
printf("\n Your Final Score: %d",Tscore);
if(Tscore>=Upnum)
printf("\n Your Final Level: LEVEL 2");
else
printf("\n Your Final Level: LEVEL 1");
goto LastLine;
}
if(Tscore<Upnum) /* 分数 小于 升级分数 */
goto Begin1; /* 转向到 Begin1 继续作题 */
printf("\n Up To Advance Level!\n Lever2 Start :---------"); /* 达到升级分数 升级到 Level2 */

Begin2:

printf("\n----------------------");
printf("\n Question: %d",Leiji+1);

TestHun();
Leiji++;

if(Leiji==Qcount)
{ printf("\n--------------------------------------------------------");
printf("\n--------------------------------------------------------\n");
printf("\n Test Over!!!\n");
printf("\n--------------------------------------------------------");
printf("\n Your Final Score: %d",Tscore);
if(Tscore>=Upnum)
printf("\n Your Final Level: LEVEL 2");
else
printf("\n Your Final Level: LEVEL 1");
goto LastLine;
}

if(Tscore<Upnum)
{printf("\nDown To Normal Level! Lever1 : -------"); /* 从Level2答题过程中分数小于升级分数 降级到Level 1 继续答题 */
goto Begin1;}
else
goto Begin2;

LastLine:
printf("\n------------------------------------------------") ;
getchar();getchar(); /* 等待用户输入回车结束程序运行 */
}


热心网友 时间:2023-10-20 09:13

include <stdio.h> /* 调用库函数 */
#include <stdlib.h> /* 调用库函数 */
int Tha; /* 变量 表示第一个运算数 */
int Thb; /* 第二个运算数 */
int Tresult; /* 正确答案 */
int Qcount; /* 题目的个数 */
int Upnum; /* 升级的分数 */
int Tscore; /* 当前得分 */
char op; /* 运算符号 */

TestTen() /* 出第一个级别题的函数 */
{
int Userda; /* 用户给出的答案 */
int temp; /* 临时变量,用于交换两个变量得值 */

op=random(4)+1; /* 产生一个1-4之间的随机数,用于表示+ ,- , * , / */

switch(op) /* 判断运算符是什么 */
{
case 1: /* 加 的情况 */
{ Tha=random(10); /* 产生一个0-9之间的随机数 放在第一个运算数 Tha中 */
Thb=random(10); /* 产生一个0-9之间的随机数 放在第二个运算数 Thb中 */
Tresult=Tha+Thb;break; /* 计算出正确答案 放在 Tresult中 */
}
case 2: /* 减 的情况 */
{ Tha=random(10);
Thb=random(10);
if(Tha<Thb) /* 减不能的负 所以第一个运算数要比第二个大,如果小,则交换两变量的值 */
{temp=Tha;Tha=Thb;Thb=temp;} /* 交换 */
Tresult=Tha-Thb;break; /* 计算出正确答案 放在 Tresult中 */
}
case 3: /* 乘 的情况 */
{ Tha=random(10);
Thb=random(10);
Tresult=Tha*Thb;break;
}
case 4: /* 除 的情况 */
{do /* 循环 保证可以除尽 */
{ do /* 循环保证 除数不为 0 */
{Tha=random(10);
Thb=random(10);

if(Tha<Thb)
{temp=Tha;Tha=Thb;Thb=temp;}

}while(Thb==0) ; /* 当除数0 的时候继续产生新的随机数 */
}while((Tha%Thb)!=0); /* 当不能整除的时候继续产生新的随机数 */
Tresult=Tha/Thb;
break;
}
}

switch(op) /* 根据 op的值决定输出 问题 */
{
case 1: {printf("\n%d + %d = ",Tha,Thb);break;}
case 2: {printf("\n%d - %d = ",Tha,Thb);break;}
case 3: {printf("\n%d X %d = ",Tha,Thb);break;}
case 4: {printf("\n%d / %d = ",Tha,Thb);}
}

scanf("%d",&Userda); /* 用户输入答案 */

while(Userda!=Tresult) /* 判断答案是否正确 */
{ if(Tscore>=10) /* 不正确减分 */
Tscore=Tscore-10;
printf("\nWrong! Now Your Score: %d",Tscore); /* 输出错误信息和 当前分数 */
/*if(Tscore<Upnum)
return; */
printf("\n Input The Answer Again: "); /* 提示重新输入 */
scanf("%d",&Userda); /* 用户输入答案 */
}

Tscore=Tscore+10; /* 答对了 加分 */
printf("\n Right! Now Your Score: %d",Tscore); /* */
}

TestHun() /*出第二个级别题的函数*/
{
int Userda;
int temp;

op=random(4)+1;

switch (op)
{
case 1:
{ Tha=random(90)+10; /* 产生 10-99 之间的随机数,即两位数 */
Thb=random(90)+10;
Tresult=Tha+Thb;break;
}
case 2:
{ Tha=random(90)+10;
Thb=random(90)+10;
if(Tha<Thb)
{temp=Tha;Tha=Thb;Thb=temp;}
Tresult=Tha-Thb;break;
}
case 3:
{ Tha=random(90)+10;
Thb=random(90)+10;
Tresult=Tha*Thb;break;
}
case 4:
{do
{ do
{Tha=random(90)+10;
Thb=random(90)+10;

if(Tha<Thb)
{temp=Tha;Tha=Thb;Thb=temp;}

}while (Thb==0) ;
}while ((Tha%Thb)!=0);
Tresult=Tha/Thb;
break;
}
}

switch(op)
{
case 1: {printf("\n%d + %d = ",Tha,Thb);break;}
case 2: {printf("\n%d - %d = ",Tha,Thb);break;}
case 3: {printf("\n%d X %d = ",Tha,Thb);break;}
case 4: {printf("\n%d / %d = ",Tha,Thb);}
}

scanf("%d",&Userda);

while(Userda!=Tresult)
{ if(Tscore>=10)
Tscore=Tscore-10;
printf("\nWrong! Now Your Score: %d",Tscore);
if(Tscore<Upnum) /* 如果分数小于设定的分数则直接推出函数 */
return;
printf("\n Input The Answer Again: ");
scanf("%d",&Userda);
}

Tscore=Tscore+10;
printf("\n Right! Now Your Score: %d",Tscore);

}

main()
{
int Leiji=0; /* 变量 , 存储 累计答题数目 */
randomize(); /* 保证每次运行程序 产生的随机数序列不相同的语句 */
clrscr(); /* 清屏 : 清除屏幕上上次运行的内容,重新开始运行程序 */
clrscr();
printf("\nTEST START:-------------------------------------");
printf("\n Please Input Question Count: "); /* 提示信息 :输入问题个数 */
scanf("%d",&Qcount); /* 用户输入问题个数 */

do
{printf("\n Please Input UpLevel Score(Times of 10 (Sheng ji de fen shu;)) : ");
/* 提示信息 :输入升级分数(10的倍数 ) */
scanf("%d",&Upnum); /* 用户输入升级分数 */
if(Upnum<10) /* 如果用户输入的升级分数<10 */
printf("\n Must > = 10 ! ");
else if(Upnum%10!=0) /* 如果用户输入的升级分数不是10的倍数 :即 整除10 不等于0 */
printf("\n Must Some Times of 10!(10 de bei shu!)"); /* */
else break;
}while(1); /* 不满足条件永远循环 */

printf("\n--------------------------------------------------------");
printf("\n--------------------------------------------------------"); printf("\nTest Start:");
printf("\n--------------------------------------------------------");
printf("\n----------------------------------");
printf("\n Lever 1 Start :");

Begin1:

printf("\n----------------------");
printf("\n Question: %d",Leiji+1); /* 输出 题号 */
TestTen();
Leiji++;

if(Leiji==Qcount) /* 如果做题个数 和 事先设定好的问题个数相同 则结束答题! */
{ printf("\n--------------------------------------------------------");
printf("\n--------------------------------------------------------\n");
printf("\n Test Over!!!\n");
printf("\n--------------------------------------------------------");
printf("\n Your Final Score: %d",Tscore);
if(Tscore>=Upnum)
printf("\n Your Final Level: LEVEL 2");
else
printf("\n Your Final Level: LEVEL 1");
goto LastLine;
}
if(Tscore<Upnum) /* 分数 小于 升级分数 */
goto Begin1; /* 转向到 Begin1 继续作题 */
printf("\n Up To Advance Level!\n Lever2 Start :---------"); /* 达到升级分数 升级到 Level2 */

Begin2:

printf("\n----------------------");
printf("\n Question: %d",Leiji+1);

TestHun();
Leiji++;

if(Leiji==Qcount)
{ printf("\n--------------------------------------------------------");
printf("\n--------------------------------------------------------\n");
printf("\n Test Over!!!\n");
printf("\n--------------------------------------------------------");
printf("\n Your Final Score: %d",Tscore);
if(Tscore>=Upnum)
printf("\n Your Final Level: LEVEL 2");
else
printf("\n Your Final Level: LEVEL 1");
goto LastLine;
}

if(Tscore<Upnum)
{printf("\nDown To Normal Level! Lever1 : -------"); /* 从Level2答题过程中分数小于升级分数 降级到Level 1 继续答题 */
goto Begin1;}
else
goto Begin2;

LastLine:
printf("\n------------------------------------------------") ;
getchar();getchar(); /* 等待用户输入回车结束程序运行 */
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
信和财富p2p回款怎样?想做理财,有做过的吗?谢谢 想当飞行员高中学文理哪个好 用迅雷下载的电影中带有srt格式idx格式和sub格式的字幕怎么导入... 酸汤乌鱼的做法 四川的酸汤乌鱼的做法 酸汤乌鱼片的做法 用烤箱弄蛋白糖的做法 入口即化蛋白糖怎么做好吃 ...3000元的手机,我比较喜欢触屏机,有什么牌子介绍,最好是功能强大的... 蓝魔T11TE能播放超过4G的视频文件吗?(比如720P和1080P) 我想举报公司偷税漏税,应该去哪里举报,和需要什么资料 举报公司偷税漏税没有证据怎么办? 湖南质量认证体系证书编号是43开头吗? ISO9100认证证书编号时候怎么构成的 青岛做iso认证咨询的公司哪一个比较好?急!! 青岛ISO认证咨询公司 青岛企业申请iso14000认证需要满足的条件有哪 山东青岛怎么考iso认证证书 青岛有没有做离岸户ISO90认证的机构 在青岛去哪做ISO9000、CE认证比较好? 请问青岛做ISO20000的认证去哪里好? 青岛哪有做ISO9000认证、培训的? 青岛iso9000认证需要多少钱 申请青岛ISO14001认证需要提交哪些材料 OPPOR9的小视频怎么才能调到前置摄像头 oppor9照相前摄像头怎么用不了 oppo r9s前摄像头虚化模式是怎么开? OPPOr9前置摄像头不可用是怎么回事 oppor9s前摄像头虚化模式是怎么开 OPPOR9手机前置摄像头不可用是怎么回事 小学生数学测试系统c++ C语言程序设计课程小学数学测试系统 小学数学运算测试系统设计 求一个C语言编写的小学数学测试系统,要求有加法,减法,乘法,除法,四则混合运算,试卷共六个部分。 设计课题五:小学数学测试系统 图形化界面(GUI)编程,开发一个数学运算(加减)测评系统 c++跪求!!!小学生四则运算测试系统(C++编写) 小学数学无纸化模拟考试系统下载网址 学生在线考试用什么考试系统好? 银符考试系统中研究生入学考试数学一真题有多少套 当兵数学测试题多少算合格 需要一个题库软件,要能自己录入题库并且可以在软件上自主测试的 舞阳县太平阳保险上班时间 oppo最新款手机360度旋转摄像头 oppo360度摄像头那个手机 oppo那款手机是2600还是360°摄像头 oppo360度旋转手机代言人 oppo360摄像头会不会很容易坏掉 形容彝族姑娘美怎么说 描述姑娘的唯美句子