随机生成30道小学二年级四则远算题目2.0

悲催的二柱子接到了老师要求给软件增加一些小小的功能,具体要求如下:

1.除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性);

2.一次出的题目避免相互重复;

3.可定制出题的数量。

源代码为:

#include <iostream>
#include <time.h>
#include <string>
using namespace std;

void main()
{
int A[30],B[30],D[30],i,k,e,q;
string C;                                    //因为除号想用“÷”,所以要用“string”类
srand((unsigned)time(NULL)); //这里没有设定随机种子,则使用系统定时/计数器的值做为随机种子
                                                 //所以,在相同的平台环境下,编译生成exe后,每次运行它,显示的随机数会是伪随机数,即每次运行显示的结果会有不同。
b: cout<<"请问您想输出多少道题目?"<<endl;
cin>>q;                                     //定义一个可以改变题目数量的q
cout<<"以下为随机选取的题目:"<<endl;
for(i=1;i<=q;i++)
{e =rand() % 2;                        //随机生成0或1分别表示整数和分数
{k = rand()%4;                         //产生随机符号
if(k == 0)
C = "+";
else if(k == 1)
C = "-";
else if(k == 2)
C = "*";
else if(k == 3)
C = "÷";
A[i] = rand()%100;
B[i] = rand()%100;
D[i] = rand()%100;
if(e==0)
{if(C == "+")                                //输出题目
{cout<<A[i]<<"+"<<B[i]<<"="<<endl;}
else if(C == "-")
{cout<<A[i]<<"-"<<B[i]<<"="<<endl;}
else if(C =="*")
{cout<<A[i]<<"*"<<B[i]<<"="<<endl;}
else if(C == "÷")
{cout<<A[i]<<"÷"<<B[i]<<"="<<endl;}
}
else                                             //当e!=0的时候,进行的是真分数参与的四则运算
{if(D[i]>A[i])
{if(C == "+")                                //输出题目
{cout<<"("<<A[i]<<"/"<<D[i]<<")"<<"+"<<B[i]<<"="<<endl;}
else if(C == "-")
{cout<<"("<<A[i]<<"/"<<D[i]<<")"<<"-"<<B[i]<<"="<<endl;}
else if(C =="*")
{cout<<"("<<A[i]<<"/"<<D[i]<<")"<<"*"<<B[i]<<"="<<endl;}
else if(C == "÷")
{cout<<"("<<A[i]<<"/"<<D[i]<<")"<<"÷"<<B[i]<<"="<<endl;}
}
}
}
}
goto b;                                        //goto语句构成循环
}

结果截图:

猜你喜欢

转载自www.cnblogs.com/shenzhenxi/p/9757026.html
今日推荐