调换瞳孔
# include & ltcstdlib & gt
# include & ltctime & gt
类别计算
{
int iA
int iB
char nOperator
公共:
void Rand _ A();//随机生成第一个操作数
void Rand _ B();//随机生成第二个操作数
void Rand _ Operator();//随机生成一个运算符
void打印();//将生成的表达式输出到屏幕上,等待答案。
int calcu();//根据iA、iB和运算符计算结果。
} ;
void calculate :: Rand_A()
{
srand(time(NULL)+1);
iA = rand()% 100;
}
void calculate :: Rand_B()
{
srand(time(NULL));
iB = rand()% 100;
}
void calculate :: Rand_Operator()
{
char op [] = {'+','-',' * ','/' };
srand(time(NULL));
no operator = op[rand()% 4];
}
void calculate :: print()
{
switch(no operator)///对三个运算符'-'和'/'和' * '有要求。如果不符合要求,打印前需要重新生成随机数据。
{
大小写'-':
而(iA & ltiB)
{
//如果ia
rand _ A();
rand _ B();
}
打破;
案例“/”:
while (iB == 0 || iA % iB!= 0 )
{
//If iB == 0 || iA% iB!= 0,那么除法表达式中的除数是0或者iA不能被iB整除,然后重新生成一个新的随机数。
rand _ A();
rand _ B();
}
大小写' * ':
而(iA * iB & gt100)
{
//如果iA*iB的结果大于100,则重新生成随机数。
iA-;
I B-;
}
打破;
}
cout & lt& ltiA & lt& ltnOperator & lt& ltiB & lt& lt"=?"& lt& ltendl
}
int calculate :: calcu()
{
int result = 0;
开关(无操作器)
{
大小写“+”:
结果= iA+iB;
打破;
大小写'-':
结果= iA-iB;
打破;
大小写' * ':
结果= iA * iB
打破;
案例“/”:
结果= iA/iB;
打破;
}
返回结果;
}
int main()
{
int结果;
int count = 0;//count用于记录生成表达式的数量。
while(count & lt;20)
{
计算calc
计算。rand _ A();
计算。rand _ B();
计算。rand _ Operator();
cout & lt& lt“第一”
calc . print();
CIN & gt;& gt结果;
如果(结果!= calc.calcu())
cout & lt& lt“可惜你的答案是错的,正确的结果是”
其他
cout & lt& lt“恭喜你答对了!”& lt& ltendl
count++;
}
返回0;
}我学c++的时间不长。请看看是否有用。