个人项目:二柱子加强版

Posted xuzhengdong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人项目:二柱子加强版相关的知识,希望对你有一定的参考价值。

要求:

1.实现在线答题;

2.答题结束后,可以判断对错;

3.将错的题保存起来;

#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=y;
int Q5=1;
char Q6=n;
char Q7=n;
double ans=0;
int right=0;
cout<<" 输入题目数量:";
cin>>Q1;
Q01=floor(Q1);
while(1)
{
cout<<" 减法中需要有负数吗?需要: 1;不需要:2";
cin>>Q7;
cout<<"-------------------------------------------------------------------------"<<endl;
cout<<"开始进行答题:"<<endl;
srand(time(NULL));
if(Q4==y)
{
while(1)
{
if(Q1<1)
{
cout<<"输入有误,请重新输入题目数量:";
cin>>Q1;
Q01=floor(Q1);
}
else
{
for(int j=0;j<Q01;j++)
{
if(j!=0&&j%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<<j+1<<":"<<" "<<num1<<"+"<<num2<<"="<<"	";
cin>>ans;
if(ans==num1+num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1+num2<<endl;
}
break;
case 1:
if(Q7==y)
{
cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"	";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
}
}
else
{
if(num1>num2)
{
cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"	";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
}
}
else
{
cout<<j+1<<":"<<" "<<num2<<"-"<<num1<<"="<<"	";
cin>>ans;
if(ans==num2-num1)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num2-num1<<endl;
}
}
}
break;
case 2:
cout<<j+1<<":"<<" "<<num1<<"*"<<num2<<"="<<"	";
cin>>ans;
if(ans==num1*num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1*num2<<endl;
}
break;
case 3:
if(num2!=0)
{
cout<<j+1<<":"<<" "<<num1<<"/"<<num2<<"="<<"	";
cin>>ans;
if(ans==num1/num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1/num2<<endl;
}
}
else
{
j--;
}
break;
}
}
break;
}
}
cout<<"共答对"<<right<<"道题;"<<"答错"<<Q01-right<<"道题。";
break;
}
if(Q4==n)
{
while(1)
{
if(Q01<1)
{
cout<<"输入有误,请重新输入题目数量:";
cin>>Q1;
Q01=floor(Q1);
}
else
{
for(int j=0;j<Q01;j++)
{
if(j!=0&&j%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<<j+1<<":"<<" "<<num1<<"+"<<num2<<"="<<"	";
cin>>ans;
if(ans==num1+num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1+num2<<endl;
}
break;
case 1:
if(Q7==y)
{
cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"	";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
}
break;
}
else
{
if(num1>num2)
{
cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"	";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
}
break;
}
else
{
cout<<j+1<<":"<<" "<<num2<<"-"<<num1<<"="<<"	";
cin>>ans;
if(ans==num2-num1)
{
cout<<"正确";
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num2-num1<<endl;
}
break;
}
}
break;
}
}
}
break;
}
cout<<"共答对"<<right<<"道题;"<<"答错"<<Q01-right<<"道题。"<<endl;
break;
}
else
{
cout<<"输入有误,请按要求输入!"<<endl;
}
}
cout<<endl;
while(1)
{
cout<<"是否继续?(y:继续;n:退出)";
cin>>Q6;
if(Q6==y)
{
goto Again;
}
if(Q6==n)
{
goto Exit;
}
else
{
cout<<"输入有误,请重新输入:";
}
}
Exit:
return 0;
}

技术分享图片

个人总结:这次编程难度较大,主要学习到了if语句的多重利用,如何记录错题,确实想不到有效的解决方法。

以上是关于个人项目:二柱子加强版的主要内容,如果未能解决你的问题,请参考以下文章

个人项目3:加强版四则运算

干货 | JAVA程序员面试总结,高手整理加强版

青协日摘JAVA程序员面试总结,高手整理加强版

二柱子四则运算定制版+升级版

二柱子的三个阶段——随机生成四则运算题目(java语言版)

2019春第二课程设计报告