苦逼的二柱子的四则运算问题

问题:二柱子将做好的项目交给了老师,几天后又得到新的需求:

  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);
// cout<<"输入每行打印题目数(1-5):";
// cin>>Q2;
cout<<" 二.每行间距(正整数):";
cin>>Q5;
cout<<" 三.请输入算式中数值的最大值:";
cin>>Q3;
while(1)
{
cout<<" 四.运算中需要乘除法吗?需要:y;不需要:n";
cin>>Q4;
cout<<" 五.减法中需要有负数吗?需要:y;不需要:n";
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<<"="<<"\t";
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<<"="<<"\t";
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<<"="<<"\t";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
}
}
else
{
cout<<j+1<<":"<<" "<<num2<<"-"<<num1<<"="<<"\t";
cin>>ans;
if(ans==num2-num1)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num2-num1<<endl;
}
}
}
break;
case 2:
cout<<j+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<<j+1<<":"<<" "<<num1<<"/"<<num2<<"="<<"\t";
cin>>ans;
if(ans==num1/num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1/num2<<endl;
}
}
else
{
j--;
}
break;
}
}
break;
}
}
cout<<"共答对"<<right<<"道题;"<<"答错"<<Q01-right<<"道题。";
cout<<"继续努力!"<<endl;
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<<"="<<"\t";
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<<"="<<"\t";
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<<"="<<"\t";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
}
break;
}
else
{
cout<<j+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<<"还需要继续出题还是退出?(y:继续出题;n:退出)";
cin>>Q6;
if(Q6==‘y‘)
{
goto Again;
}
if(Q6==‘n‘)
{
goto Exit;
}
else
{
cout<<"输入有误,请重新输入:";
}
}
Exit:
return 0;
}

原文地址:https://www.cnblogs.com/wangbowu/p/9886442.html

时间: 2024-10-12 14:25:32

苦逼的二柱子的四则运算问题的相关文章

二柱子四则运算3

二柱子四则运算3 可怜的二柱子……又一次被坑了…… 老师又在上次的“二柱子四则运算2”的基础上增添了要求,如下: 1.学生写的程序必须能判定用户的输入答案是否正确.直到题目结束,告诉用户做对了几道题. 2.程序必须能处理四种运算的混合模式. 注意:连续的减法和除法,应该遵守左结合的规定. 连续除法要打括号,否则会引起歧义. 一.实验思路 二.实验源代码 三.实验总结和反思 最后,附上我和我的小伙伴的工作照……没有正脸.老师们不要介意啦啦啦~~~~ 小伙伴博客内容页:http://www.cnbl

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

题目:在上次程序的基础上,实现对连除的判断,并且实现多个数的混合运算,要求可以输入结果,并进行判断. 思路:基于上次程序,首先思考混合运算,这里运用两个数组,分别记录随机产生的运算数和运算符号.然后对连除进行判断,,检查运算符号数组里是否有连续的除号,有的话加上括号,避免歧义.最后对运算结果进行计算,并对用户输入的结果进行比较,给出相应提示,回答,计算方面,要优先对括号,乘除进行运算,然后再进行加减运算,每次运算完后都要记录下运算的结果. 代码: //吕广浩 3/19 #include<iost

RIGHT-BICEP单元测试——“二柱子四则运算升级版”

RIGHT-BICEP单元测试 ——“二柱子四则运算升级版” ”单元测试“这对于我们来说是一个全新的专业含义,在上了软件工程这门课,并当堂编写了简单的"求一组数中的最大值"函数的单元测试之后,我们对它有了全新的认识. 单元测试:即为, 老师让我们回去之后将“二柱子四则运算升级版”的程序进行单元测试(二柱子程序的源码我已经上传,这里不再重复,只列举单元测试的部分和分析),如下: PS.这里附上老师上课讲的关于RIGHT-BICEP测试的方法: 6个值得测试的具体部位,他们能够提高我们的测

linux下苦逼搭建ftp站点二三事

昨天中午,领导突然扔给我一台linux服务器,让我给某个站点目录配置个ftp服务 权限可上传.可下载.令其无法跳转上级目录 我想这简单啊,于是我按照固定的四维,useradd.passwd.修改conf文件.修改权限,最后restart 结果就傻逼了,一直连接不上,报530错误,我更傻逼的做法一直在创建.删除用户 - -|| 在百度苦苦寻求答案的我,无意中看见一片博文关于配置vsftp虚拟用户配置 它的vsftp目录结构和我这台服务器上的一样,包括好多文件像txt.db 这才发现原来使用的这个方

二柱子家的四则运算

小学二年级的四则运算问题 根据用户的需求,第一,小学二年级我认为应该是十以内加减乘除法:第二,保证减法结果不能是负数,除数不能为零. 思路: 第一,产生十以内的随机数,用到随机函数rand()%10; 第二,课上同学的程序有个小缺陷,需要把加减乘除乱序排列,所以用到switch函数 第三,产生的随机数在做除法时除数b不能为零,减法是保证结果不是负数.当然除法也不能出现分数,这个我就不太会了.希望有能人异士来修改啦. 程序如下 希望大家来改善,谢谢思密达

二柱子四则运算在线答题系统

一:要求: 1.实现在线答题. 2.答题结束后,可以判断对错. 3.并将错题的结果保存起来. 二:设计思路: 1.利用第一次实习的随机出题代码进行出题,然后我们设计让用户进行答题,把用户的答案与题目的正确答案进行比较,然后与正确的答案不一样,我们则显示回答错误,假如和正确答案一致我们则显示回答正确,然后利用i对回答正确的题目进行统计,在最后进行显示,这样我们就编写出一个完整的在线答题判卷系统. 三:程序代码: #include <stdio.h> #include <time.h>

PHP项目的“苦逼”经历与思考

PHP项目的"苦逼"经历与思考 PHP零基础.但因为项目人手不够的原因,被安排到一个用户"定制"项目. 该项目是用PHP生成的统计数据报表. 而用户又有新的3个需求,须要在已有的代码基础上完毕.       一.初识PHP 因为本人之前没有接触过PHP代码project,所以须要花费一点时间过一下PHP的基本的语法.个人感觉和C++非常像.有类的定义.继承和派生.但其又比C++简化非常多,没有C++.C的数据类型的概念.全部数据想用什么直接声明赋值就可以.而且.其字

研究生的苦逼与安逸

明天打算回家,在回家之前对我已经过去的生活做个总结. 12年考入本985高校的时候,是高调的,自豪的,对这即将的三年学习时间充满了憧憬和向往,QQ空间里面转的全是怎样有效地度过研究生,如何写高质量paper之类的文章,每天的说说动态也是矫情造作的,想引人注目的,自以为很有个性的. 第一学期属于适应期,经历9个月的考研生活后,发现自己越来越沉默了,面对许多话题都不愿意插嘴,不感兴趣.可是又想突出自己,而好像自己又是平凡普通的.在这样的矛盾中缓缓向前.导师在国庆的时候给了我一篇英文paper,要我把

创业干货:牛逼的外衣,苦逼的内裤

如今,出门在外.朋友聚会.相亲拍拖.亲戚互访等场合你不创业你都不好意思开口说话,这是一个很奇特的现象,高层说这是大势所趋,似乎遍地是机会遍地有黄金,阿蒙也一而再再而三地思考过可能的深层次原因,一是可能社会无法提供足够的职业空间,以其因失业所带来的不安,不如创业带来的振奋,创业是因失业而起的:二是技术与趋势带来了大量的机会,而这些机会的成功率是极小极小的,需要大量的创业者去尝试去拼博,最终若大的中国再出现新的BAT:三是可能现在的大学生或非大学生已经不愁温饱不愁其他,以其给别人打工,不如自已开干,