四则运算出题器
今天上課,老師講到一個很有意思的小故事,一個小孩的爸爸為了方便給孩子出題編了個程序,但被學校知道后對他提出了一系列進一步的要求,把一個簡單的四則運算出題器程序變成了一個很龐大的工程,大工程我是不會的,但是簡單的四則運算出題器程序還是想自己試著寫一下:
設計思路如下:
1、決定第一個數是否為分數
2、決定第二個數是否為分數
3、生成第一個數
???2.1若為分數則分別生成分子和分母(分母不為零且分子小于分母)
????2.11分數化為最簡
4、生成符號
5、生成第二個數
???5.1若為分數則分別生成分子和分母(分母不為零且分子小于分母且分子也不為零)
??????5.11分數化為最簡
6、輸出
?
代碼如下:
package 四則運算; public class Sizeyunsuan {public static void main(String[] args) {for(int i=0;i<30;i++){int m=(int)(Math.random()*2);//用于區分是否為分數計算,0-分數,1-整數String suanshi=new String();//分數運算if(m==0){int numup1,numdown1,fuhao,numup2,numdown2;//生成第一個數numup1=(int)(Math.random()*100);numdown1=(int)(Math.random()*100);//如果分母是0則從新生成分母while(numdown1==0){numdown1=(int)(Math.random()*100);}suanshi=suanshi+"("+numup1+"/"+numdown1+")";//生成符號fuhao=(int)(Math.random()*4);if(fuhao==0) suanshi=suanshi+"+";if(fuhao==1) suanshi=suanshi+"-";if(fuhao==2) suanshi=suanshi+"*";if(fuhao==3) suanshi=suanshi+"/";//生成第二個數if(fuhao==3){numup2=(int)(Math.random()*100);while(numup2==0){numdown2=(int)(Math.random()*100);}//如果分子是0則從新生成分子numdown2=(int)(Math.random()*100);while(numdown2==0){numdown2=(int)(Math.random()*100);} //如果分母是0則從新生成分母 }else{numup2=(int)(Math.random()*100);numdown2=(int)(Math.random()*100); while(numdown2==0){numdown2=(int)(Math.random()*100);}//如果分母是0則從新生成分母 }suanshi=suanshi+"("+numup2+"/"+numdown2+")=";}//整數運算if(m==1){int num1,fuhao,num2;//生成第一個數num1=(int)(Math.random()*100);suanshi=suanshi+num1;//生成符號fuhao=(int)(Math.random()*4);if(fuhao==0) suanshi=suanshi+"+";if(fuhao==1) suanshi=suanshi+"-";if(fuhao==2) suanshi=suanshi+"*";if(fuhao==3) suanshi=suanshi+"/";//生成第二個數if(fuhao==3){num2=(int)(Math.random()*100);while(num2==0){num2=(int)(Math.random()*100);}}else{num2=(int)(Math.random()*100);}suanshi=suanshi+num2+"=";}System.out.println(suanshi);}} }?
截圖如下:
轉載于:https://www.cnblogs.com/hehejeson/articles/5250322.html
總結
- 上一篇: 构建之法阅读笔记之速读篇
- 下一篇: 四则运算(可怜的二柱子)2