四则运算可判断对错 在线答题

#include<iostream>
#include<stdarg.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
using namespace std;
int main()
{
cout<<endl;
cout<<"在线答题"<<endl;
cout<<endl;
cout<<endl;
Again:
double Q1=1;
int Q01;
int Q2=1;
int Q3=100;
char Q4='x';
int Q5=1;
char Q6='y';
char Q7='n';
double ans=0;
int right=0;
cout<<" 输入题目数量:";
cin>>Q1;
Q01=floor(Q1);
cout<<" 每行间距(正整数):";
cin>>Q5;
cout<<" 请输入算式中数值的最大值:";
cin>>Q3;
while(1)
{
cout<<"运算中需要乘除法吗?需要:x;不需要:y";
cin>>Q4;
cout<<" 减法中需要有负数吗?需要:x;不需要:y";
cin>>Q7;
cout<<"-------------------------------------------------------------------------"<<endl;
cout<<"开始进行答题:"<<endl;
srand(time(NULL));
if(Q4=='x')
{
while(1)
{
if(Q1<1)
{
cout<<"输入有误,请重新输入题目数量:";
cin>>Q1;
Q01=floor(Q1);
}
else
{
for(int k=0;k<Q01;k++)
{
if(k!=0&&k%Q2==0)
{
for(int i=0;i<Q5;i++)
{
cout<<endl;
} 
}
int num1=rand()%Q3;
int num2=rand()%Q3;
int sign=rand()%4;
switch(sign)
{
case 0:
cout<<k+1<<":"<<" "<<num1<<"+"<<num2<<"="<<"\t";
cin>>ans;
if(ans==num1+num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"错误!"<<endl;
cout<<"正确答案:"<<num1+num2<<endl;
}
break;
case 1:
if(Q7=='x')
{
cout<<k+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"错误!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
}
}
else
{
if(num1>num2)
{
cout<<k+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"错误!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
}
}
else
{
cout<<k+1<<":"<<" "<<num2<<"-"<<num1<<"="<<"\t";
cin>>ans;
if(ans==num2-num1)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"错误!"<<endl;
cout<<"正确答案是:"<<num2-num1<<endl;
}
}
}
break;
case 2:
cout<<k+1<<":"<<" "<<num1<<"*"<<num2<<"="<<"\t";
cin>>ans;
if(ans==num1*num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"错误!"<<endl;
cout<<"正确答案是:"<<num1*num2<<endl;
}
break;
case 3:
if(num2!=0)
{
cout<<k+1<<":"<<" "<<num1<<"/"<<num2<<"="<<"\t";
cin>>ans;
if(ans==num1/num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"错误!"<<endl;
cout<<"正确答案是:"<<num1/num2<<endl;
}
}
else
{
k--;
}
break;
}
}
break;
}
}
cout<<"共答对"<<right<<"道题;"<<"答错"<<Q01-right<<"道题。";
cout<<"继续努力!"<<endl;
break;
}
if(Q4=='y')
{
while(1)
{
if(Q01<1)
{
cout<<"输入有误,请重新输入题目数量:";
cin>>Q1;
Q01=floor(Q1);
}
else
{
for(int k=0;k<Q01;k++)
{
if(k!=0&&k%Q2==0)
{
for(int i=0;i<=Q5;i++)
{
cout<<endl;
}
}
int num1=rand()%Q3;
int num2=rand()%Q3;
int sign=rand()%2;
switch(sign)
{
case 0:
cout<<k+1<<":"<<" "<<num1<<"+"<<num2<<"="<<"\t";
cin>>ans;
if(ans==num1+num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"错误!"<<endl;
cout<<"正确答案是:"<<num1+num2<<endl;
}
break;
case 1:
if(Q7=='x')
{
cout<<k+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"错误!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
}
break;
}
else
{
if(num1>num2)
{
cout<<k+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"错误!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
}
break;
}
else
{
cout<<k+1<<":"<<" "<<num2<<"-"<<num1<<"="<<"\t";
cin>>ans;
if(ans==num2-num1)
{
cout<<"正确";
}
else
{
cout<<"错误!"<<endl;
cout<<"正确答案是:"<<num2-num1<<endl;
}
break;
}
}
break;
}
}
}
break;
}
cout<<"共答对"<<right<<"道题;"<<"答错"<<Q01-right<<"道题。"<<endl;
cout<<"继续努力!"<<endl;
break;
}
else
{
cout<<"输入有误,请按要求输入!"<<endl;
}
}
cout<<endl;
while(1)
{
cout<<"还需要继续出题还是退出?(x:继续出题;y:退出)";
cin>>Q6;
if(Q6=='x')
{
goto Again;
}
if(Q6=='y')
{
goto Exit;
}
else
{
cout<<"输入有误,请重新输入:";
}
}
Exit:
return 0;
}

  说明:

1. 首先输入你想要答题的数量 按回车键结束;
2. 确定你想要的每道题之间的间隔距离,按回车键结束;
3. 确定你想要的计算题中数的取值范围,按回车键结束;
4. 确定你想要的计算题中是否有乘除法,按x表示有,按y表示没有;
5. 确定 计算题中是否有负数,按x表示有,按y表示没有;
6. 然后开始答题,直接输入你计算的结果,按回车键结束,程序会自动判断对错,冰并自动跳转到下一道计算题;
7. 完成所有计算题后,可选择是否继续生成计算题,x表示是,y表示否。

成员: 候志龙  李杰    代码编写: 候志龙  代码测试与审核: 李杰 

转载于:https://www.cnblogs.com/JL3Peanut/p/9886536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值