四则运算出题器(c++)
一、设计思路
这次版本加入了一下功能:
可定制题目的数量:修改循环次数;
可以定制每行打印的题目数和行间距的大小(当前题目序号可以整除定制数时输出输入的行间距个换行符);
可以定制算式的范围(修改随机数的最大值);
可以选择有无乘除法(没有乘除法即修改符号的情况,有四种改为两种);
可以选择减法中得数是否可以为负(不要负数的情况即比较减式中俩数大小,大数放前面)。
二、代码
#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++)的更多相关文章
- EGener2四则运算出题器
项目源码: https://git.coding.net/beijl695/EGener2.git (代码纯属原创,设计细节不同,请思量) 项目发布后,由于期间各种事情,耽搁至最后一天交付.这次的项目 ...
- C++四则运算出题器---有答案版
一.实验题目 四则运算扩展----能接受答案并判断对错然后给出成绩. 二.实验思路 在每次输出算式后面输入答案,然后判断对错,对则统计. 稍微优化了一下界面. 三.代码 // 12345.cpp : ...
- 四则运算出题器(C++)-BUG修复
定制题目数量这个功能测试: (1)输入题目数为负数时: 可正确处理: (2)输入题目数量为0时: 可正确处理: (3)输入题目数量为小数时: 程序运行出错: 错误分析: 因为代码中题目数量的变量Que ...
- 小学生四则运算出题软件-基于java控制台的实现
.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和 ...
- paperOne基于java web的简易四则运算出题网站
项目成员:张金生 张政 需求概要 1.运算数均为正整数 2.包含的运算符有+,-,*,/ 3.除法运算结果为整除运算 4.批量生成题目并判题 核心功能分析 1.题目生成——java后端 题目生 ...
- 结对编程——paperOne基于java web的简易四则运算出题网站
项目成员:张金生 张政 需求分析: 1.要进行四则运算: 2.运算题目随机: 3.进行对错判断: 4.整数运算. 程序概要: 1.用JSP实现: 2.用户可选择题目数量: 3.答题页用表格列出 ...
- 小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作
这是本学期java课中实验大纲里的第一个实验,这里简单做了一个无用户界面版本. import java.util.Random; import java.util.Scanner; public cl ...
- 结对项目-四则运算出题程序(GUI版)
目录: 一.致搭档(含项目地址) 二.PSP(planning) 三.结对编程中对接口的设计 四.计算模块接口的设计与实现过程 五.计算模块接口部分的性能改进 六.计算模块部分单元测试展示 七.计算模 ...
- 四则运算出题系统,java
程序设计思想: 首先通过判断选择计算的范围,然后用随机数生成两个随机数,定义另一个数,将两个随机数计算得到的值赋给定义的数 程序代码: package Kaos1; import java.util. ...
随机推荐
- ASP.NET中的Eval与DataBinder.Eval()方法
1.bind是一种双向数据绑定,有数据源时才会有改变. 2..net1.x版本中有DataBinder(Container.DataItem,"数据项") 单向数据绑定 .net ...
- 【好文要转】Python:模拟登录以获取新浪微博OAuth的code参数值
[转自]http://www.tuicool.com/articles/zAz6zi [原文]http://blog.segmentfault.com/hongfei/1190000000343851 ...
- 实现在Android简单封装类似JQuery异步请求
在android开发中经常会使用异步请求数据,通常会使用handler或者AsyncTask去做,handler 配合message 使用起来比较麻烦,AsyncTask 线程池只允许128个线程工作 ...
- C puzzles详解【16-20题】
第十六题 The following is a small C program split across files. What do you expect the output to be, whe ...
- RequireJS和AMD规范
目录 概述 define方法:定义模块 require方法:调用模块 AMD模式小结 配置require.js:config方法 插件 优化器r.js 参考链接 概述 RequireJS是一个工具库, ...
- .Net 内存泄露
一.事件引起的内存泄露 1.不手动注销事件也不发生内存泄露的情况 我们经常会写EventHandler += AFunction; 如果没有手动注销这个Event handler类似:EventHan ...
- DELPHI XE5 FOR ANDROID 模仿驾考宝典 TMEMO 控件随着字数增多自动增高
在一个安卓需求中,需要模仿驾考宝典的详解部分.琢磨了好几天.终于搞定: MemoAns.Height:=10;//MEMO控件赋初始高度值 MemoAns.Lines.Clear; MemoAns.W ...
- DevExpress 关于 GridView 表格编辑中 点击其他按钮里导致 值未取到处理
只需要给添加以下代码 在执行其他按钮前调 用一下 就可以了:主要是用来关闭编辑以及更新当前行编辑内容 this.gridControl1.FocusedView.CloseEditor(); this ...
- GetType() 和typeof() 的区别
GetType() 非强类型,支持跨程序集发射,用来支持动态引用, A obja=new A(); Type t=obja.GetType() typeof() 强类型,静态的 Type t=type ...
- POJ-1579
#include <stdio.h> #include <stdlib.h> ][][]; int w(int a,int b,int c){ ||b<=||c<= ...