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

这是一个使用C语言编写的程序,它创建了一个小学数学测试系统,包含加减乘除四种运算。用户可以设置题目数量和升级分数,系统会生成相应难度级别的题目,并根据用户回答情况调整分数。如果分数达到升级标准,用户将进入更难的级别;反之,如果分数下降,用户会被降级到较低的级别。程序通过随机数生成题目,并检查用户答案的正确性,提供反馈并允许重新答题。
摘要由CSDN通过智能技术生成

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

來源:互聯網  2010-05-17 14:12:03  評論

分類: 電腦/網絡

問題描述:

要思路,要原程序代码,要注示.

本人C语言知识水有限.

參考答案:

include /* 调用库函数 */

#include /* 调用库函数 */

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

{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

{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

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

{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

{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

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

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

{printf("\nDown To Normal Level! Lever1 : -------"); /* 从Level2答题过程中分数小于升级分数 降级到Level 1 继续答题 */

goto Begin1;}

else

goto Begin2;

LastLine:

printf("\n------------------------------------------------") ;

getchar();getchar(); /* 等待用户输入回车结束程序运行 */

}

[b]分类:[/b] 电脑/网络[br][b]问题描述:[/b][br]要思路,要原程序代码,要注示.

本人C语言知识水有限.[br][b]参考答案:[/b][br]include /* 调用库函数 */

#include /* 调用库函数 */

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

{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

{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

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

{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

{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

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

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

{printf("\nDown To Normal Level! Lever1 : -------"); /* 从Level2答题过程中分数小于升级分数 降级到Level 1 继续答题 */

goto Begin1;}

else

goto Begin2;

LastLine:

printf("\n------------------------------------------------") ;

getchar();getchar(); /* 等待用户输入回车结束程序运行 */

}

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值