一、題目描述:
從《構建之法》第一章的 “程序” 例子出發,像阿超那樣,花二十分鍾寫一個能自動生成小學四則運算題目的命令行 “軟件”,滿足以下需求:
- 除了整數以外,還要支持真分數的四則運算,真分數的運算,例如:1/6 + 1/8 = 7/24。
- 運算符為 +, −, ×, ÷。
- 並且要求能處理用戶的輸入,並判斷對錯,打分統計正確率。
- 要求能處理用戶輸入的真分數, 如 1/2, 5/12 等。
- 使用 -n 參數控制生成題目的個數,例如執行下面命令將生成10個題目。
Myapp.exe -n 10
二、需求分析:
由題目可得代碼需要實現:
- 自動生成小學四則運算,需要用到隨機數,用隨機數隨機生成數字,能夠隨機生成符號加減乘除(除數不為0)。
- 支持分數和整數的四則運算,同樣是利用隨機數分別生成分子與分母(分母不為0).
- 能夠判斷輸入答案的對錯並統計正確率,要將用戶輸入答案與式子答案進行比較(數字用==,字符串用equals語句完成)。
- 要求輸入的分數可以被識別,此處同樣利用equals來完成。
- 支持命令生成。
三、實現步驟:
- 根據用戶輸入的參數生成相應數量的題目。
- 利用Random語句實現隨機生成的整數、分子、分母以及加減乘除(對於加減乘除,我用if語句實現,0----加,1----減,2----乘,3----除)。
- 通過用戶輸入的答案與式子答案進行比較,判斷對錯,對的返回正確並統計,錯的返回錯誤並附上正確答案但不統計。
- 將統計正確的題目數量除以用戶最初輸入的題目數量得到正確率並輸出。
四、代碼設計思路
- 通過隨機數來實現整數以及分數(分子和分母)。
- 通過隨機數結合if條件語句實現加減乘除四個運算符號。
五、代碼
package sizeyunsuan; import java.util.Random; import java.util.Scanner; public class Arithmetic { public static void main(String[] args){ int x,y,z,p,g; int a,b,c,m,n; int h = 0; System.out.printf("請輸入需要生成的題目數量:"); Scanner d = new Scanner(System.in); x = d.nextInt(); for(int i = 0 ; i < x ; i++){ Random aa = new Random(); Random bb = new Random(); Random cc = new Random(); Random mm = new Random(); Random nn = new Random(); a = aa.nextInt(10); b = bb.nextInt(10); c = cc.nextInt(4); m = mm.nextInt(10); n = nn.nextInt(10); if(c==0){ if(m==0&&n==0){ m = mm.nextInt(10)+1; n = nn.nextInt(10)+1; if(a%m==0&&b%n==0){ y = a + b; System.out.printf(a+"+"+b+"= "); Scanner e1 = new Scanner(System.in); z = e1.nextInt(); if(z==y){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+y); } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; y = a*n + b ; System.out.printf(a+"+"+l+"= "); String k = y + "/"+ n; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a + b*m; System.out.printf(l+"+"+b+"= "); String k = y + "/"+ m; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n + b*m; System.out.printf(l1+"+"+l2+"= "); String k = y + "/"+ n*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else if(m==0&&n!=0){ m = mm.nextInt(10)+1; if(a%m==0&&b%n==0){ y = a + b; System.out.printf(a+"+"+b+"= "); Scanner e1 = new Scanner(System.in); z = e1.nextInt(); if(z==y){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+y); } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; y = a*n + b ; System.out.printf(a+"+"+l+"= "); String k = y + "/"+ n; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a + b*m; System.out.printf(l+"+"+b+"= "); String k = y + "/"+ m; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n + b*m; System.out.printf(l1+"+"+l2+"= "); String k = y + "/"+ n*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else if(m!=0&&n==0){ n = nn.nextInt(10)+1; if(a%m==0&&b%n==0){ y = a + b; System.out.printf(a+"+"+b+"= "); Scanner e1 = new Scanner(System.in); z = e1.nextInt(); if(z==y){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+y); } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; y = a*n + b ; System.out.printf(a+"+"+l+"= "); String k = y + "/"+ n; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a + b*m; System.out.printf(l+"+"+b+"= "); String k = y + "/"+ m; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n + b*m; System.out.printf(l1+"+"+l2+"= "); String k = y + "/"+ n*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else{ if(a%m==0&&b%n==0){ y = a + b; System.out.printf(a+"+"+b+"= "); Scanner e1 = new Scanner(System.in); z = e1.nextInt(); if(z==y){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+y); } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; y = a*n + b ; System.out.printf(a+"+"+l+"= "); String k = y + "/"+ n; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a + b*m; System.out.printf(l+"+"+b+"= "); String k = y + "/"+ m; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n + b*m; System.out.printf(l1+"+"+l2+"= "); String k = y + "/"+ n*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } } } if(c==1){ if(m==0&&n==0){ m = mm.nextInt(10)+1; n = nn.nextInt(10)+1; if(a%m==0&&b%n==0){ y = a - b; System.out.printf(a+"-"+b+"= "); Scanner e2 = new Scanner(System.in); z = e2.nextInt(); if(z==y){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+y); } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; y = a*n - b ; System.out.printf(a+"-"+l+"= "); String k = y + "/"+ n; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a - b*m; System.out.printf(l+"-"+b+"= "); String k = y + "/"+ m; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n - b*m; System.out.printf(l1+"-"+l2+"= "); String k = y + "/"+ n*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else if(m==0&&n!=0){ m = mm.nextInt(10)+1; if(a%m==0&&b%n==0){ y = a - b; System.out.printf(a+"-"+b+"= "); Scanner e1 = new Scanner(System.in); z = e1.nextInt(); if(z==y){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+y); } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; y = a*n - b ; System.out.printf(a+"-"+l+"= "); String k = y + "/"+ n; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a - b*m; System.out.printf(l+"-"+b+"= "); String k = y + "/"+ m; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n - b*m; System.out.printf(l1+"-"+l2+"= "); String k = y + "/"+ n*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else if(m!=0&&n==0){ n = nn.nextInt(10)+1; if(a%m==0&&b%n==0){ y = a - b; System.out.printf(a+"-"+b+"= "); Scanner e1 = new Scanner(System.in); z = e1.nextInt(); if(z==y){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+y); } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; y = a*n - b ; System.out.printf(a+"-"+l+"= "); String k = y + "/"+ n; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a - b*m; System.out.printf(l+"-"+b+"= "); String k = y + "/"+ m; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n - b*m; System.out.printf(l1+"-"+l2+"= "); String k = y + "/"+ n*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else{ if(a%m==0&&b%n==0){ y = a - b; System.out.printf(a+"-"+b+"= "); Scanner e1 = new Scanner(System.in); z = e1.nextInt(); if(z==y){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+y); } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; y = a*n - b ; System.out.printf(a+"-"+l+"= "); String k = y + "/"+ n; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a - b*m; System.out.printf(l+"-"+b+"= "); String k = y + "/"+ m; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n - b*m; System.out.printf(l1+"-"+l2+"= "); String k = y + "/"+ n*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } } } if(c==2){ if(m==0&&n==0){ m = mm.nextInt(10)+1; n = nn.nextInt(10)+1; if(a%m==0&&b%n==0){ y = a * b; System.out.printf(a+"x"+b+"= "); Scanner e3 = new Scanner(System.in); z = e3.nextInt(); if(z==y){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+y); } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; y = a*b ; System.out.printf(a+"x"+l+"= "); String k = y + "/"+ n; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = b*a; System.out.printf(l+"x"+b+"= "); String k = y + "/"+ m; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*b; System.out.printf(l1+"x"+l2+"= "); String k = y + "/"+ n*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else if(m==0&&n!=0){ m = mm.nextInt(10)+1; if(a%m==0&&b%n==0){ y = a * b; System.out.printf(a+"x"+b+"= "); Scanner e1 = new Scanner(System.in); z = e1.nextInt(); if(z==y){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+y); } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; y = a*b; System.out.printf(a+"x"+l+"= "); String k = y + "/"+ n; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a*b; System.out.printf(l+"x"+b+"= "); String k = y + "/"+ m; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*b; System.out.printf(l1+"x"+l2+"= "); String k = y + "/"+ n*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else if(m!=0&&n==0){ n = nn.nextInt(10)+1; if(a%m==0&&b%n==0){ y = a * b; System.out.printf(a+"x"+b+"= "); Scanner e1 = new Scanner(System.in); z = e1.nextInt(); if(z==y){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+y); } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; y = a*b ; System.out.printf(a+"x"+l+"= "); String k = y + "/"+ n; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a*b; System.out.printf(l+"x"+b+"= "); String k = y + "/"+ m; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*b; System.out.printf(l1+"x"+l2+"= "); String k = y + "/"+ n*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else{ if(a%m==0&&b%n==0){ y = a * b; System.out.printf(a+"x"+b+"= "); Scanner e1 = new Scanner(System.in); z = e1.nextInt(); if(z==y){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+y); } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; y = a*b ; System.out.printf(a+"x"+l+"= "); String k = y + "/"+ n; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a*b; System.out.printf(l+"x"+b+"= "); String k = y + "/"+ m; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*b; System.out.printf(l1+"x"+l2+"= "); String k = y + "/"+ n*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } } } if(c==3){ if(b==0){ b = bb.nextInt(10)+1; if(m==0&&n==0){ m = mm.nextInt(10)+1; n = nn.nextInt(10)+1; if(a%m==0&&b%n==0){ if(a%b!=0){ String l=a+"/"+b; System.out.printf(a+"÷"+b+"= "); Scanner e4 = new Scanner(System.in); String p1 = e4.next(); if(p1.equals(l)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+l); } }else{ p = a / b; System.out.printf(a+"÷"+b+"= "); Scanner e5 = new Scanner(System.in); g = e5.nextInt(); if(p==g){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+p); } } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; if(a==0){System.out.println(a+"÷"+l+"= "); Scanner e6 = new Scanner(System.in); p = e6.nextInt(); if(p==0){System.out.println("回答正確!");h++; continue;}else{System.out.println("回答錯誤!正確答案是0");continue;} } y = a*n ; System.out.printf(a+"÷"+l+"= "); String k = y + "/"+ b; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a; System.out.printf(l+"÷"+b+"= "); String k = y + "/"+ m*b; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n; System.out.printf(l1+"÷"+l2+"= "); String k = y + "/"+ b*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else if(m==0&&n!=0){ m = mm.nextInt(10)+1; if(a%m==0&&b%n==0){ if(a%b!=0){ String l=a+"/"+b; System.out.printf(a+"÷"+b+"= "); Scanner e4 = new Scanner(System.in); String p1 = e4.next(); if(p1.equals(l)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+l); } }else{ p = a / b; System.out.printf(a+"÷"+b+"= "); Scanner e5 = new Scanner(System.in); g = e5.nextInt(); if(p==g){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+p); } } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; if(a==0){System.out.println(a+"÷"+l+"= "); Scanner e6 = new Scanner(System.in); p = e6.nextInt(); if(p==0){System.out.println("回答正確!");h++; continue;}else{System.out.println("回答錯誤!正確答案是0");continue;} } y = a*n ; System.out.printf(a+"÷"+l+"= "); String k = y + "/"+ b; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a; System.out.printf(l+"÷"+b+"= "); String k = y + "/"+ m*b; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n; System.out.printf(l1+"÷"+l2+"= "); String k = y + "/"+ b*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else if(m!=0&&n==0){ n = nn.nextInt(10)+1; if(a%m==0&&b%n==0){ if(a%b!=0){ String l=a+"/"+b; System.out.printf(a+"÷"+b+"= "); Scanner e4 = new Scanner(System.in); String p1 = e4.next(); if(p1.equals(l)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+l); } }else{ p = a / b; System.out.printf(a+"÷"+b+"= "); Scanner e5 = new Scanner(System.in); g = e5.nextInt(); if(p==g){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+p); } } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; if(a==0){System.out.println(a+"÷"+l+"= "); Scanner e6 = new Scanner(System.in); p = e6.nextInt(); if(p==0){System.out.println("回答正確!");h++; continue;}else{System.out.println("回答錯誤!正確答案是0");continue;} } y = a*n ; System.out.printf(a+"÷"+l+"= "); String k = y + "/"+ b; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a; System.out.printf(l+"÷"+b+"= "); String k = y + "/"+ m*b; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n; System.out.printf(l1+"÷"+l2+"= "); String k = y + "/"+ b*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else{ if(a%m==0&&b%n==0){ if(a%b!=0){ String l=a+"/"+b; System.out.printf(a+"÷"+b+"= "); Scanner e4 = new Scanner(System.in); String p1 = e4.next(); if(p1.equals(l)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+l); } }else{ p = a / b; System.out.printf(a+"÷"+b+"= "); Scanner e5 = new Scanner(System.in); g = e5.nextInt(); if(p==g){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+p); } } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; if(a==0){System.out.println(a+"÷"+l+"= "); Scanner e6 = new Scanner(System.in); p = e6.nextInt(); if(p==0){System.out.println("回答正確!");h++; continue;}else{System.out.println("回答錯誤!正確答案是0");continue;} } y = a*n ; System.out.printf(a+"÷"+l+"= "); String k = y + "/"+ b; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a; System.out.printf(l+"÷"+b+"= "); String k = y + "/"+ m*b; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n; System.out.printf(l1+"÷"+l2+"= "); String k = y + "/"+ b*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } } }else{ //p =(float) a / b; if(m==0&&n==0){ m = mm.nextInt(10)+1; n = nn.nextInt(10)+1; if(a%m==0&&b%n==0){ if(a%b!=0){ String l=a+"/"+b; System.out.printf(a+"÷"+b+"= "); Scanner e4 = new Scanner(System.in); String p1 = e4.next(); if(p1.equals(l)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+l); } }else{ p = a / b; System.out.printf(a+"÷"+b+"= "); Scanner e5 = new Scanner(System.in); g = e5.nextInt(); if(p==g){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+p); } } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; y = a*n ; System.out.printf(a+"÷"+l+"= "); String k = y + "/"+ b; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; if(a==0){System.out.println(a+"÷"+l+"= "); Scanner e6 = new Scanner(System.in); p = e6.nextInt(); if(p==0){System.out.println("回答正確!");h++; continue;}else{System.out.println("回答錯誤!正確答案是0");continue;} } y = a; System.out.printf(l+"÷"+b+"= "); String k = y + "/"+ m*b; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n; System.out.printf(l1+"÷"+l2+"= "); String k = y + "/"+ b*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else if(m==0&&n!=0){ m = mm.nextInt(10)+1; if(a%m==0&&b%n==0){ if(a%b!=0){ String l=a+"/"+b; System.out.printf(a+"÷"+b+"= "); Scanner e4 = new Scanner(System.in); String p1 = e4.next(); if(p1.equals(l)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+l); } }else{ p = a / b; System.out.printf(a+"÷"+b+"= "); Scanner e5 = new Scanner(System.in); g = e5.nextInt(); if(p==g){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+p); } } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; if(a==0){System.out.println(a+"÷"+l+"= "); Scanner e6 = new Scanner(System.in); p = e6.nextInt(); if(p==0){System.out.println("回答正確!");h++; continue;}else{System.out.println("回答錯誤!正確答案是0");continue;} } y = a*n ; System.out.printf(a+"÷"+l+"= "); String k = y + "/"+ b; Scanner e6 = new Scanner(System.in); String j = e6.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a; System.out.printf(l+"÷"+b+"= "); String k = y + "/"+ m*b; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n; System.out.printf(l1+"÷"+l2+"= "); String k = y + "/"+ b*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else if(m!=0&&n==0){ n = nn.nextInt(10)+1; if(a%m==0&&b%n==0){ if(a%b!=0){ String l=a+"/"+b; System.out.printf(a+"÷"+b+"= "); Scanner e4 = new Scanner(System.in); String p1 = e4.next(); if(p1.equals(l)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+l); } }else{ p = a / b; System.out.printf(a+"÷"+b+"= "); Scanner e5 = new Scanner(System.in); g = e5.nextInt(); if(p==g){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+p); } } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; if(a==0){System.out.println(a+"÷"+l+"= "); Scanner e6 = new Scanner(System.in); p = e6.nextInt(); if(p==0){System.out.println("回答正確!");h++; continue;}else{System.out.println("回答錯誤!正確答案是0");continue;} } y = a*n ; System.out.printf(a+"÷"+l+"= "); String k = y + "/"+ b; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a; System.out.printf(l+"÷"+b+"= "); String k = y + "/"+ m*b; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n; System.out.printf(l1+"÷"+l2+"= "); String k = y + "/"+ b*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } }else{ if(a%m==0&&b%n==0){ if(a%b!=0){ String l=a+"/"+b; System.out.printf(a+"÷"+b+"= "); Scanner e4 = new Scanner(System.in); String p1 = e4.next(); if(p1.equals(l)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+l); } }else{ p = a / b; System.out.printf(a+"÷"+b+"= "); Scanner e5 = new Scanner(System.in); g = e5.nextInt(); if(p==g){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+p); } } }else if(a%m==0&&b%n!=0){ String l = b + "/" + n; if(a==0){System.out.println(a+"÷"+l+"= "); Scanner e6 = new Scanner(System.in); p = e6.nextInt(); if(p==0){System.out.println("回答正確!");h++; continue;}else{System.out.println("回答錯誤!正確答案是0");continue;} } y = a*n ; System.out.printf(a+"÷"+l+"= "); String k = y + "/"+ b; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else if(a%m!=0&&b%n==0){ String l = a + "/" + m; y = a; System.out.printf(l+"÷"+b+"= "); String k = y + "/"+ m*b; Scanner e7 = new Scanner(System.in); String j = e7.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } }else{ String l1 = a + "/" + m; String l2 = b + "/" + n; y = a*n; System.out.printf(l1+"÷"+l2+"= "); String k = y + "/"+ b*m; Scanner e8 = new Scanner(System.in); String j = e8.next(); if(j.equals(k)){ System.out.println("回答正確!"); h++; }else{ System.out.println("回答錯誤!正確答案是"+k); } } } } } } System.out.println("總共"+x+"題,"+"恭喜答對"+h+"題"); System.out.println("正確率為"+(float)h/x); } }
六、測試
PSP:
Personal Software Process Stages |
Time (m) Senior Student |
Time (m) |
計划 |
10 | 15 |
估計這個任務需要多少時間 | 10 | 8 |
開發 | 100 | 60 |
需求分析(包括學習新技術) | 5 | 3 |
生成設計文檔 | 0 | 0 |
設計復審 | 0 | 0 |
代碼規范 | 20 | 30 |
具體設計 | 10 | 15 |
具體編碼 | 120 | 150 |
代碼復審 | 10 | 8 |
測試(自我測試,修改代碼,提交修改) | 20 | 40 |
報告 | 30 | 50 |
測試報告 | 5 | 3 |
計算工作量 | 5 | 3 |
並提出過程修改計划 | 5 | 5 |
Coding碼市地址:
https://git.coding.net/w934707136/Arithmetic.git