Right-BICEP要求设计四则运算2
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相关推荐
- BICEP单元测试——随机四则运算升级版
一.测试方法 6个值得测试的具体部位: Right-结果是否正确? B-是否所有的边界条件都是正确的? I-能查一下反向关联吗? C-能用其他手段交叉检查一下结果吗? E-你是否可以强制错误条件发生? ...
- BICEP单元测试计划——四则运算Ⅱ
一.测试方法(Right-BICEP) 6个值得测试的具体部位: Right-结果是否正确? B-是否所有的边界条件都是正确的? I-能查一下反向关联吗? C-能用其他手段交叉检查一下结果吗? E-你 ...
- c语言求不定式的最大值,C语言之四则运算表达式求值(链栈)—支持浮点型数据,负数, 整型数据运算...
运算符间的优先级关系: 链栈结构体定义: 数据域使用字符串长度为20的字符数组(故需要注意判断读取的字符串是运算符还是数值) 可支持浮点型数据,负数, 整型数据的运算 float EvaluateEx ...
- 无限循环小数四则运算_循环小数period;四则运算
与<循环小数.四则运算>相关的范文 教学内容:教材第57页例1和"练一练",练习十四第1~~4题. 教学要求:使学生掌握整数.小数四则混合运算的运算顺序, 能按运算顺序 ...
- 算法效率分析基础-算法四
主要内容: 介绍研究算法效率的通用框架 介绍三种符号: O(读作O),Ω(读作omega),和Θ(读作theta).这些数学借来的符号已经成为讨论算法效率的特定语言 使用通用框架系统对非递归算法进行分 ...
- CSAPP:计算机基本结构与CPU内部构造
看过一遍CSAPP,对计算机的基本结构有了大致了解,但在学习过程中遇到难度较大的第四章,其中关于处理器运作的流程令人十分费解,本篇文章通过对CPU与计算机的大致结构做一个梳理,便于读者理解处理器. ...
- 团队作业8--展示博客
1. 团队成员的简介和个人博客地址,团队的源码仓库地址. 组长:李勇(201421122027) 组员:何忠鹏(201421122024)郑希彬(201421122018)黄进勇(2014211220 ...
- c语言做小学生测验程序,[转载]程序设计方法学课程设计--小学生算术四则运算测试程序(C)...
背景 伴随着人类社会的进步,人们的计算工具也在不断的变化,从远古时期的结绳计数,到算筹,算盘,以及近代的机械计算机.计算尺,直至今天我们广泛运用的电子计算机.计算工具的每一次进步,都导致科学技术发生深 ...
- java整数四则运算课设_用面向对象方法设计实现整数的四则运算(java)
用面向对象方法设计实现整数的四则运算,并编写主程序演示该类用法.(要求:用继承或接口实现) import java.math.BigDecimal; public class OperationImp ...
最新文章
- 从1到n整数中1出现的次数
- 【MySQL】MySQL开发注意事项与SQL性能优化步骤
- h.264 scanning process for transform coefficients
- zipfile不能解压分卷压缩的文件
- android程序名称,Android应用程序名称带上标
- java的未检查异常有哪些_Java:检查异常与未检查异常
- xftp6设置默认打开文件的程序_xftp6如何使用?xftp6传输文件的使用详细方法--系统之家...
- 【LOJ10034】图书管理(哈希表,字符串)
- K-Means原理及代码实现
- 光伏组件为何出现白色线条?
- 是指可以显示网页服务器或者文件,浏览器是指可以显示网页服务器或者文件系统的HTML文件(标准通用标记语言的一个应用)内容,并让用户与这些文件交互的一种软件。...
- python写水仙花的作文_怎样背英语单词才高效?
- 信息学奥赛一本通 1367:查找二叉树(tree_a)
- 多方位角极化SAR数据处理与信息提取方法
- 双硬盘下安装win+linux关于开机引导的问题
- Stream流常用操作(超全+实例)
- 「Python循环结构」使用while循环实现基金投资
- 在OC项目中添加Swift文件并实现混合编程
- YOLOv5识别图像内苹果和香蕉
- 傅老师课堂:Oracle高级查询之CONNECT BY
热门文章
- 计算机网络设备调试经验,一种计算机网络设备调试装置的制作方法
- 2020icpc上海赛G题 Fibonacci详解
- darknet出现以下错误 /home/ubtu/anaconda3/lib/libQt5Core.so.5:对‘ucnv_toUnicode_58’未定义的引用
- java filter 跳过_如何在java中的过滤器链中跳过一个过滤器
- 一个小工具,解析微信接龙数据,转成excel表格(附源码)
- 2022-03-11 工作记录--PHP-eq(表示等于)、 neq(表示不等于)
- dell poweredge服务器_这款AMD服务器不简单
- USDP使用笔记(五)设置Hive on Tez解决return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask问题
- 使用Termux在安卓手机上运行tomcat服务器
- ubuntu背景色改为淡绿色