多功能四则运算出题器

一、设计思想

1.为了保证题目避免重复,我采用了srand函数来实现;

2.可定制(数量/打印方式)

定制数量:手动输入一个数n,然后把原来循环中的固定的数30,改成n,然后自动出题。

打印方式:可以自己选择每行可以打印几个

3.可以控制下列参数:

(1)是否有乘除法:通过编写两个函数来实现,一个函数带乘除,另一个函数不带乘除。通过提示来选择是否有乘除即可。

(2)数值范围:可以控制出的四则运算的题目是几进制的,就用rand()%f,通过输入f的值来实现。

(3)加减有无负数:保证减法无负数,就要做到被减数大于减数,可以把随机产生的两个数进行比较,让最大的做被减数;有负数即不用比较两个数的大小,直接产生即可;

(4)打印中每行的间隔可调整:只要再换行时用一个循环语句,循环输出endl即可。

由于能力有限,其余四个功能:{是否有括号,是否支持分数(真分数,假分数……),是否支持小数(精确到多少位),打印中每行的间隔可调整;}尚未实现

二、代码

下面是我不太成熟的代码:

  1 #include<iostream.h>
  2 #include<stdlib.h>
  3 #include<time.h>
  4
  5 void hycc()
  6 {
  7     int f;//定义要测试的是四则运算是几进制
  8     cout<<"请输入要测试的四则运算是几进制?"<<endl;
  9     cin>>f;
 10     int x,y,z,t;   //x,y分别表示所产生的两个数,z来控制做加减乘除
 11     int e;//输入每行算数题的个数
 12     srand(time(NULL));
 13     int n;
 14     int b;//表示有无负数
 15     int a;//用来输入行间距
 16     cout<<"需要列出多少到数学题?"<<endl;
 17     cin>>n;      //n代表出题的个数
 18     cout<<"加减有无负数?(0代表有负数,1代表无负数)"<<endl;
 19     cin>>b;
 20     cout<<"每行需要打印几个算数题?"<<endl;
 21     cin>>e;
 22     cout<<"打印时行间距是多少?"<<endl;
 23     cin>>a;
 24
 25     cout<<"********************************"<<endl;
 26     for(int i=0;i<n;i++)
 27     {
 28         x=rand()%f;
 29         y=rand()%f;
 30         z=rand()%4;
 31         switch(z)
 32         {
 33         case 0:
 34             cout<<i+1<<"、 "<<x<<"+"<<y<<"="<<"     ";
 35             break;
 36
 37         case 1:
 38             if(b==1)
 39             {
 40             if(x<y)
 41             {
 42                 t=x;
 43                 x=y;
 44                 y=t;
 45             }
 46             cout<<i+1<<"、 "<<x<<"-"<<y<<"="<<"     ";
 47             break;
 48             }
 49             else if(b==0)
 50             {
 51             cout<<i+1<<"、 "<<x<<"-"<<y<<"="<<"     ";
 52             }
 53         case 2:
 54             cout<<i+1<<"、 "<<x<<"*"<<y<<"="<<"     ";
 55             break;
 56         case 3:
 57             if(y!=0)
 58             {
 59             cout<<i+1<<"、 "<<x<<"/"<<y<<"="<<"     ";
 60             }
 61             else
 62             {
 63                 i=i-1;
 64             }
 65             break;
 66         default:
 67             cout<<"超出测试范围"<<endl;
 68             break;
 69         }
 70         if((i+1)%e==0)
 71         {
 72             for(int c=0;c<=a;c++)
 73             {
 74                 cout<<endl;
 75             }
 76         }
 77         if((i+1)==n)
 78         {
 79             cout<<endl;
 80         }
 81     }
 82 }
 83
 84 void bhycc()
 85 {
 86     int f;
 87     cout<<"请输入要测试的四则运算是几进制?"<<endl;
 88     cin>>f;
 89     int e;//输入每行算数题的个数
 90     int x,y,z,t;   //x,y分别表示所产生的两个数,z来控制做加减乘除
 91     srand(time(NULL));
 92     int n;//n代表出题个数
 93     int b;//代表加减有无负数
 94     int a;//用来输入行间距
 95     cout<<"需要列出多少到数学题"<<endl;
 96     cin>>n;      //n代表出题的个
 97     cout<<"加减有无负数?(0代表有负数,1代表无负数)"<<endl;
 98     cin>>b;
 99     cout<<"每行需要打印几个算数题?"<<endl;
100     cin>>e;
101     cout<<"打印时行间距是多少?"<<endl;
102     cin>>a;
103     cout<<"********************************"<<endl;
104     for(int i=0;i<n;i++)
105     {
106         x=rand()%f;
107         y=rand()%f;
108         z=rand()%2;
109         switch(z)
110         {
111         case 0:
112             cout<<i+1<<"、 "<<x<<"+"<<y<<"="<<"     ";
113             break;
114         case 1:
115             if(b==1)
116             {
117             if(x<y)
118             {
119                 t=x;
120                 x=y;
121                 y=t;
122             }
123             cout<<i+1<<"、 "<<x<<"-"<<y<<"="<<"     ";
124             }
125             else if(b==0)
126             {
127                 cout<<i+1<<"、 "<<x<<"-"<<y<<"="<<"     ";
128             }
129             break;
130         default:
131             cout<<"超出测试范围"<<endl;
132             break;
133         }
134         if((i+1)%e==0)
135         {
136             for(int c=0;c<=a;c++)
137             {
138                 cout<<endl;
139             }
140         }
141         if((i+1)==n)
142         {
143             cout<<endl;
144         }
145     }
146 }
147
148
149 int main()
150 {
151
152     char ch;
153     cout<<"是否支持乘除?(Y/N)"<<endl;
154     cin>>ch;
155     if(ch==‘Y‘||ch==‘y‘)
156     {
157         hycc();
158         cout<<"********************************"<<endl;
159     }
160
161     else if(ch==‘N‘||ch==‘n‘)
162     {
163         bhycc();
164         cout<<"********************************"<<endl;
165     }
166     else
167     {
168         cout<<"输入错误,无法为您出题!"<<endl;
169     }
170
171     return 0;
172 }

三、运行结果

四、实验总结

虽然我的程序实现了一部分功能,但是由于我不会定义全局变量,还有一些功能尚未实现;而且在编写程序时遇到的最大的问题就是不会函数调用;有的功能如何实现我还根本没有思路,以后还需要多加练习。

时间: 2024-11-20 15:51:04

多功能四则运算出题器的相关文章

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

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

四则运算出题器3

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

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

一.设计思路 这次版本加入了一下功能: 可定制题目的数量:修改循环次数: 可以定制每行打印的题目数和行间距的大小(当前题目序号可以整除定制数时输出输入的行间距个换行符): 可以定制算式的范围(修改随机数的最大值): 可以选择有无乘除法(没有乘除法即修改符号的情况,有四种改为两种): 可以选择减法中得数是否可以为负(不要负数的情况即比较减式中俩数大小,大数放前面). 二.代码 1 #include<iostream.h> 2 #include<stdlib.h> 3 #include

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

为了对这个计算器进行有效地检验,设计了几组测试案例,测试结果如下: 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,

四则运算 出题项目

项目代码最初是来源自网上的四则运算代码 能实现简单的四则运算出题功能, 不支持括号和累计分数. 使用基于时间产生的1到100的随机数,判断大小来决定运算顺序 改进后能支持真分数的运算,但界面体验不好,还需要优化. 代码链接: https://github.com/q1q2w2w3e3e4/969696