四则运算出题器(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. ...
随机推荐
- HTML框架标签
与HTML框架有关的标签主要有三种: <frameset>框架结构标签 <frame>框架标签 <iframe>内联框架标签 一. 先来说第一种框架结构标签 < ...
- UIButton设置imgae图片自适应button的大小且不变形
在某些情况下,我们使用的UIButton的背景图片不一定就是标准的尺寸,有时会偏大,那么怎么办? 这个比较简单直接设置 : self.imageView.contentMode = UIView ...
- (转载)Android content provider基础与使用
android有一个独特之处就是,数据库只能被它的创建者所使用,其他的应用是不能访问到的,所以如果你想实现不同应用之间的数据共享,就不得不用content provider了.在Android中,co ...
- 在WP8项目中使用ARMASM
由于之前项目中某些密集运算优化的需要,涉及到ARMASM相关的内容, 所以有幸可以在此分享一下自己的经验. 先铺垫一些知识: 1. ARM处理器有两种指令ARM.THUMB, 在WP8下默认是THUM ...
- CentOS学习笔记--系统服务 (daemons)
系统服务 (daemons) 系统为了某些功能必须要提供一些服务 (不论是系统本身还是网络方面),这个服务就称为 service . 但是 service 的提供总是需要程序的运行吧!否则如何运行呢? ...
- SQLServer附加数据库5120错误
装有MSSQL的电脑 需要附加的数据库文件(*.mdf)及其日志文件(*.ldf) 1. 打开SQL Server Management Studio,并连接上数据库.右键"数据库" ...
- WindowsApi 解压缩文件
.解压方法 转载自http://www.2cto.com/kf/201204/128704.html "C#解压.zip文件,网上一搜一大堆方法,有使用System.IO.Compressi ...
- 使用junit进行Spring测试
这几天在做SpringMVC的项目,现在总结一下在测试的时候碰到的一些问题. 以前做项目,是在较新的MyEclipse(2013)上面进行Maven开发,pom.xml 文件是直接复制的,做测试的时候 ...
- PHP实例 表单数据插入数据库及数据提取 用户注册验证
网站在进行新用户注册时,都会将用户的注册信息存入数据库中,需要的时候再进行提取.今天写了一个简单的实例. 主要完成以下几点功能: (1)用户进行注册,实现密码重复确认,验证码校对功能. (2)注册成功 ...
- 小木棍 (codevs 3498)题解
[问题描述] 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过100. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长 ...