疯狂的硬盘txt全文下载:用vc设计一个数学题目测试程序.

来源:百度文库 编辑:高考问答 时间:2024/05/10 12:46:19
1,测试100以内的两个正整数加,减,乘,除.能根据用户输入确定出题数.随机出题,在做减和除时运算数大于后一个运算数.判断解答是否正确,给出评语.如good,right,excellent,但也是要随机的.错误的答案给出no,please try angin,wrong,tryonce more,no,keep trying.也是随机的,如果给的是允许重做,在界面上给出提示.累计并显示题数,正确的回答数和错误的回答数.统计正确率.若正确率底于百分之七十五,则输出"please ask you teacher for help"
大家来帮帮忙啊.

#include <stdio.h> /*数学练习*/
int randd(void);
int randd1(void);
int rand1(void);
int rand2(void);
float randf(float a,float b);
main()
{
float i,k,a,b;
int x,c,du=0,cu=0,j,w,f;
srand(time(NULL));
printf("选择难度\n");
printf("1是1位数 2是2位数\n");
printf("目前只支持3位数\n");
scanf("%d",&x);
printf("选择算法 1加法 2减法 3乘法 4除法 5混合\n");
printf("除法只求整数部分\n");
scanf("%d",&w);
for(j=1;j<=100;j++)
{
switch(x) /*选择难度*/
{
case 1 : a=randd(); b=randd();
break;
case 2 : a=rand1(); b=rand1();
break;
case 3 : a=rand2(); b=rand2();
break;
}
c=randd1();
switch(w) /*选择算法*/
{case 1 : k=a+b; break;
case 2 : k=a-b; break;
case 3 : k=a*b; break;
case 4 : f=a/b;k=f; break;
case 5 : k=randf(a,b); break;
}
printf("%.0f",k);
printf("How much is %.0f times %.0f ?",a,b);
scanf("%f",&i);
while(i!=k)
{
cu++;
c=randd1();
switch(c)
{
case 1 : printf("NO,please try again.\n");break;
case 2 : printf("Wrong Try once more.\n");break;
case 3 : printf("Don't give up.\n");break;
default :printf("NO.keep trying.\n");break;
}
printf("How much is %0.f times %0.f ?",a,b);
scanf("%f",&i);
}
du++;
switch(c)
{
case 1 : printf("very good!\n");break;
case 2 : printf("Excellent!\n");break;
case 3 :printf("Nice work!\n");break;
default :printf("keep up the good work!\n");break;
}
if(cu+du>=100)/*100题正确75%以下帮助*/
{
if(du<=(cu+du)*(75.0/100.0))
printf("help");break;
}
}
}

int randd(void)
{
int a;
a=1+rand()%9;
return a;
}
int rand1(void)
{
int a;
a=10+rand()%89;
return a;
}
int rand2(void)
{
int a;
a=100+rand()%899;
return a;
}

int randd1(void)
{
int a;
a=1+rand()%4;
return a;
}
float randf(float a,float b)/*混合*/
{
int c,f;
float k;
c=randd1();
switch(c)
{
case 1 : k=a+b;printf("求加\n");break;
case 2 : k=a-b;printf("求减\n");break;
case 3 : k=a*b;printf("求乘\n");break;
case 4 : f=a/b;k=f;printf("求除。只求整数部分\n");break;
}
return k;
}