一.实验题目

四则运算扩展----能接受答案并判断对错然后给出成绩。

二.实验思路

在每次输出算式后面输入答案,然后判断对错,对则统计。

稍微优化了一下界面。

三.代码

 // 12345.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include"iostream"
#include<stdlib.h>
#include<time.h>
#include<math.h>
using namespace std;
int main()
{
cout<<endl;
cout<<"***************好***好***学***习 天***天***向***上****************"<<endl;
cout<<endl;
cout<<endl;
Again:
double Ques1=;
int Ques01;
int Ques2=;
int Ques3=;
char Ques4='y';
int Ques5=;
char Ques6='n';
char Ques7='n';
double ans=;
int right=;
cout<<" 一.请输入题目数量:";
cin>>Ques1;
Ques01=floor(Ques1);
// cout<<"请输入每行打印题目数(1-5):";
// cin>>Ques2;
cout<<" 二.行间距(正整数):";
cin>>Ques5;
cout<<" 三.请输入算式中数值的最大值:";
cin>>Ques3;
while()
{
cout<<" 四.运算中需要乘除法吗?y:需要;n:不需要";
cin>>Ques4;
cout<<" 五.减法中需要有负数吗?y:需要;n:不需要";
cin>>Ques7;
cout<<"`````````````````````````````````````````````````````````````````````````"<<endl;
cout<<"开始答题:"<<endl;
srand(time(NULL));
if(Ques4=='y')
{
while()
{
if(Ques1<)
{
cout<<"输入有误,请重新输入题目数量:";
cin>>Ques1;
Ques01=floor(Ques1);
}
else
{
for(int j=;j<Ques01;j++)
{
if(j!=&&j%Ques2==)
{
for(int i=;i<Ques5;i++)
{
cout<<endl;
}
}
int num1=rand()%Ques3;
int num2=rand()%Ques3;
int sign=rand()%;
switch(sign)
{
case :
cout<<j+<<":"<<" "<<num1<<"+"<<num2<<"="<<"\t";
cin>>ans;
if(ans==num1+num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1+num2<<endl;
}
break;
case :
if(Ques7=='y')
{
cout<<j+<<":"<<" "<<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+<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
}
}
else
{
cout<<j+<<":"<<" "<<num2<<"-"<<num1<<"="<<"\t";
cin>>ans;
if(ans==num2-num1)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num2-num1<<endl;
}
}
}
break;
case :
cout<<j+<<":"<<" "<<num1<<"*"<<num2<<"="<<"\t";
cin>>ans;
if(ans==num1*num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1*num2<<endl;
}
break;
case :
if(num2!=)
{
cout<<j+<<":"<<" "<<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<<"道题;"<<"答错"<<Ques01-right<<"道题。";
cout<<"继续努力!"<<endl;
break;
}
if(Ques4=='n')
{
while()
{
if(Ques01<)
{
cout<<"输入有误,请重新输入题目数量:";
cin>>Ques1;
Ques01=floor(Ques1);
}
else
{
for(int j=;j<Ques01;j++)
{
if(j!=&&j%Ques2==)
{
for(int i=;i<=Ques5;i++)
{
cout<<endl;
}
}
int num1=rand()%Ques3;
int num2=rand()%Ques3;
int sign=rand()%;
switch(sign)
{
case :
cout<<j+<<":"<<" "<<num1<<"+"<<num2<<"="<<"\t";
cin>>ans;
if(ans==num1+num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1+num2<<endl;
}
break;
case :
if(Ques7=='y')
{
cout<<j+<<":"<<" "<<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+<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
cin>>ans;
if(ans==num1-num2)
{
cout<<"正确"<<endl;
right++;
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num1-num2<<endl;
}
break;
}
else
{
cout<<j+<<":"<<" "<<num2<<"-"<<num1<<"="<<"\t";
cin>>ans;
if(ans==num2-num1)
{
cout<<"正确";
}
else
{
cout<<"答错了!"<<endl;
cout<<"正确答案是:"<<num2-num1<<endl;
}
break;
}
}
break;
}
}
}
break;
}
cout<<"共答对"<<right<<"道题;"<<"答错"<<Ques01-right<<"道题。"<<endl;
cout<<"继续努力!"<<endl;
break;
} else
{
cout<<"输入有误,请按要求输入!"<<endl;
}
}
cout<<endl;
while()
{
cout<<"还需要继续出题还是退出?(y:继续出题;n:退出)";
cin>>Ques6;
if(Ques6=='y')
{
goto Again;
}
if(Ques6=='n')
{
goto Exit;
}
else
{
cout<<"输入有误,请重新输入:";
}
}
Exit:
return ;
}

四.运行结果

五.

缺陷日志表

学生  梁世豪

日期  2014.3.21_______

教师  王建民

日期

编号

类型

引入阶段

排除阶段

修复时间

修复缺陷

程序号_______________

项目计划总结表

姓名:梁世豪                                                  日期:2015/3/21

上课

编程

看书

日总计

周日

周一

周二

100

60

160

周三

60

60

120

周四

周五

100

60

60

周六

120

120

周总计

200

240

120

560

时间记录总结表

姓名:梁世豪                                                  日期:2015/3/21

日期

开始

结束

中断时间

净时间

活动

备注

C

U

3.17

8:00

9:50

10

100

上课

3.17

19:00

20:20

20

60

编程

3.18

14:30

16:00

30

60

编程

3.18

16:00

17:00

60

看书

3.20

8:00

9:50

10

100

上课

3.20

21:00

22:00

60

看书

3.16

20:00

22:30

30

120

编程

 

C++四则运算出题器---有答案版的更多相关文章

  1. EGener2四则运算出题器

    项目源码: https://git.coding.net/beijl695/EGener2.git (代码纯属原创,设计细节不同,请思量) 项目发布后,由于期间各种事情,耽搁至最后一天交付.这次的项目 ...

  2. 四则运算出题器(C++)-BUG修复

    定制题目数量这个功能测试: (1)输入题目数为负数时: 可正确处理: (2)输入题目数量为0时: 可正确处理: (3)输入题目数量为小数时: 程序运行出错: 错误分析: 因为代码中题目数量的变量Que ...

  3. 四则运算出题器(c++)

    一.设计思路 这次版本加入了一下功能: 可定制题目的数量:修改循环次数: 可以定制每行打印的题目数和行间距的大小(当前题目序号可以整除定制数时输出输入的行间距个换行符): 可以定制算式的范围(修改随机 ...

  4. 结对项目-四则运算出题程序(GUI版)

    目录: 一.致搭档(含项目地址) 二.PSP(planning) 三.结对编程中对接口的设计 四.计算模块接口的设计与实现过程 五.计算模块接口部分的性能改进 六.计算模块部分单元测试展示 七.计算模 ...

  5. 宣布发布 Windows Azure SDK 2.2,正式发布 Windows Azure Backup 和 Hyper-V 恢复管理器预览版

    开发人员正逐渐转向云计算,因为它具有众多优势,包括成本.自动化和让开发人员专注于应用程序逻辑的能力.我们很高兴地宣布,继推出 Visual Studio 2013 之后,今天将发布 Windows A ...

  6. m3m4加载器的优化版m3m4-v1.1

    m3m4加载器的优化版m3m4-v1.1 /* //1.以$开头的模块名,表示服务,服务只会执行一次,它可以有自己的方法.比如cookie就是一个服务 //例如:console.log("r ...

  7. 小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作

    这是本学期java课中实验大纲里的第一个实验,这里简单做了一个无用户界面版本. import java.util.Random; import java.util.Scanner; public cl ...

  8. java 24 - 8 GUI之创建四则运算计算器(未校验版)

    这个是用NetBeans软件制作的,因为这个软件制作GUI任务比较方便 通过拖拽控件生成的窗体:(红色的名称是更改后的控件名称) 拉拽好布局后,要进行的步骤: A:更改想要进行操作的控件的名称(右键控 ...

  9. Java虚拟机—垃圾收集器(整理版)

    1.概述 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现.Java虚拟机规范中对垃圾收集器应该如何实现并没有规定,因此不同的厂商.不同版本的虚拟机所提供的垃圾收集器都可能会有很 ...

随机推荐

  1. javaSE第十三天

    第十三天    76 1. StringBuffer(掌握)    76 (1)说明:    77 (2)StringBuffer的构造方法    77 (3)StringBuffer的常见功能    ...

  2. Eclipse 中打不开android sdk managerf

    今天配置android sdk 的时候,出现了android sdk 打不开的情况.无论直接点击 sdk manager.exe 还是从eclipse启动,都不起作用,双重启(重启eclipse和ad ...

  3. 利用Python抓取CSDN博客

    这两天发现了一篇好文章,陈皓写的makefile的教程,具体地址在这里<跟我一起写makefile> 这篇文章一共分成了14个部分,我看东西又习惯在kindle上面看,感觉一篇一篇地复制成 ...

  4. 安装 centos7 注意事项

    最近一直没有写博客,把之前的折腾记录写下. 1 下载好镜像文件,刻录光盘. 2  用DVD安装CENTOS7 3 有些处理器不支持Cento7安装,需要重新编译内核文件.我不懂 . 我用的ACER  ...

  5. NSDateFormatter中时间格式串的含义

    a: AM/PM (上午/下午) A: 0~86399999 (一天的第A微秒) c/cc: 1~7 (一周的第一天, 周天为1) ccc: Sun/Mon/Tue/Wed/Thu/Fri/Sat ( ...

  6. oracle中=>是什么意思

    => 是 Oracle 中调用 存储过程的时候, 指定 参数名进行调用.一般是, 某些参数有默认值的时候,你需要跳过某些参数来进行调用.下面是具体的例子. 参数的默认值SQL> CREAT ...

  7. url 编码(percentcode 百分号编码)

    http://www.imkevinyang.com/2009/08/%E8%AF%A6%E8%A7%A3javascript%E4%B8%AD%E7%9A%84url%E7%BC%96%E8%A7% ...

  8. FileUpload无法赋值解决方案

    FileUpload无法赋值解决方案 编写人:CC阿爸 2015-1-27 今天在这里,我想与大家一起分享如何处理fileupload控件不能赋值的问题.有兴趣的同学,可以一同探讨与学习一下,否则就略 ...

  9. PHPCMS建站经验分享

    在这里不对模型.模板设置.category,list,show等静态页面引入.配置文件(caches\configs\database.php 和 caches\configs\system.php) ...

  10. ViewPage显示Fragment集合实现左右滑动并且出现tab栏--第三方开源--SlidingTabLayout和SlidingTabStrip实现

    注意:有关Fragment的方法和ViewPager的全部是android.support.v4包的,否则会报很多的错误 MainActivity: package com.zzw.fragmentt ...