一、设计思路

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

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

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

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

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

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

二、代码

  1. #include<iostream.h>
  2. #include<stdlib.h>
  3. #include<time.h>
  4. int main()
  5. {
  6. int Ques1=;
  7. int Ques2=;
  8. int Ques3=;
  9. char Ques4='y';
  10. int Ques5=;
  11. char Ques6='n';
  12. char Ques7='n';
  13. Again:
  14. cout<<"请输入题目数量:";
  15. cin>>Ques1;
  16. cout<<"请输入每行打印题目数(1-5):";
  17. cin>>Ques2;
  18. cout<<"请输入算式中数值的最大值:";
  19. cin>>Ques3;
  20. while()
  21. {
  22. cout<<"运算中需要乘除法吗?y:需要;n:不需要";
  23. cin>>Ques4;
  24. cout<<"减法运算需要有负数吗?y:需要;n:不需要";
  25. cin>>Ques7;
  26. cout<<"行间距(正整数):";
  27. cin>>Ques5;
  28. srand(time(NULL));
  29. if(Ques4=='y')
  30. {
  31. while()
  32. {
  33. if(Ques1<)
  34. {
  35. cout<<"输入有误,请重新输入:";
  36. cin>>Ques1;
  37. }
  38. else
  39. {
  40. for(int j=;j<Ques1;j++)
  41. {
  42. if(j!=&&j%Ques2==)
  43. {
  44. for(int i=;i<Ques5;i++)
  45. {
  46. cout<<endl;
  47. }
  48. }
  49. int num1=rand()%Ques3;
  50. int num2=rand()%Ques3;
  51. int sign=rand()%;
  52. switch(sign)
  53. {
  54. case :
  55. cout<<j+<<":"<<" "<<num1<<"+"<<num2<<"="<<"\t";
  56. break;
  57. case :
  58. if(Ques7=='y')
  59. {
  60. cout<<j+<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
  61. }
  62. else
  63. {
  64. if(num1>num2)
  65. {
  66. cout<<j+<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
  67. }
  68. else
  69. {
  70. cout<<j+<<":"<<" "<<num2<<"-"<<num1<<"="<<"\t";
  71. }
  72. }
  73. break;
  74. case :
  75. cout<<j+<<":"<<" "<<num1<<"*"<<num2<<"="<<"\t";
  76. break;
  77. case :
  78. if(num2!=)
  79. {
  80. cout<<j+<<":"<<" "<<num1<<"/"<<num2<<"="<<"\t";
  81. }
  82. else
  83. {
  84. j--;
  85. }
  86. break;
  87. }
  88. }
  89. break;
  90. }
  91. }
  92. break;
  93. }
  94. if(Ques4=='n')
  95. {
  96. while()
  97. {
  98. if(Ques1<)
  99. {
  100. cout<<"输入有误,请重新输入:";
  101. cin>>Ques1;
  102. }
  103. else
  104. {
  105. for(int j=;j<Ques1;j++)
  106. {
  107. if(j!=&&j%Ques2==)
  108. {
  109. for(int i=;i<=Ques5;i++)
  110. {
  111. cout<<endl;
  112. }
  113. }
  114. int num1=rand()%Ques3;
  115. int num2=rand()%Ques3;
  116. int sign=rand()%;
  117. switch(sign)
  118. {
  119. case :
  120. cout<<j+<<":"<<" "<<num1<<"+"<<num2<<"="<<"\t";
  121. break;
  122. case :
  123. if(Ques7=='y')
  124. {
  125. cout<<j+<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
  126. break;
  127. }
  128. else
  129. {
  130. if(num1>num2)
  131. {
  132. cout<<j+<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
  133. break;
  134. }
  135. else
  136. {
  137. cout<<j+<<":"<<" "<<num2<<"-"<<num1<<"="<<"\t";
  138. break;
  139. }
  140. }
  141. break;
  142. }
  143. }
  144. }
  145. break;
  146. }
  147. break;
  148. }
  149.  
  150. else
  151. {
  152. cout<<"输入有误,请按要求输入!"<<endl;
  153. }
  154. }
  155. cout<<endl;
  156. while()
  157. {
  158. cout<<"还需要继续出题还是退出?(y:继续出题;n:退出)";
  159. cin>>Ques6;
  160. if(Ques6=='y')
  161. {
  162. goto Again;
  163. }
  164. if(Ques6=='n')
  165. {
  166. goto Exit;
  167. }
  168. else
  169. {
  170. cout<<"输入有误,请重新输入:";
  171. }
  172. }
  173. Exit:
  174. return ;
  175. }

三、运行结果

四、实验总结

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

四则运算出题器(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. HTML框架标签

    与HTML框架有关的标签主要有三种: <frameset>框架结构标签 <frame>框架标签 <iframe>内联框架标签 一. 先来说第一种框架结构标签 < ...

  2. UIButton设置imgae图片自适应button的大小且不变形

    在某些情况下,我们使用的UIButton的背景图片不一定就是标准的尺寸,有时会偏大,那么怎么办? 这个比较简单直接设置 :    self.imageView.contentMode = UIView ...

  3. (转载)Android content provider基础与使用

    android有一个独特之处就是,数据库只能被它的创建者所使用,其他的应用是不能访问到的,所以如果你想实现不同应用之间的数据共享,就不得不用content provider了.在Android中,co ...

  4. 在WP8项目中使用ARMASM

    由于之前项目中某些密集运算优化的需要,涉及到ARMASM相关的内容, 所以有幸可以在此分享一下自己的经验. 先铺垫一些知识: 1. ARM处理器有两种指令ARM.THUMB, 在WP8下默认是THUM ...

  5. CentOS学习笔记--系统服务 (daemons)

    系统服务 (daemons) 系统为了某些功能必须要提供一些服务 (不论是系统本身还是网络方面),这个服务就称为 service . 但是 service 的提供总是需要程序的运行吧!否则如何运行呢? ...

  6. SQLServer附加数据库5120错误

    装有MSSQL的电脑 需要附加的数据库文件(*.mdf)及其日志文件(*.ldf) 1. 打开SQL Server Management Studio,并连接上数据库.右键"数据库" ...

  7. WindowsApi 解压缩文件

    .解压方法 转载自http://www.2cto.com/kf/201204/128704.html "C#解压.zip文件,网上一搜一大堆方法,有使用System.IO.Compressi ...

  8. 使用junit进行Spring测试

    这几天在做SpringMVC的项目,现在总结一下在测试的时候碰到的一些问题. 以前做项目,是在较新的MyEclipse(2013)上面进行Maven开发,pom.xml 文件是直接复制的,做测试的时候 ...

  9. PHP实例 表单数据插入数据库及数据提取 用户注册验证

    网站在进行新用户注册时,都会将用户的注册信息存入数据库中,需要的时候再进行提取.今天写了一个简单的实例. 主要完成以下几点功能: (1)用户进行注册,实现密码重复确认,验证码校对功能. (2)注册成功 ...

  10. 小木棍 (codevs 3498)题解

    [问题描述] 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过100. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长 ...