系統要求:
1、自動出題,涉及加減乘除四則運算
2、運算為兩位數之間
3、減法不能出現負數
4、乘法結果不超過100
5、除法必須整除
6、用戶決定出題量
7、用戶決定幾道題一換行
8、題目不允許重復
1 /** 2 * 班級:信1805-1 3 * 學號:20183566 4 * 姓名:董奧 5 * */ 6 import java.util.Random; 7 import java.util.Scanner; 8 public class Test01 { 9 public static void main(String[] args) { 10 int [][] arr=new int[10000][3];//存儲每個題目,避免重復 11 int [] temp01=new int [3]; 12 Scanner in=new Scanner(System.in); 13 System.out.println("*******給小學生的自動出題系統******"); 14 System.out.println("請輸入題量:"); 15 int m=in.nextInt(); 16 System.out.println("請選擇幾題一換行:"); 17 int n=in.nextInt(); 18 int x=1,y=0,num1,num2,cmp; 19 boolean flag=false;//定義布爾類型變量用來記錄是否重復 20 for (int i = 0; i < m; i++) { 21 flag=false; 22 Random r = new Random();//生成隨機數 23 int temp; 24 num1 = r.nextInt(100)+1; 25 num2 = r.nextInt(100)+1;//生成兩數1~100以內,避免除0情況 26 cmp=r.nextInt(4);//生成0~4,表示加減乘除 27 temp01[0]=num1;//用temp01數組存儲隨機生成的三個數據 28 temp01[1]=num2; 29 temp01[2]=cmp; 30 for(int j=0;j<y;j++) {//查重 31 if(arr[j]==temp01) { 32 flag=true; 33 break; 34 } 35 } 36 if(flag)//如果重復 37 continue; 38 else//如果不重復,則存入數組 39 { 40 arr[y][0]=num1; 41 arr[y][1]=num2; 42 arr[y][2]=cmp; 43 y++; 44 switch(cmp) { 45 case 0://加 46 System.out.print("第"+x+"個題目:"+num1+"+"+num2+"= "); 47 break; 48 case 1://減 49 if(num1<num2) { 50 temp=num1; 51 num1=num2; 52 num2=temp; 53 } 54 System.out.print("第"+x+"個題目:"+num1+"-"+num2+"= "); 55 break; 56 case 2://乘 57 if(num1<num2) { 58 temp=num1; 59 num1=num2; 60 num2=temp; 61 } 62 while(num1*num2>=100) 63 num1--; 64 System.out.print("第"+x+"個題目:"+num1+"*"+num2+"= "); 65 break; 66 case 3: 67 if(num1<num2) { 68 temp=num1; 69 num1=num2; 70 num2=temp; 71 } 72 while(num1%num2!=0) 73 num2--; 74 System.out.print("第"+x+"個題目:"+num1+"/"+num2+"= "); 75 break; 76 } 77 if(x%n==0)//換行 78 System.out.println(); 79 x++; 80 } 81 } 82 } 83 }
