四则运算出题器(c++)

一、设计思路

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

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

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

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

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

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

二、代码

  1 #include<iostream.h>
  2 #include<stdlib.h>
  3 #include<time.h>
  4 int main()
  5 {
  6     int Ques1=1;
  7     int Ques2=1;
  8     int Ques3=100;
  9     char Ques4=‘y‘;
 10     int Ques5=1;
 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(1)
 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(1)
 32             {
 33                 if(Ques1<1)
 34                 {
 35                     cout<<"输入有误,请重新输入:";
 36                     cin>>Ques1;
 37                 }
 38                 else
 39                 {
 40                     for(int j=0;j<Ques1;j++)
 41                     {
 42                         if(j!=0&&j%Ques2==0)
 43                         {
 44                             for(int i=0;i<Ques5;i++)
 45                             {
 46                                 cout<<endl;
 47                             }
 48                         }
 49                         int num1=rand()%Ques3;
 50                         int num2=rand()%Ques3;
 51                         int sign=rand()%4;
 52                         switch(sign)
 53                         {
 54                         case 0:
 55                             cout<<j+1<<":"<<" "<<num1<<"+"<<num2<<"="<<"\t";
 56                             break;
 57                         case 1:
 58                             if(Ques7==‘y‘)
 59                             {
 60                                 cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
 61                             }
 62                             else
 63                             {
 64                                 if(num1>num2)
 65                                 {
 66                                     cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
 67                                 }
 68                                 else
 69                                 {
 70                                     cout<<j+1<<":"<<" "<<num2<<"-"<<num1<<"="<<"\t";
 71                                 }
 72                             }
 73                             break;
 74                         case 2:
 75                             cout<<j+1<<":"<<" "<<num1<<"*"<<num2<<"="<<"\t";
 76                             break;
 77                         case 3:
 78                             if(num2!=0)
 79                             {
 80                                 cout<<j+1<<":"<<" "<<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(1)
 97             {
 98                 if(Ques1<1)
 99                 {
100                     cout<<"输入有误,请重新输入:";
101                     cin>>Ques1;
102                 }
103                 else
104                 {
105                     for(int j=0;j<Ques1;j++)
106                     {
107                         if(j!=0&&j%Ques2==0)
108                         {
109                             for(int i=0;i<=Ques5;i++)
110                             {
111                                 cout<<endl;
112                             }
113                         }
114                         int num1=rand()%Ques3;
115                         int num2=rand()%Ques3;
116                         int sign=rand()%2;
117                         switch(sign)
118                         {
119                         case 0:
120                             cout<<j+1<<":"<<" "<<num1<<"+"<<num2<<"="<<"\t";
121                             break;
122                         case 1:
123                             if(Ques7==‘y‘)
124                             {
125                                 cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
126                                 break;
127                             }
128                             else
129                             {
130                                 if(num1>num2)
131                                 {
132                                     cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"\t";
133                                     break;
134                                 }
135                                 else
136                                 {
137                                     cout<<j+1<<":"<<" "<<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(1)
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 0;
175 }

三、运行结果

四、实验总结

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

时间: 2024-11-06 18:01:07

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

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

一.实验题目 四则运算扩展----能接受答案并判断对错然后给出成绩. 二.实验思路 在每次输出算式后面输入答案,然后判断对错,对则统计. 稍微优化了一下界面. 三.代码 1 // 12345.cpp : 定义控制台应用程序的入口点. 2 // 3 4 #include "stdafx.h" 5 #include"iostream" 6 #include<stdlib.h> 7 #include<time.h> 8 #include<ma

多功能四则运算出题器

一.设计思想 1.为了保证题目避免重复,我采用了srand函数来实现: 2.可定制(数量/打印方式) 定制数量:手动输入一个数n,然后把原来循环中的固定的数30,改成n,然后自动出题. 打印方式:可以自己选择每行可以打印几个 3.可以控制下列参数: (1)是否有乘除法:通过编写两个函数来实现,一个函数带乘除,另一个函数不带乘除.通过提示来选择是否有乘除即可. (2)数值范围:可以控制出的四则运算的题目是几进制的,就用rand()%f,通过输入f的值来实现. (3)加减有无负数:保证减法无负数,就

四则运算出题器3

一.实验题目 这次我的程序,是对四则运算2的进一步扩展 我选的是第一个方向:程序能够接受用户输入的答案,并能判定对错,最后还可以给出总共对/错的数量. 二.实验扩展思想 1.因为我给每个题目都编了序号,所以再输入答案的时候只需按着题目的顺序输入就可以了. 2.判断对错,我是事先定义了一个数组,来存放正确答案,最后把用户输入的答案和正确答案做比较即可 3.给出对/错的数量,这个比较容易,只需要设计两个变量,一个用来计算正确的个数,一个用来计算错误的个数,最后给出答案即可. 三.实验代码 //作者:

《结对-四则运算出题器-测试过程》

为了对这个计算器进行有效地检验,设计了几组测试案例,测试结果如下: Test No.1: (1.11) = 1.110000 Test No.2: 1.11+2.22-3.33*4.44/5.55 = 0.666000 Test No.3: 1.11+(2.22-3.33)*4.44/5.55 = 0.222000 Test No.4: 1.11+(2.22-3.33)*(4.44+5.55)/6.66 = -0.555000 Test No.5: 1.11*((2.22-3.33)*(4.44

结对-四则运算答题器-需求分析

四则运算答题器-需求分析 编写目的 本需求分析文档说明描述了四则运算答题器项目的要求,描述了用户对功能的需求. 任务概述 四则运算答题器可以根据用户选择的难度,为其展示相应难度的题目,并在最后显示正确题目数量和错误题目数量. 项目功能 用户可以自由选择四则运算答题器的难度,难度分为简单.困难和极难.每种难度都有10道题(无重复的题目),都有做题所用的时间. 参考资料 四则运算出题器 随机四则运算的出题程序java

实现“小学生算术题出题器”(第一次作业)

本次作业要求:(1)出题器可以随机出四则运算.(2)真分数的运算.以下为程序运行截图: 根据使用说明来输入整数题目的数量,以及分数题目的数量,这里分别以5道题为例. 如果回答正确就会提示“回答正确”,回答错误则会提示“回答错误”.所有题目全部回答完毕将会给出得分情况. 为了便于打印,将所有的算术题存到了文本中. 以上为该程序的内容和使用详情,以下为程序源代码: #include <stdio.h>#include <stdlib.h>#include <time.h>

结对-四则运算答题器-结对项目总结

项目地址:https://github.com/xyhcq/calc 结对成员: 学号:2015035107136 张良 学号:2015035107128 邢云淇 本次结对项目历时2个月,2位成员都是第一次从事结对编程,我们都能感到自己有了很大的收获,在结对编程的过程中,我们交换了一些自己的想法,发现了对方的一些想法优于自己的想法,互相学习了一番. 我们的结对项目为:四则运算答题器,能够根据用户输入的数值来界定出题的算数的最大值,同时可以控制生成计算题的数目,在生成题目后,由用户输入算式的答案来

结对-四则运算答题器-开发环境搭建过程

成员: 0:2015035107136-张良 1:2015035107128-邢云淇 结对项目:四则运算答题器 本次结对编程和团队项目我们都需要用python环境,为了便于书写代码,因此都选择了用pycharm这款ide 先准备好了Python和pycharm社区版安装包(社区版是免费的,功能够用了) 首先安装python2.7.5,一路下一步到finish结束,安装完成,环境变量已经自动配置好了,win+r运行python,成功运行,python环境搭建完毕. 选择安装路径 运行Python,

四则运算出题4

1.题目要求: 将之前的四则运算出题,做成手机APP 或以网页版发布,可以让用户答题,并提示结果正确与否. 2.实现思路: 出题思路不变,将开发工具改到eclipse 上,开发成安卓程序: 3.思路整理(实现步骤): 出题步骤不变,按照之前的四则运算程序的思路,将出题结果显示在textview ,用户输入,并可以判断是否正确,并弹出对话框,提示正确与否,并对每一次的判断进行计数,结束时,提示计数结果. 4.源代码: MainActivity.java文件: package com.er.er0;