四则运算2代码实现

1.设计思想:

主要运用switch语句进行选择,运用随机函数避免题目重复,其他思想在上一篇有所陈述。

2.源程序代码:

  1 //信1305 郭婷 20132916
  2 #include <iostream>
  3 #include <time.h>
  4 using namespace std;
  5
  6 int main()
  7 {
  8     srand(time(NULL));
  9     int x1,x2,flag,i,j;
 10     int x3,x4;
 11     int a1,a2;
 12     char a3,a4,a5,a6;
 13     int n;
 14     //可定制打印的题目数
 15     cout<<"请输入要打印的题目数:";
 16     cin>>a1;
 17     while(a1<=0)
 18     {
 19         cout<<"请重新输入有效的题目数:";
 20         cin>>a1;
 21     };
 22     //可定制运算数的范围
 23     cout<<"请输入运算数的范围(大于1的数):";
 24     cin>>a2;
 25     while(a1<=0)
 26     {
 27         cout<<"请重新输入有效的范围:";
 28         cin>>a2;
 29     };
 30     //可定制题目中是否有乘除法
 31     cout<<"请选择否有乘除法(Y/N):";
 32     cin>>a3;
 33     while ((a3!=‘Y‘)&(a3!=‘N‘))
 34     {
 35         cout<<"请重新输入有效的数值:";
 36         cin>>a3;
 37     };
 38     //可定制题目结果是否有负数
 39     cout<<"请选择结果有无负数(Y/N):";
 40     cin>>a4;
 41     while((a4!=‘Y‘)&(a4!=‘N‘))
 42     {
 43         cout<<"请重新输入有效的数值:";
 44         cin>>a4;
 45     };
 46     //可定制结果是否有余数
 47     cout<<"请选择结果有无余数(Y/N)";
 48     cin>>a5;
 49     while((a5!=‘Y‘)&(a5!=‘N‘))
 50     {
 51         cout<<"请重新输入有效的数值:";
 52         cin>>a5;
 53     };
 54     //可定制是否支持分数
 55     cout<<"请选择是否支持分数(Y/N):";
 56     cin>>a6;
 57     while((a6!=‘Y‘)&(a6!=‘N‘))
 58     {
 59         cout<<"请重新输入有效的数值:";
 60         cin>>a6;
 61     };
 62      cout<<"每行输出的题目数:";
 63      cin>>n;
 64     //循环打印符合要求的题目
 65     for (i=0;i<a1;i++)
 66     {
 67         switch (a3)
 68         {
 69         case ‘Y‘:j=rand()%4;
 70             break;
 71         case ‘N‘:j=rand()%2;
 72             break;
 73         }
 74         x1=rand()%a2+1;
 75         x2=rand()%a2+1;
 76         //循环打印
 77
 78         if (j==0)
 79         {
 80             switch(a6)
 81             {
 82             case ‘N‘:cout<<i+1<<" "<<x1<<"+"<<x2<<"=  ";
 83                 if ((i+1)%n==0)
 84                 {
 85                     cout<<endl;
 86                 }
 87                 break;
 88             case ‘Y‘:x3=rand()%9+1;
 89                 x4=rand()%9+1;
 90                 cout<<i+1<<" "<<x1<<"/"<<x2<<"+"<<x3<<"/"<<x4<<"=  ";
 91                 if ((i+1)%n==0)
 92                 {
 93                     cout<<endl;
 94                 }
 95                 break;
 96             }
 97         }
 98         if (j==1)
 99         {
100             switch(a4)
101             {
102             case ‘Y‘:
103                 break;
104             case ‘N‘:
105                 if (x1<x2)
106                 {
107                     flag=x1;
108                     x1=x2;
109                     x2=flag;
110                 }
111                 break;
112             }
113             switch (a6)
114             {
115             case ‘N‘:cout<<i+1<<" "<<x1<<"-"<<x2<<"=  ";
116                 if ((i+1)%n==0)
117                 {
118                     cout<<endl;
119                 }
120                     break;
121             case ‘Y‘:
122                 x3=rand()%9+1;
123                 x4=rand()%9+1;
124                 cout<<i+1<<" "<<x1<<"/"<<x2<<"-"<<x3<<"/"<<x4<<"=  ";
125                 if ((i+1)%n==0)
126                 {
127                     cout<<endl;
128                 }
129                     break;
130             }
131         }
132         if (j==2)
133             switch(a6)
134             {
135             case ‘N‘:cout<<i+1<<" "<<x1<<"*"<<x2<<"=  ";
136                 if ((i+1)%n==0)
137                 {
138                     cout<<endl;
139                 }
140                 break;
141             case ‘Y‘:
142                 x3=rand()%9+1;
143                 x4=rand()%9+1;
144                 cout<<i+1<<" "<<x1<<"/"<<x2<<"*"<<"("<<x3<<"/"<<x4<<")"<<"=  ";
145                 if ((i+1)%n==0)
146                 {
147                     cout<<endl;
148                 }
149                 break;
150             }
151         if (j==3)
152         {
153             switch(a5)
154             {
155             case ‘Y‘:
156                     break;
157                 case ‘N‘:
158                     while (x1%x2!=0)
159                     {
160                         x1=rand()%a2+1;
161                         x2=rand()%a2+1;
162                     };
163                     break;
164             }
165             switch(a6)
166             {
167             case ‘Y‘:cout<<i+1<<" "<<x1<<"/"<<x2<<"=  ";
168                 if ((i+1)%n==0)
169                 {
170                     cout<<endl;
171                 }
172                 break;
173             case ‘N‘:
174                 x3=rand()%9+1;
175                 x4=rand()%9+1;
176                 cout<<i+1<<" "<<"("<<x1<<"/"<<x2<<")"<<"/"<<"("<<x3<<"/"<<x4<<")"<<"=  ";
177                 if ((i+1)%n==0)
178                 {
179                     cout<<endl;
180                 }
181                 break;
182             }
183
184         }
185     }
186
187     return 0;
188 }

3.程序截图

4.编程总结

刚一开始看到这个题目,感觉有点难,要求挺多。但是经过对每一个要求的分析和理解,将这个程序由大化小,先将一个个小的要求实现,在将这些要求程序连接起来,就可以将一个看似麻烦的程序变得简单了;还有就是对于题目的重复问题,我在网上查过之后,找到了srand(time(NULL));这个函数。其中不足的是是否支持分数,如果选择是,则题目中都是分数。

5.时间记录日志

时间: 2024-09-16 06:41:55

四则运算2代码实现的相关文章

十进制四则运算计算器代码,输入为字符串

转发个严蔚敏老师的<数据结构及应用算法教程>里的十进制四则运算计算器代码,实习生笔试遇到过不会写,特此做个记录. ************************** 文件:calculator.c ************************** #define NonEmpty 0#define PLUS -1 // '+'#define MINUS -2 // '-'#define ASTERISK -3 // '*' #define SLANT -4 // '/'#define M

对随机产生分数或整数的四则运算的代码实现

一设计思想: 一.完成如何实现随机调取两个数和一个四则运算符号 二.如何实现以四则运算题的形式输出 三.如何实现选择性输出多少题 四.如何补加输出分数的功能 二.代码实现 package com.minirisoft; import java.util.*; public class Yunsuan { public static void main(String[] args){ Scanner input=new Scanner(System.in); System.out.println(

四则运算2代码测试

思路:每个变量,例如:(打印方式)有0/1两种选择,因此进行代码测试时要每种情况都试一下 前提:本程序每次需要输入的变量依次为:1,题目数量:2,数值范围:3,打印方式(0/1):4,有无乘除运算(0/1):5,加减运算中运算结果有负数(0/1) 测试数据: 第一组:10,10,0,0,0 第二组:10,10,1,0,0 第三组:10,10,0,0,1 第四组:10,10,0,1,0 第五组:10,10,1,1,1 第六组:10,10,1,0,0 第七组:20,20,1,0,1 总结:经过代码测

四则运算app代码上传GITHUB

团队: 郭志豪:http://www.cnblogs.com/gzh13692021053/ 杨子健:http://www.cnblogs.com/yzj666/ 刘森松:http://www.cnblogs.com/lssh/ 谭宇森:http://www.cnblogs.com/dalaotan/ GITHUB地址:https://github.com/Sub-key/1/tree/master/app app功能实现                         主要类代码: Cacul

四则运算2代码

一.问题描述: 一.要求: 1.题目避免重复 2.可定制(数量/打印方式) 3.可以控制下列参数:是否有乘除法,是否有括号,数值范围,加减有无负数,除法有无余数,是否支持分数(真分数假分数),     是否支持小数(精确到多少位),打印中每行的间隔. 二.问题分析: 问题一:题目避免重复 srand(time(NULL))函数: 问题二:可定制(数量/打印方式) 数量:将题目数量以数组的形式让用户输入: 打印方式:以用户的输入数字来选择打印方式,几行几列...: 问题三:可以控制:是否有乘除法.

四则运算界面代码1

package opar; import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionListener;import java.util.*; import javax.swing.*;import java.awt.event.ActionEvent;import java.awt.Color;import java.awt.Font; public class T {    private st

关于四则运算的代码debug测试

1.首先检测题目是否能为负数,0? 截图: 总结:如图所示出题数目为0的时候,并没提示重新输入,而是输出空白,而当输出题目为负数的时候系统提示错误,并且提示终止 2.检测操作值得范围:   总结:当操作数范围为负数的时候,系统并未提示出错,但是范围为负数的绝对值,而当把范围设置为0的时候,系统提示停止工作 3.当输入(Y/N)意外的字符时会出现什么结果? 截图: 总结:如图所示当输入字母或者数字的时候系统出错,输出空格,并无运算式输出 4.当运算式的个数和间隔输入字母或者数字的时候系统有无报错?

个人作业1——四则运算题目生成程序(基于控制台)

No.1 四则运算题目生成程序(基于控制台) 程序代码 需求分析: 能够根据用户自身对题目数量的需求自动生成一定数量的包含分数的四则运算题目的命令行程序. 功能设计: 除了整数以外,还要支持真分数的四则运算,真分数的运算 并且要求能处理用户的输入,并判断对错,打分统计正确率 要求能处理用户输入的真分数 使用 -n 参数控制生成题目的个数 设计实现: 程序是用c++实现的,主要有四个函数,主函数随机生成整数或者分数算法,divisor(int i, int j)计算最大公约数,zs为计算整数算法,

自动生成小学生四则运算(C语言)

我写的这个自动生成小学生四则运算的代码是根据我在百度上看到的一篇博客改的,地址为http://www.cnblogs.com/ys1101/p/4368103.html.它的功能不够完整,只有整数的加.减.乘.除,我在此基础上增加了真分数的加.减.乘.除,及统计分数.我把我写的代码放在了GitHub上,地址为https://github.com/cygoodboy/helloworld.