
#include <stdioh>
#include <stdlibh>
#include <timeh>
int yunsuan(int M,int NUM)
{
int m=1,n=0,a,b,daan;
while(1)
{
srand(time(0));
a=rand()%M;
b=rand()%M;
switch(1+rand()%2)
{
case 1: //加
{
printf("<%d>",m);
printf("%4d+%4d=",a,b);
scanf("%d",&daan);
if(daan==(a+b))
n++;
else
printf("Fault!\n");
m++;
break;
}
default: //减
{
if(a>=b)
{
printf("<%d>",m);
printf("%4d-%4d=",a,b);
scanf("%d",&daan);
if(daan==(a-b))
n++;
else
printf("Fault!\n");
m++;
break;
}
else
{
printf("<%d>",m);
printf("%4d-%4d=",b,a);
scanf("%d",&daan);
if(daan==(b-a))
n++;
else
printf("Fault!\n");
m++;
break;
}
}
}
if(m == NUM+1)
break;
}
return n;
}
int main()
{
int M,p;
float right;
char o;
int num; //题目的个数。
while(1)
{
printf(" 欢迎进入小学生四则运算训练营\n\n110以内的四则运算\n0退出\n\n");
printf("请选择功能号(1/0):");
scanf("%d",&p);
getchar();
if(p==1)
M=10;
if(p==0)
exit(0);
printf("请选择的是%d以内的四则运算个数:\n",M);
scanf("%d",&num);
int temp = yunsuan(M,num);
right= temp/(num10);
printf("正确率:%2f%%",right100); //正确率。
getchar(); //吸收前面的回车键。
printf("继续吗?(y/n)");
scanf("%c",&o);
if(o == 'y' || o == 'Y')
{
system("pause");
}
else
{
break;
}
}
getchar();
return 0;
}
#include <iostream>
#include <stdlibh>
#include <ctime>
#include <conioh>
using std::cin;
using std::cout;
using std::endl;
//计算式 数量
int const Num = 100;
//计算式中 最大数
int const MaxNum = 100;
//每题分数
int const PerMark = 1;
//计算结果最大值
int const MaxResult = 100;
//计算结果最小值
int const MinResult = 0;
enum enOp{Add,Subtract,Multiply,Divide};
//将 枚举类型转换为字符类型,以便输出。
char enum2char(enOp op)
{
switch (op)
{
case Add:
return '+';
case Subtract:
return '-';
case Multiply:
return 'x';
case Divide:
return '/';
}
return ' ';
}
//计算生成表达式的正确结果。
int myResult(int left,int right,enOp op)
{
switch (op)
{
case Add:
return left+right;
case Subtract:
return left-right;
case Multiply:
return left right;
case Divide:
return left/ right;
}
return 0;
}
//检查生成计算式的正确与否。其中 减法结果不能为负数,除法结果不能为小数。
bool checkFormula(int left,int right,enOp op)
{
switch (op)
{
case Add:
{
return true;
}
case Subtract:
{
if(left < right)
return false;
return true;
}
case Multiply:
{
return true;
}
case Divide:
{
if(right == 0)
return false;
if(double(left/right) != double(double(left)/double(right)))
return false;
return true;
}
}
return false;
}
//依据给定 *** 作符,生成符合条件的表达式。
void getFormula(int left,intright,enOp op)
{
//srand(time(NULL));
for(;;)
{
left = 1 + rand() % MaxNum;
right = 1 + rand() % MaxNum;
if(checkFormula(left,right,op) && myResult(left,right,op)<= MaxResult && myResult(left,right,op)>= MinResult)
break;
}
}
int main()
{
// *** 作符左值
int left[Num];
// *** 作符右值
int right[Num];
//用户输入计算结果
int result[Num];
// *** 作符 +-/
enOp oper[Num];
//正确答案个数
int answerRight = 0;
cout<<"正在生成,请稍等。"<<endl;
//随机种子
srand(time(NULL));
//开始生成计算表达式。
for(int i = 0;i<Num;i++)
{
//srand( (unsigned)time(NULL));
// *** 作符
oper[i] = enOp(rand()%4);
getFormula(&left[i],&right[i],oper[i]);
}
cout<<"生成计算式完成,开始答题!"<<endl;
//输出表达式,让用户答题
for(int i = 0;i<Num;i++)
{
//输出表达式
cout<<"第 "<<i+1<<" 题: \n";
cout<<left[i]<<' '<<enum2char(oper[i])<<' '<<right[i]<< " = ";
//获取用户答案
cin>>result[i];
//比对用户答案是否正确,正确输出 right,answerRigth加一,否则输出not correct。
if(result[i] == myResult(left[i],right[i],oper[i]))
{
cout<<"Right!\n";
answerRight++;
}
else
{
cout<<"Not correct!\n";
}
}
//全部答题完毕,输出正确答案个数及得分。
cout<<"终止答题,共 "<<Num<<" 题,每题 "<<PerMark<<" 分 ,答对 "<<answerRight<<" 题,得分 :"
<<answerRightPerMark<<" 分。";
//屏幕停止。
getch();
return 0;
}
这要熟悉小学一年级的教材,考查学生应该掌握的知识点,不宜考的太难,争取难易适中,既考查该学习的知识点,又要难易适度,有区分度。既要通过考试检查教师的教,又要检查学生的学。出一份好试卷,可以看出老师把握教材大纲的情况。当然这也不是一日之功。当一个好老师,方方面面都很重要。
Qbasic:
Randomize Timer
INPUT "N="; N
For i = 1 To N
k = Int(Rnd 4)
Select Case k
Case 0:
a = Int(Rnd 11)
b = Int(Rnd 11)
e$ = "+"
c = a + b
Case 1:
c = Int(Rnd 11)
b = Int(Rnd 11)
e$ = "-"
a = b + c
Case 2:
a = Int(Rnd 10)
b = Int(Rnd 10)
e$ = ""
c = a b
Case 3:
c = Int(Rnd 10)
b = Int(Rnd 9) + 1
e$ = "/"
a = b c
End Select
Print a; e$; b; "=";
INPUT d
If c = d Then
Print "right!"
Else
Print "Wrong!"
End If
Next i
以上就是关于用C语言编写小学运算测试程序(要求完成10以内的加减运算,能根据用户输入想要练习的题目数自行出题、、)全部的内容,包括:用C语言编写小学运算测试程序(要求完成10以内的加减运算,能根据用户输入想要练习的题目数自行出题、、)、用C++编写:为训练小学生的算术能力,现请你帮忙设计一个100以内的随机出题程序,每次运行生成100道题。、怎么给小学一年级出题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)