一、设计思路

这次版本加入了一下功能:

可定制题目的数量:修改循环次数;

可以定制每行打印的题目数和行间距的大小(当前题目序号可以整除定制数时输出输入的行间距个换行符);

可以定制算式的范围(修改随机数的最大值);

可以选择有无乘除法(没有乘除法即修改符号的情况,有四种改为两种);

可以选择减法中得数是否可以为负(不要负数的情况即比较减式中俩数大小,大数放前面)。

二、代码

 #include<iostream.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int Ques1=;
int Ques2=;
int Ques3=;
char Ques4='y';
int Ques5=;
char Ques6='n';
char Ques7='n';
Again:
cout<<"请输入题目数量:";
cin>>Ques1;
cout<<"请输入每行打印题目数(1-5):";
cin>>Ques2;
cout<<"请输入算式中数值的最大值:";
cin>>Ques3;
while()
{
cout<<"运算中需要乘除法吗?y:需要;n:不需要";
cin>>Ques4;
cout<<"减法运算需要有负数吗?y:需要;n:不需要";
cin>>Ques7;
cout<<"行间距(正整数):";
cin>>Ques5;
srand(time(NULL));
if(Ques4=='y')
{
while()
{
if(Ques1<)
{
cout<<"输入有误,请重新输入:";
cin>>Ques1;
}
else
{
for(int j=;j<Ques1;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";
break;
case :
if(Ques7=='y')
{
cout<<j+<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
}
else
{
if(num1>num2)
{
cout<<j+<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
}
else
{
cout<<j+<<":"<<" "<<num2<<"-"<<num1<<"="<<"\t";
}
}
break;
case :
cout<<j+<<":"<<" "<<num1<<"*"<<num2<<"="<<"\t";
break;
case :
if(num2!=)
{
cout<<j+<<":"<<" "<<num1<<"/"<<num2<<"="<<"\t";
}
else
{
j--;
}
break;
}
}
break;
}
}
break;
}
if(Ques4=='n')
{
while()
{
if(Ques1<)
{
cout<<"输入有误,请重新输入:";
cin>>Ques1;
}
else
{
for(int j=;j<Ques1;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";
break;
case :
if(Ques7=='y')
{
cout<<j+<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
break;
}
else
{
if(num1>num2)
{
cout<<j+<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
break;
}
else
{
cout<<j+<<":"<<" "<<num2<<"-"<<num1<<"="<<"\t";
break;
}
}
break;
}
}
}
break;
}
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 ;
}

三、运行结果

四、实验总结

  在这次试验中,我发现了我不会使用函数,导致所有的代码都是在主函数中完成的,看上去很乱,还有对文件的读写也不明白,要想把这个程序做得更好,我接下来还要继续看课本,找资料。

四则运算出题器(c++)的更多相关文章

  1. EGener2四则运算出题器

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

  2. C++四则运算出题器---有答案版

    一.实验题目 四则运算扩展----能接受答案并判断对错然后给出成绩. 二.实验思路 在每次输出算式后面输入答案,然后判断对错,对则统计. 稍微优化了一下界面. 三.代码 // 12345.cpp : ...

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

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

  4. 小学生四则运算出题软件-基于java控制台的实现

    .题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和 ...

  5. paperOne基于java web的简易四则运算出题网站

    项目成员:张金生     张政 需求概要 1.运算数均为正整数 2.包含的运算符有+,-,*,/ 3.除法运算结果为整除运算 4.批量生成题目并判题 核心功能分析 1.题目生成——java后端 题目生 ...

  6. 结对编程——paperOne基于java web的简易四则运算出题网站

    项目成员:张金生     张政 需求分析: 1.要进行四则运算: 2.运算题目随机: 3.进行对错判断: 4.整数运算. 程序概要: 1.用JSP实现: 2.用户可选择题目数量: 3.答题页用表格列出 ...

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

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

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

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

  9. 四则运算出题系统,java

    程序设计思想: 首先通过判断选择计算的范围,然后用随机数生成两个随机数,定义另一个数,将两个随机数计算得到的值赋给定义的数 程序代码: package Kaos1; import java.util. ...

随机推荐

  1. 将Windows 7导航窗格中的收藏夹、库、家庭组、网络全部去掉

    将Windows 7导航窗格中的收藏夹.库.家庭组.网络全部去掉,只剩下计算机.右键单击ShellFolder,选择权限->Administrators,勾选上“完全控制”,确定后双击右侧窗格中 ...

  2. Ubuntu16.04安装JDK

    转载请注明源出处:http://www.cnblogs.com/lighten/p/6105463.html 1.简单的安装方法 安装JDK的最简单方法应该就是使用apt-get来安装了,但是源一般是 ...

  3. HTTP请求状态类

    <?php /** * 常用常量文件 * */ /** * HTTP协议请求状态 */ class HttpRequest { //100类 ----用于指定客户端应相应的某些动作---- co ...

  4. Observer

    #include <iostream> #include <list> using namespace std; #define DESTROY_POINTER(ptr) if ...

  5. NSLog的使用

    1.NSLog会将字符串打印在两个地方:操作系统的控制台和IDE的控制台. 2.对于NSLog来说,它打印的一个目的地并非控制台,而是系统文件“system.log”. 它另一个输出的目的地并非IED ...

  6. tomcat学习笔记1

    tomcat是一个开源软件,是由java语言编写的,它工作的话需要运行在jvm虚拟机中,说到jvm不得不说下java这个大名鼎鼎的编程 语言了 java这个编程语言最优秀的特点要数write once ...

  7. 【转】8种Nosql数据库系统对比

    导读:Kristóf Kovács 是一位软件架构师和咨询顾问,他最近发布了一片对比各种类型nosql数据库的文章.文章由敏捷翻译 – 唐尤华编译.如需转载,请参见文后声明. 虽然SQL数据库是非常有 ...

  8. PHP isset()与empty()的区别详解

    通过对PHP语言的学习,应该知道它是基于函数的一款HTML脚本语言. 庞大的函数库支持着PHP语言功能的实现. 有关PHP函数isset()与empty()的相关用法. PHP的isset()函数 一 ...

  9. 推荐个好东西swoole,php如虎添翼

    Swoole:PHP语言的异步.并行.高性能网络通信框架,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列 ...

  10. S5PV2210

    http://www.doc88.com/p-773451739254.html CAN转换器 CAN总线信息转换输出装置 基于车载CAN总线的倒车雷达单元设计[图] http://www.doc88 ...