軟件工程作業01
寫一個能自動生成三十道小學四則運算題目的 “軟件”,要求:除了整數以外,還要支持真分數的四則運算(需要驗證結果的正確性)、題目避免重復、可定制出題的數量。
思路:隨機生成兩個數進行計算,設立一個隨機的參量用來判斷是生成整數還是分數;生成分數時先生成分母,然后將分子的上限設置為分母,這樣就會生成真分數;
package demo; import java.util.Random; import java.util.Scanner; public class work {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubint a,b;char c;int MAX=100;int MIN=1;char max[]={'+','-','/','*'};Random random1=new Random();//隨即一個整數Random random2=new Random();//隨機另一個整數Random random3=new Random();//隨機符號Random random4=new Random();//隨機生成的類型分數或整數Random random5=new Random();//隨機分母Random random6=new Random();//隨機分子 System.out.println("請輸入要生成的式子的數量");Scanner input=new Scanner(System.in);int number=input.nextInt();for(int i=0;i<number;i++){int choice=random4.nextInt(3)%(3-1+1)+1;if(choice==1){a=random1.nextInt(MAX)%(MAX-MIN+1)+MIN;b=random2.nextInt(MAX)%(MAX-MIN+1)+MIN;c=max[random3.nextInt(4)];System.out.print(a+""+c+""+b+"=");System.out.println(a+b);}//兩個整數if(choice==2){a=random5.nextInt(MAX)%(MAX-2+1)+2;b=random6.nextInt(a)%(a-MIN+1)+MIN;int a1=random5.nextInt(MAX)%(MAX-2+1)+2;int b1=random6.nextInt(a1)%(a1-MIN+1)+MIN;c=max[random3.nextInt(4)];double aa=(double) a;double bb=(double) b;double b11=(double) b1;double a11=(double) a1;double p=aa/bb;double q=a11/b11;double p1=p+q;System.out.print("("+b+"/"+a+")"+c+"("+b1+"/"+a1+")"+"=");System.out.println(p1);}//兩個分數if(choice==3){a=random1.nextInt(MAX)%(MAX-MIN+1)+MIN;int a1=random5.nextInt(MAX)%(MAX-2+1)+2;int b1=random6.nextInt(a1)%(a1-MIN+1)+MIN;c=max[random3.nextInt(4)];double aa=(double) a;double b11=(double) b1;double a11=(double) a1;double p=b11/a11;double q=aa+p;System.out.print(a+""+c+"("+b1+"/"+a1+")"+"=");System.out.println(q);}}}}
?