用C++写的:为了训练小学生的算术能力,请帮我设计一个100以内的随机出题程序,每次生成100道题。

# include & ltiostream & gt

# include & ltstdlib.h & gt

# include & ltctime & gt

# include & ltconio.h & gt

使用STD::CIN;

使用STD::cout;

使用STD::endl;

//配方数量

int常数Num = 100;

//计算公式中的最大数字

int const MaxNum = 100;

//每个问题的分数

int const PerMark = 1;

//计算结果的最大值

int const max result = 100;

//最小计算结果

int const min result = 0;

enum enOp {加、减、乘、除};

//将枚举类型转换为字符类型以便输出。

char enum2char(enOp操作)

{

开关

{

案例添加:

返回“+”;

大小写相减:

返回'-';

案例倍增:

返回“x”;

案例划分:

返回“/”;

}

返回“”;

}

//计算生成表达式的正确结果。

int myResult(int left,int right,enOp op)

{

开关

{

案例添加:

向左+向右返回;

大小写相减:

向左向右返回;

案例倍增:

返回左*右;

案例划分:

向左/向右返回;

}

返回0;

}

//检查生成的公式是否正确。其中减法结果不能为负,除法结果不能为小数。

布尔校验公式(int left,int right,enOp op)

{

开关

{

案例添加:

{

返回true

}

大小写相减:

{

if(left & lt;右)

返回false

返回true

}

案例倍增:

{

返回true

}

案例划分:

{

if(right == 0)

返回false

if(双(左/右)!= double(double(左)/double(右))

返回false

返回true

}

}

返回false

}

//根据给定的运算符,生成一个合格的表达式。

void getFormula(int* left,int*right,enOp op)

{

//srand(time(NULL));

for(;;)

{

* left = 1+rand()% MaxNum;

* right = 1+rand()% MaxNum;

if(checkFormula(*left,*right,op)& amp;& ampmyResult(*left,*right,op)& lt;= MaxResult & amp& ampmyResult(*left,*right,op)& gt;= MinResult)

打破;

}

}

int main()

{

//运算符左值

int left[Num];

//运算符右侧值

int right[Num];

//用户输入计算结果。

int result[Num];

//运算符+-*/

enOp操作数;

//正确答案的数量

int answer right = 0;

cout & lt& lt"正在生成,请稍候。"& lt& ltendl

//随机种子

srand(time(NULL));

//开始生成计算表达式。

for(int I = 0;我& ltNumi++)

{

//srand((无符号)time(NULL));

//运算符

oper[I]= enOp(rand()% 4);

get formula(& amp;左[i],& ampright[i],oper[I]);

}

cout & lt& lt“计算公式生成,开始答题!”& lt& ltendl

//输出表达式供用户回答。

for(int I = 0;我& ltNumi++)

{

//输出表达式

cout & lt& lt“第一”

cout & lt& ltleft[I]& lt;& lt' & lt& ltenum 2 char(oper[I])& lt;& lt' & lt& lt右[I]& lt;& lt" = ";

//获取用户答案

CIN & gt;& gt结果[一];

//比较用户的答案是否正确,正确输出右,正确答案加一,否则输出不正确。

if(结果[i] == myResult(left[i],right[i],oper[i]))

{

cout & lt& lt“对!\ n ";

answer right++;

}

其他

{

cout & lt& lt“不正确!\ n ";

}

}

//所有问题回答完毕后,输出正确答案的数量和分数。

cout & lt& lt“停止回答问题,* * * * & lt;& ltNum & lt& lt问题,每个问题

& lt& ltanswerRight * PerMark & lt& lt“分。”;

//屏幕停止。

getch();

返回0;

}