二柱子四则运算2.0版本

支持真分数的四则运算

可以自定义题目数量

源代码:

  1 #include<stdio.h>
  2 #include<iostream>
  3 #include<time.h>
  4 #include<string>
  5 using namespace std;
  6 int main()
  7 {srand( (unsigned)time( NULL ) );
  8 int i,k,p,v,a,b;
  9 int *s1,*s2,*s3;
 10 char n;
 11 string *sc1,*sc2,*f;
 12 string g[4]={"+","-","×","÷"};
 13 cout<<"请问您想输出多少题目?"<<endl;
 14 cin>>p;
 15 cout<<"请输入操作数值最大范围。"<<endl;
 16 cin>>v;
 17 cout<<"请问是否含有真分数?"<<endl;
 18 cin>>n;
 19 s1=new int[p+1];//动态数组
 20 s2=new int[p+1];
 21 s3=new int[p+1];
 22 sc1=new string[p+1];
 23 sc2=new string[p+1];
 24 f=new string[p];
 25 cout<<"以下为随机选取的题目:"<<endl;
 26 if(n==‘N‘)
 27 {
 28 for(i=1;i<=p;i++)
 29 {
 30     sc1[i]=g[rand()%4];
 31     sc2[i]=g[rand()%4];
 32     s1[i]=rand()%v+1;
 33     s2[i]=rand()%v+1;
 34     s3[i]=rand()%v+1;//随机取运算符和数,v为最大操作数。
 35         if(i==1)
 36         {cout<<s1[i]<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"=   ";
 37         }
 38         else
 39         {
 40             for(k=0;k<i;k++)//避免重复
 41             {
 42                 if(sc1[k]==sc1[i]&&sc2[k]==sc2[i]&&s1[k]==s1[i]&&s2[k]==s2[i]&&s3[k]==s3[i])
 43                 {
 44                     i--;
 45                     break;
 46                 }
 47                 else//比较到最后一个的时候输出题目
 48                 {
 49                     if(k==i-1)
 50                     {cout<<s1[i]<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"=   ";
 51                     }
 52                 }
 53             }
 54         }
 55             if(i%3==0)//每行输出3题目
 56         {
 57             cout<<endl;
 58             cout<<endl;//每行之间空一行
 59         }
 60 }
 61 }
 62 else if(n==‘Y‘)
 63     {
 64         for(i=1;i<=p;i++)
 65         {
 66     sc1[i]=g[rand()%4];
 67     sc2[i]=g[rand()%4];
 68     s1[i]=rand()%v+1;
 69     s2[i]=rand()%v+1;
 70     s3[i]=rand()%v+1;//随机取运算符和数,v为最大操作数。for(i=1;i<=p;i++)
 71         a=rand()%100;
 72         b=rand()%3;//在三个整数确定一个为真分数
 73         if(b==1&&a>s1[i])
 74         {
 75             if(i==1)
 76             {
 77                 cout<<s1[i]<<"/"<<a<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"=   ";
 78             }
 79             else
 80             {
 81                 for(k=0;k<i;k++)
 82                 {
 83                     if(sc1[k]==sc1[i]&&sc2[k]==sc2[i]&&s1[k]==s1[i]&&s2[k]==s2[i]&&s3[k]==s3[i])
 84                     {
 85                         i--;
 86                         break;
 87                     }
 88                     else//比较到最后一个的时候输出题目
 89                     {
 90                         if(k==i-1)
 91                         {cout<<s1[i]<<"/"<<a<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"=   ";
 92                         }
 93                     }
 94                 }
 95             }
 96             if(i%3==0)//每行输出3题目
 97         {
 98             cout<<endl;
 99             cout<<endl;//每行之间空一行
100         }
101         }
102         else if(b==2&&a>s2[i])
103         {
104             if(i==1)
105             {
106                 cout<<s1[i]<<sc1[i]<<s2[i]<<"/"<<a<<sc2[i]<<s3[i]<<"=   ";
107             }
108             else
109             {
110                 for(k=0;k<i;k++)
111                 {
112                     if(sc1[k]==sc1[i]&&sc2[k]==sc2[i]&&s1[k]==s1[i]&&s2[k]==s2[i]&&s3[k]==s3[i])
113                     {
114                         i--;
115                         break;
116                     }
117                     else//比较到最后一个的时候输出题目
118                     {
119                         if(k==i-1)
120                         {cout<<s1[i]<<sc1[i]<<s2[i]<<"/"<<a<<sc2[i]<<s3[i]<<"=   ";
121                         }
122                     }
123                 }
124             }
125             if(i%3==0)//每行输出3题目
126         {
127             cout<<endl;
128             cout<<endl;//每行之间空一行
129         }
130         }
131         else if(b==3&&a>s3[i])
132         {
133             if(i==1)
134             {
135                 cout<<s1[i]<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"/"<<a<<"=   ";
136             }
137             else
138             {
139                 for(k=0;k<i;k++)
140                 {
141                     if(sc1[k]==sc1[i]&&sc2[k]==sc2[i]&&s1[k]==s1[i]&&s2[k]==s2[i]&&s3[k]==s3[i])
142                     {
143                         i--;
144                         break;
145                     }
146                     else//比较到最后一个的时候输出题目
147                     {
148                         if(k==i-1)
149                         {cout<<s1[i]<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"/"<<a<<"=   ";
150                         }
151                     }
152                 }
153             }
154             if(i%3==0)//每行输出3题目
155         {
156             cout<<endl;
157             cout<<endl;//每行之间空一行
158         }
159         }
160         else
161         {i--;
162         }
163         }
164         }
165    return 0;
166 }

运行截图:

原文地址:https://www.cnblogs.com/guantianhuan/p/9757397.html

时间: 2024-10-25 18:08:16

二柱子四则运算2.0版本的相关文章

二柱子四则运算定制版+升级版

题目:在上次程序的基础上,实现对连除的判断,并且实现多个数的混合运算,要求可以输入结果,并进行判断. 思路:基于上次程序,首先思考混合运算,这里运用两个数组,分别记录随机产生的运算数和运算符号.然后对连除进行判断,,检查运算符号数组里是否有连续的除号,有的话加上括号,避免歧义.最后对运算结果进行计算,并对用户输入的结果进行比较,给出相应提示,回答,计算方面,要优先对括号,乘除进行运算,然后再进行加减运算,每次运算完后都要记录下运算的结果. 代码: //吕广浩 3/19 #include<iost

RIGHT-BICEP单元测试——“二柱子四则运算升级版”

RIGHT-BICEP单元测试 ——“二柱子四则运算升级版” ”单元测试“这对于我们来说是一个全新的专业含义,在上了软件工程这门课,并当堂编写了简单的"求一组数中的最大值"函数的单元测试之后,我们对它有了全新的认识. 单元测试:即为, 老师让我们回去之后将“二柱子四则运算升级版”的程序进行单元测试(二柱子程序的源码我已经上传,这里不再重复,只列举单元测试的部分和分析),如下: PS.这里附上老师上课讲的关于RIGHT-BICEP测试的方法: 6个值得测试的具体部位,他们能够提高我们的测

二柱子四则运算3

二柱子四则运算3 可怜的二柱子……又一次被坑了…… 老师又在上次的“二柱子四则运算2”的基础上增添了要求,如下: 1.学生写的程序必须能判定用户的输入答案是否正确.直到题目结束,告诉用户做对了几道题. 2.程序必须能处理四种运算的混合模式. 注意:连续的减法和除法,应该遵守左结合的规定. 连续除法要打括号,否则会引起歧义. 一.实验思路 二.实验源代码 三.实验总结和反思 最后,附上我和我的小伙伴的工作照……没有正脸.老师们不要介意啦啦啦~~~~ 小伙伴博客内容页:http://www.cnbl

二柱子四则运算在线答题系统

一:要求: 1.实现在线答题. 2.答题结束后,可以判断对错. 3.并将错题的结果保存起来. 二:设计思路: 1.利用第一次实习的随机出题代码进行出题,然后我们设计让用户进行答题,把用户的答案与题目的正确答案进行比较,然后与正确的答案不一样,我们则显示回答错误,假如和正确答案一致我们则显示回答正确,然后利用i对回答正确的题目进行统计,在最后进行显示,这样我们就编写出一个完整的在线答题判卷系统. 三:程序代码: #include <stdio.h> #include <time.h>

二柱子-四则运算2

一.设计思想 1.避免重复:输出时,确定了运算符号,两个运算数都相同时,重新随机产生操作数,再循环重新产生式子. 2.可定制:设计菜单,可选择数目,也可进行下列各项的选择. 3.是否有乘除法:菜单中选择了有乘除法,则无需修改:无乘除法,则随机产生的运算符号中就去除产生乘除的数字的可能. 4.是否有括号:如果选择了有括号的,可像运算符号那样,产生1-2随机数,根据随机数产生左右括号. 5.数值范围:在菜单中可选择是50以内.100以内等的选项,可在产生随机数中确定两个运算数的范围. 6.加减有无负

二柱子—四则运算1

设计思路: 1.用rand函数随机生成这两个运算数: 2.随机生成这两个数并通过取余数的方式把它们控制在100以内.其中,考虑到除数不能为零,第二个运算数随机产生时+1: 3.随机产生运算符号,运算符号一共有4种,也可以随机产生1-4的数,分情况进行四则运算. 二.程序代码 #include "stdafx.h"#include "stdlib.h" void randout()     //产生随机数并产生随机运算函数{    int x1,x2;   //两个运

小学生二年级四则运算2.0

在原有基础之上,希望加上分数的四则运算. 此次编程实现功能:30道四则运算题的编写(不重复编写) 支持整型四则运算,还有分数四则运算 可制定出题的数量 1 //开始编程时间:15:18 2 //结束编程时间:16:42 3 #include <iostream> 4 #include <time.h> 5 #include <stdlib.h> 6 using namespace std; 7 #define max 100 8 #define n 30 9 int m

苦逼的二柱子的四则运算问题

问题:二柱子将做好的项目交给了老师,几天后又得到新的需求:   1.实现在线答题:   2.答题结束后,可以判断对错:   3.并将错题的结果保存起来 #include<iostream>#include<stdarg.h>#include<stdlib.h>#include<time.h>#include<math.h>using namespace std;int main(){cout<<endl;cout<<&qu

二柱子2.0编程总结

                                                                                时间记录表: 学生         王美仪                单位(分钟)         日期        2018.10.8             教师         王建民 日期 开始时间 结束时间 中断时间 净时间 活动 备注 2018.10.8 18:30 19:52 0 82 编程 基本完成 2018310.