C++四则运算出题器---有答案版
一.实验题目
四则运算扩展----能接受答案并判断对错然后给出成绩。
二.实验思路
在每次输出算式后面输入答案,然后判断对错,对则统计。
稍微优化了一下界面。
三.代码
// 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++四则运算出题器---有答案版的更多相关文章
- EGener2四则运算出题器
项目源码: https://git.coding.net/beijl695/EGener2.git (代码纯属原创,设计细节不同,请思量) 项目发布后,由于期间各种事情,耽搁至最后一天交付.这次的项目 ...
- 四则运算出题器(C++)-BUG修复
定制题目数量这个功能测试: (1)输入题目数为负数时: 可正确处理: (2)输入题目数量为0时: 可正确处理: (3)输入题目数量为小数时: 程序运行出错: 错误分析: 因为代码中题目数量的变量Que ...
- 四则运算出题器(c++)
一.设计思路 这次版本加入了一下功能: 可定制题目的数量:修改循环次数: 可以定制每行打印的题目数和行间距的大小(当前题目序号可以整除定制数时输出输入的行间距个换行符): 可以定制算式的范围(修改随机 ...
- 结对项目-四则运算出题程序(GUI版)
目录: 一.致搭档(含项目地址) 二.PSP(planning) 三.结对编程中对接口的设计 四.计算模块接口的设计与实现过程 五.计算模块接口部分的性能改进 六.计算模块部分单元测试展示 七.计算模 ...
- 宣布发布 Windows Azure SDK 2.2,正式发布 Windows Azure Backup 和 Hyper-V 恢复管理器预览版
开发人员正逐渐转向云计算,因为它具有众多优势,包括成本.自动化和让开发人员专注于应用程序逻辑的能力.我们很高兴地宣布,继推出 Visual Studio 2013 之后,今天将发布 Windows A ...
- m3m4加载器的优化版m3m4-v1.1
m3m4加载器的优化版m3m4-v1.1 /* //1.以$开头的模块名,表示服务,服务只会执行一次,它可以有自己的方法.比如cookie就是一个服务 //例如:console.log("r ...
- 小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作
这是本学期java课中实验大纲里的第一个实验,这里简单做了一个无用户界面版本. import java.util.Random; import java.util.Scanner; public cl ...
- java 24 - 8 GUI之创建四则运算计算器(未校验版)
这个是用NetBeans软件制作的,因为这个软件制作GUI任务比较方便 通过拖拽控件生成的窗体:(红色的名称是更改后的控件名称) 拉拽好布局后,要进行的步骤: A:更改想要进行操作的控件的名称(右键控 ...
- Java虚拟机—垃圾收集器(整理版)
1.概述 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现.Java虚拟机规范中对垃圾收集器应该如何实现并没有规定,因此不同的厂商.不同版本的虚拟机所提供的垃圾收集器都可能会有很 ...
随机推荐
- 深入理解JavaScript系列(转自汤姆大叔)
深入理解JavaScript系列文章,包括了原创,翻译,转载,整理等各类型文章,如果对你有用,请推荐支持一把,给大叔写作的动力. 深入理解JavaScript系列(1):编写高质量JavaScript ...
- js,jquery获取下拉框选中的option
js获取select选中的值: var sel=document.getElementById("select1"); var index = sel.selectedIndex; ...
- CentOS6.5配置vim使支持Python
CentOS6.5下开启vim对python的支持,配置方法如下: 1.检查系统已经安装了RPM包vim-enhanced; 2.复制默认的.vimrc初始化文件: # cp /usr/share/v ...
- C puzzles详解
题目:http://www.gowrikumar.com/c/ 参考:http://wangcong.org/blog/archives/291 http://www.cppblog.com/smag ...
- tomcat目录简介
http://www.cnblogs.com/kerrycode/p/3588816.html 主目录下面有bin.lib等目录 bin 存放Tomcat启动.停止服务程序以及一些其他脚本程序 lib ...
- 打开新窗口(window.open) 用法
窗口名称:可选参数,被打开窗口的名称. 1.该名称由字母.数字和下划线字符组成. 2."_top"."_blank"."_selft"具有特 ...
- ThinkPHP之中的验证码的小示例
ThinkPHP之中已经封装好了验证码的调用,但是关于手册,缺失了HTML之中以及.实际操作之中的点击ajax就会刷新验证码ajax代码:现在分享一下:看客老爷们注意啦! 放大招啦!!!三分归元气-- ...
- php设计模式之Proxy(代理模式)和Facade(外观)设计模式
Proxy(代理模式)和Facade(外观)设计模式它们均为更复杂的功能提供抽象化的概念,但这两种实现抽象化的过程大不相同 Proxy案例中,所有的方法和成员变量都来自于目标对象,必要时,该代理能够对 ...
- while循环中不支持循环使用curl
<?php $link = mysql_connect('localhost', 'sms', 'sms'); mysql_select_db('sms', $link); mysql_quer ...
- Ubuntu14.04安装GNOME3桌面
以下是安装方法: sudo add-apt-repository ppa:gnome3-team/gnome3 sudo apt-get update sudo apt-get dist-upgrad ...