|
|
#include<stdlib.h>
|
|
|
#include<stdio.h>
|
|
|
#include<time.h> //产生随机数的库函数
|
|
|
#include<windows.h> //关于界面背景颜色,字体颜色的库函数
|
|
|
int main(void)
|
|
|
{
|
|
|
system(" color B4 "); //界面背景颜色,字体颜色核心
|
|
|
|
|
|
printf("*☆☆☆☆☆☆☆小学数学测试软件☆☆☆☆☆☆☆☆☆*\n") ;
|
|
|
printf(" 小学生测验正式开始\n");
|
|
|
int i,j,M=2,A,B,WE=0,C,SCORE=0,D,te,y;
|
|
|
char X[2]={'+','-'};
|
|
|
|
|
|
srand(( int )time( 0 )); //得到不同的随机数;time(0)表示秒数不进行存储
|
|
|
|
|
|
for(i=1 ; i<=10 ; i++) //产生十道例题;程序核心
|
|
|
{
|
|
|
|
|
|
D=rand()%2; //取随机数
|
|
|
A=rand()%50; //产生一个0-50的随机int数
|
|
|
B=rand()*50/32767; //与上一行的两种不同表达形式
|
|
|
|
|
|
if( D == 0 )
|
|
|
{ WE = A+B;}
|
|
|
else
|
|
|
{ WE = A-B;}
|
|
|
|
|
|
if( WE >= 0 && WE <= 50 ) //保证例题难度,在小学生能力范围之内
|
|
|
{
|
|
|
j=2; M=1;
|
|
|
|
|
|
printf("\n第(%d)道题目\n",i); //视觉界面排序;显示核心
|
|
|
printf("%8d\n",A);
|
|
|
printf(" %c\n",X[D]);
|
|
|
printf("%8d\n",B);
|
|
|
printf("===========\n");
|
|
|
|
|
|
printf("请输入正确答案 "); //类似于智能对话框
|
|
|
scanf("%d",&C);
|
|
|
|
|
|
if( WE == C )
|
|
|
|
|
|
{
|
|
|
y=1;
|
|
|
printf("\n结果:你输入的答案正确! \n\n"); //共有三次输入机会
|
|
|
if(y=1)
|
|
|
{
|
|
|
printf("**********************************************************************************************************\n");
|
|
|
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n\n");
|
|
|
} //第一次机会
|
|
|
SCORE+=10; //总共十道题每题十分;第一次输入正确答案得10分
|
|
|
//将得到的分数进行累加
|
|
|
}
|
|
|
|
|
|
else
|
|
|
{
|
|
|
while( j <= 3 )
|
|
|
{
|
|
|
printf("\n答案错误,请重新输入:\n");
|
|
|
printf("加油come on,你能行的\n");
|
|
|
//鼓励的话语,表情符,不用管
|
|
|
scanf("%d",&C);
|
|
|
if( WE== C )
|
|
|
{
|
|
|
printf("\n结果:你输入的答案正确!\n \n\n");
|
|
|
M++;
|
|
|
|
|
|
if ( M == 2 ) //第二次机会
|
|
|
{ SCORE+=7;} //第二次输入正确答案得7分
|
|
|
else if( M == 3 ) //第三次机会
|
|
|
{ SCORE+=5;} //第三次输入正确答案得5分
|
|
|
|
|
|
break; //结束本次循环
|
|
|
|
|
|
}
|
|
|
else //记录循环进行次数
|
|
|
|
|
|
|
|
|
{ M++;}
|
|
|
j++;
|
|
|
|
|
|
}
|
|
|
if( j > 3 )
|
|
|
{
|
|
|
printf("\n该题正确答案为:%d\n",WE); //输出最终正确答案
|
|
|
printf("**********************************************************************************************************\n");
|
|
|
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n\n");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
|
|
|
i--;
|
|
|
}
|
|
|
if( SCORE >= 90 ) //对小学生的评价和鼓励;
|
|
|
printf("SMAR YOU ARE SO CLEAR\n"); //分别对不同分数段进行不同话语鼓励
|
|
|
|
|
|
if( 80 <= SCORE || SCORE < 90 )
|
|
|
printf("EXCELLENT COME ON\n");
|
|
|
if( 60 <= SCORE || SCORE < 80 )
|
|
|
printf("YOU SHOULD MAKE GREAT EFFORTS\n");
|
|
|
if( SCORE <= 60 )
|
|
|
printf("FAIL AN EXAM\n"); //总成绩90以上显示"SMART"
|
|
|
printf("\n总共%d道题目,你的总分为%d\n \n",i-1,SCORE); // 输出总例题数和总分数
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|