一.基本功能
随机产生三个运算数,两个运算符的简单四则混合运算。做一道题目产生一道,共300题。
二.程序代码
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
int iOperator1,iOperator2,iOperator3,op1,op2;
int iCalculate,iResult;
double dCalculate,dResult,dTemp;
int iSum=300;//出300道四则运算题目
cout<<"生成300道四则运算题"<<endl;
while(iSum--)
{
//设置种子
srand(time(NULL));
//随机值赋给参数iOperator1,iOperator2,iOperator3
iOperator1=rand()%100;
iOperator2=rand()%100;
iOperator3=rand()%100;
//随机产生运算符
op1=rand()%4;
op2=rand()%4;
//判断第一个运算符
switch(op1)
{
case 0:
//判断第二个运算符
switch(op2)
{
case 0:
iResult=iOperator1+iOperator2+iOperator3;
//沥去结果大于100的题目
if(iResult>100)
iSum++;
else
{
cout<<iOperator1<<"+"<<iOperator2<<"+"<<iOperator3<<"=";
cin>>iCalculate;
if(iCalculate==iResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
case 1:
iResult=iOperator1+iOperator2-iOperator3;
if(iResult>100)
iSum++;
else
{
cout<<iOperator1<<"+"<<iOperator2<<"-"<<iOperator3<<"=";
cin>>iCalculate;
if(iCalculate==iResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
case 2:
iResult=iOperator1+iOperator2*iOperator3;
if(iResult>100)
iSum++;
else
{
cout<<iOperator1<<"+"<<iOperator2<<"*"<<iOperator3<<"=";
cin>>iCalculate;
if(iCalculate==iResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
case 3:
dTemp=iOperator1+(double)iOperator2/(double)iOperator3;
//结果保留2位小数
dResult=(int)(dTemp*100)/100.0;
//沥去结果大于100或者分母等于0的题目
if(dResult>100.0||iOperator3==0)
iSum++;
else
{
cout<<iOperator1<<"+"<<iOperator2<<"/"<<iOperator3<<"=";
cin>>dCalculate;
if(dCalculate==dResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
}
break;
case 1:
switch(op2)
{
case 0:
iResult=iOperator1-iOperator2+iOperator3;
if(iResult>100)
iSum++;
else
{
cout<<iOperator1<<"-"<<iOperator2<<"+"<<iOperator3<<"=";
cin>>iCalculate;
if(iCalculate==iResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
case 1:
iResult=iOperator1-iOperator2-iOperator3;
if(iResult>100)
iSum++;
else
{
cout<<iOperator1<<"-"<<iOperator2<<"-"<<iOperator3<<"=";
cin>>iCalculate;
if(iCalculate==iResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
case 2:
iResult=iOperator1-iOperator2*iOperator3;
if(iResult>100)
iSum++;
else
{
cout<<iOperator1<<"-"<<iOperator2<<"*"<<iOperator3<<"=";
cin>>iCalculate;
if(iCalculate==iResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
case 3:
dTemp=iOperator1-(double)iOperator2/(double)iOperator3;
dResult=(int)(dTemp*100)/100.0;
if(dResult>100.0||iOperator3==0)
iSum++;
else
{
cout<<iOperator1<<"-"<<iOperator2<<"/"<<iOperator3<<"=";
cin>>dCalculate;
if(dCalculate==dResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
}
break;
case 2:
switch(op2)
{
case 0:
iResult=iOperator1*iOperator2+iOperator3;
if(iResult>100)
iSum++;
else
{
cout<<iOperator1<<"*"<<iOperator2<<"+"<<iOperator3<<"=";
cin>>iCalculate;
if(iCalculate==iResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
case 1:
iResult=iOperator1*iOperator2-iOperator3;
if(iResult>100)
iSum++;
else
{
cout<<iOperator1<<"*"<<iOperator2<<"-"<<iOperator3<<"=";
cin>>iCalculate;
if(iCalculate==iResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
case 2:
iResult=iOperator1*iOperator2*iOperator3;
if(iResult>100)
iSum++;
else
{
cout<<iOperator1<<"*"<<iOperator2<<"*"<<iOperator3<<"=";
cin>>iCalculate;
if(iCalculate==iResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
case 3:
dTemp=iOperator1*(double)iOperator2/(double)iOperator3;
dResult=(int)(dTemp*100)/100.0;
if(dResult>100.0||iOperator3==0)
iSum++;
else
{
cout<<iOperator1<<"*"<<iOperator2<<"+"<<iOperator3<<"=";
cin>>dCalculate;
if(dCalculate==dResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
}
break;
case 3:
switch(op2)
{
case 0:
dTemp=(double)iOperator1/(double)iOperator2+iOperator3;
dResult=(int)(dTemp*100)/100.0;
if(dResult>100.0||iOperator2==0)
iSum++;
else
{
cout<<iOperator1<<"/"<<iOperator2<<"+"<<iOperator3<<"=";
cin>>dCalculate;
if(dCalculate==dResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
case 1:
dTemp=(double)iOperator1/(double)iOperator2-iOperator3;
dResult=(int)(dTemp*100)/100.0;
if(dResult>100.0||iOperator2==0)
iSum++;
else
{
cout<<iOperator1<<"/"<<iOperator2<<"-"<<iOperator3<<"=";
cin>>dCalculate;
if(dCalculate==dResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
case 2:
dTemp=(double)iOperator1/(double)iOperator2*iOperator3;
dResult=(int)(dTemp*100)/100.0;
if(dResult>100.0||iOperator2==0)
iSum++;
else
{
cout<<iOperator1<<"/"<<iOperator2<<"*"<<iOperator3<<"=";
cin>>dCalculate;
if(dCalculate==dResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
case 3:
dTemp=(double)iOperator1/(double)iOperator2/(double)iOperator3;
dResult=(int)(dTemp*100)/100.0;
if(dResult>100.0||iOperator2==0||iOperator3==0)
iSum++;
else
{
cout<<iOperator1<<"/"<<iOperator2<<"/"<<iOperator3<<"=";
cin>>dCalculate;
if(dCalculate==dResult)
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
break;
}
break;
}
}
return 0;
}
三.程序截图
四.简要总结
实现加减乘除四则运算,沥去程序中随机形成的结果大于100的题目。但是这个程序并不完善,在产生除法问题时,计算机总是会产生不可除尽的运算数,这时采取一个保留2位小数,截断后面其他所有小数的方法,方便答题。
原文链接: https://www.cnblogs.com/smaugmao/p/13788164.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/203746
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!