import java.util.*;
public class Operation2 {public static int SIZE(int size)//定制数量
    {int q;q=size;return q;}public static int SecondOperation(String p1)//是否有乘除法
    {int q = 4;if(p1.equals("Y")){q=4;} if(p1.equals("N")){q=2;}return q;}public static String Negative(String p2)//加减有无负数
    {String q;q=p2;return q;}public static String Remainder(String p3)//除法有无余数
    {String q;q=p3;return q;}public static int Max(int max)//最大数
    {int m;m=max;return m;}public static int Min(int min)//最小数
    {int m;m=min;return m;}public static void Display(int SIZE,int SecondOperation,String Negative,String Remainder,int Max,int Min)//算式计算
    {String Again[][]=new String[SIZE][1];//用数组装算式,用以判断是否重复for(int i=0;i<SIZE;i++)//重复次数,用以确定算式多少
        {        int cha=Max-Min;int c,q1,w1,q2,w2;String s1=new String();String s2=new String();String equation=new String();       String symbol=new String();//符号判定c=(int)(Math.random()*SecondOperation);if(c==0) symbol="+";if(c==1) symbol="-";if(c==2) symbol="*";if(c==3) symbol="/";     for(int j=0;j<2;j++)//两次循环,第一次为第一个数字,第二次为第二个数字
            {int n1 =-99999,n2=-99999;//用于后面是否为分数的判定int s=(int)(Math.random()*2);//随机数判定整数或分数,0整数,1分数if(s==0)//整数
                {if(Negative.equals("N")){if(c==0||c==1){while(n1<0){n1=(int)(Min+Math.random()*(cha+1));//随机产生从min到max之间的数
                            }}else{n1=(int)(Min+Math.random()*(cha+1));}}if(Negative.equals("Y")){n1=(int)(Min+Math.random()*(cha+1));}}if(s==1)//分数
                {n1=(int)(Min+Math.random()*(cha+1));//随机产生从min到max之间的数n2=(int)(Min+Math.random()*(cha+1));if(Negative.equals("N")){if(c==0||c==1){while(n1<=0||n2<=0){n1=(int)(Min+Math.random()*(cha+1));n2=(int)(Min+Math.random()*(cha+1));}}else{while(n1==0||n2==0)//分母不能为零
                                {n1=(int)(Min+Math.random()*(cha+1));n2=(int)(Min+Math.random()*(cha+1));}}}if(Negative.equals("Y")){while(n1==0||n2==0)//分母不能为零
                            {n1=(int)(Min+Math.random()*(cha+1));n2=(int)(Min+Math.random()*(cha+1));}}int z1=Math.abs(n1),z2=Math.abs(n2);//取n1和n2的绝对值,以便化简输出int chushu=2;if(z1>z2)//化简
                    {while(z2>=chushu){if(z1%chushu==0&&z2%chushu==0){z1=z1/chushu;z2=z2/chushu;}else{chushu++;}}                    }else if(z1<z2){while(z1>=chushu){if(z1%chushu==0&&z2%chushu==0){z1=z1/chushu;z2=z2/chushu;}else{chushu++;}}}else{z1=1;z2=1;};if(n1<0)//去掉绝对值,返回原来的数
                    {n1=0-z1;}else {n1=z1;}if(n2<0){n2=0-z2;}else {n2=z2;}}if(j==0)//第一个数字
                {q1=n1;w1=n2;if(w1==-1&&q1<0){q1=Math.abs(q1);}if(w1==-1&&q1>0){q1=0-q1;}if(w1>-99999)//如果存在分母,则为分数
                    {if(Math.abs(w1)!=1){if(q1<0&&w1<0){q1=Math.abs(q1);w1=Math.abs(w1);}if(w1<0){s1="("+q1+"/("+w1+"))"+"";}else{s1="("+q1+"/"+w1+")"+"";}}if(Math.abs(w1)==1)//为整数
                        {if(q1>=0){s1=q1+"";}if(q1<0){s1="("+q1+")"+"";}}}else//否则为整数
                    {if(q1>=0){s1=q1+"";}if(q1<0){s1="("+q1+")"+"";}}}if(j==1)//第二个数字
                {q2=n1;w2=n2;if(c==3)//当为除法时,除数不能为0,
                    {while(q2==0){q2=(int)(Min+Math.random()*(cha+1));}//分子或整数不能为0
                    }if(w2==-1&&q2<0){q2=Math.abs(q2);}if(w2==-1&&q2>0){q2=0-q2;}if(w2>-99999)//如果存在分母,则为分数
                    {if(Math.abs(w2)!=1){if(q2<0&&w2<0){q2=Math.abs(q2);w2=Math.abs(w2);}if(w2<0){s2="("+q2+"/("+w2+"))"+"";}else{s2="("+q2+"/"+w2+")"+"";}}else{if(q2<0){s2="("+q2+")"+"";}if(q2>0){s2=q2+"";}}}else//否则为整数
                    {if(q2<0){s2="("+q2+")"+"";}if(q2>0){s2=q2+"";}}if(c==3&&Remainder.equals("N"))//除法无余数
                    {q1=q2*n1;w1=w2;if(w1%n1==0){w1=w1/n1;q1=q1/n1;}if(w1>-99999)//如果存在分母,则为分数
                        {if(Math.abs(w1)!=1){s1="("+q1+"/"+w1+")"+"";}else//否则为整数
                            {s1=q1+"";}}else//否则为整数
                        {s1=q1+"";}}}}equation=equation+s1+symbol+s2+"=";//表达式Again[i][0]=equation;for(int k=0;k<(i+1);k++)//避免重复
            {if(Again[i][0].equals(Again[k][0])){k--;break;}}System.out.println(equation);}}  public static void main(String args[]){String p3="Y";@SuppressWarnings("resource")Scanner sc=new Scanner(System.in);System.out.println("请输入定制数量:");int size=sc.nextInt();System.out.println("是否有乘除法,有(Y),没有(N)");String p1=sc.next();System.out.println("加减有无负数,有(Y),没有(N)");String p2=sc.next();if(p1.equals("Y")){System.out.println("除法有无余数,有(Y),没有(N)");p3=sc.next();}System.out.println("请输入数值范围最大值:");int max=sc.nextInt();System.out.println("请输入数值范围最小值:");int min=sc.nextInt();        int a=SIZE(size);int b=SecondOperation(p1) ;String c=Negative(p2);String d=Remainder(p3);int e=Max(max);int f=Min(min);Display(a,b,c,d,e,f);//函数的调用,实现
    }
}

结果截图:

有乘除法,加减有负数,除法有余数

有乘除法,加减无负数,除法有余数

有乘除法,加减无负数,除法无余数

五乘除法,加减有负数

无乘除法,加减无负数

转载于:https://www.cnblogs.com/mengqimoli/p/5323754.html

Right-BICEP要求设计四则运算2相关推荐

  1. BICEP单元测试——随机四则运算升级版

    一.测试方法 6个值得测试的具体部位: Right-结果是否正确? B-是否所有的边界条件都是正确的? I-能查一下反向关联吗? C-能用其他手段交叉检查一下结果吗? E-你是否可以强制错误条件发生? ...

  2. BICEP单元测试计划——四则运算Ⅱ

    一.测试方法(Right-BICEP) 6个值得测试的具体部位: Right-结果是否正确? B-是否所有的边界条件都是正确的? I-能查一下反向关联吗? C-能用其他手段交叉检查一下结果吗? E-你 ...

  3. c语言求不定式的最大值,C语言之四则运算表达式求值(链栈)—支持浮点型数据,负数, 整型数据运算...

    运算符间的优先级关系: 链栈结构体定义: 数据域使用字符串长度为20的字符数组(故需要注意判断读取的字符串是运算符还是数值) 可支持浮点型数据,负数, 整型数据的运算 float EvaluateEx ...

  4. 无限循环小数四则运算_循环小数period;四则运算

    与<循环小数.四则运算>相关的范文 教学内容:教材第57页例1和"练一练",练习十四第1~~4题. 教学要求:使学生掌握整数.小数四则混合运算的运算顺序, 能按运算顺序 ...

  5. 算法效率分析基础-算法四

    主要内容: 介绍研究算法效率的通用框架 介绍三种符号: O(读作O),Ω(读作omega),和Θ(读作theta).这些数学借来的符号已经成为讨论算法效率的特定语言 使用通用框架系统对非递归算法进行分 ...

  6. CSAPP:计算机基本结构与CPU内部构造

    ​ 看过一遍CSAPP,对计算机的基本结构有了大致了解,但在学习过程中遇到难度较大的第四章,其中关于处理器运作的流程令人十分费解,本篇文章通过对CPU与计算机的大致结构做一个梳理,便于读者理解处理器. ...

  7. 团队作业8--展示博客

    1. 团队成员的简介和个人博客地址,团队的源码仓库地址. 组长:李勇(201421122027) 组员:何忠鹏(201421122024)郑希彬(201421122018)黄进勇(2014211220 ...

  8. c语言做小学生测验程序,[转载]程序设计方法学课程设计--小学生算术四则运算测试程序(C)...

    背景 伴随着人类社会的进步,人们的计算工具也在不断的变化,从远古时期的结绳计数,到算筹,算盘,以及近代的机械计算机.计算尺,直至今天我们广泛运用的电子计算机.计算工具的每一次进步,都导致科学技术发生深 ...

  9. java整数四则运算课设_用面向对象方法设计实现整数的四则运算(java)

    用面向对象方法设计实现整数的四则运算,并编写主程序演示该类用法.(要求:用继承或接口实现) import java.math.BigDecimal; public class OperationImp ...

最新文章

  1. 从1到n整数中1出现的次数
  2. 【MySQL】MySQL开发注意事项与SQL性能优化步骤
  3. h.264 scanning process for transform coefficients
  4. zipfile不能解压分卷压缩的文件
  5. android程序名称,Android应用程序名称带上标
  6. java的未检查异常有哪些_Java:检查异常与未检查异常
  7. xftp6设置默认打开文件的程序_xftp6如何使用?xftp6传输文件的使用详细方法--系统之家...
  8. 【LOJ10034】图书管理(哈希表,字符串)
  9. K-Means原理及代码实现
  10. 光伏组件为何出现白色线条?
  11. 是指可以显示网页服务器或者文件,浏览器是指可以显示网页服务器或者文件系统的HTML文件(标准通用标记语言的一个应用)内容,并让用户与这些文件交互的一种软件。...
  12. python写水仙花的作文_怎样背英语单词才高效?
  13. 信息学奥赛一本通 1367:查找二叉树(tree_a)
  14. 多方位角极化SAR数据处理与信息提取方法
  15. 双硬盘下安装win+linux关于开机引导的问题
  16. Stream流常用操作(超全+实例)
  17. 「Python循环结构」使用while循环实现基金投资
  18. 在OC项目中添加Swift文件并实现混合编程
  19. YOLOv5识别图像内苹果和香蕉
  20. 傅老师课堂:Oracle高级查询之CONNECT BY

热门文章

  1. 计算机网络设备调试经验,一种计算机网络设备调试装置的制作方法
  2. 2020icpc上海赛G题 Fibonacci详解
  3. darknet出现以下错误 /home/ubtu/anaconda3/lib/libQt5Core.so.5:对‘ucnv_toUnicode_58’未定义的引用
  4. java filter 跳过_如何在java中的过滤器链中跳过一个过滤器
  5. 一个小工具,解析微信接龙数据,转成excel表格(附源码)
  6. 2022-03-11 工作记录--PHP-eq(表示等于)、 neq(表示不等于)
  7. dell poweredge服务器_这款AMD服务器不简单
  8. USDP使用笔记(五)设置Hive on Tez解决return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask问题
  9. 使用Termux在安卓手机上运行tomcat服务器
  10. ubuntu背景色改为淡绿色