標籤:
需求分析功能需求:
1、能自動產生小學四則運算題目。
2、程式能接受使用者輸入答案,並判定對錯。
3、給出總共正確的數量。
設計
1、定義s為一組1至4的隨機數,使用which(s)語句,case s 分別為四則運算的加減乘除。在case 語句中定義兩個變數,為a和b,使它們能產生0至100之間的隨機數,用來做四則運算。
2、which語句外層在編寫一個while語句,使得which能迴圈多次,進行多個計算。
3、定義一個h記錄做題正確的數目,初始值為0。
代碼實現
代碼:
import java.util.Scanner;
public class ruanjian {
public static int suiji(int num1,int num2){
int C=(int)num1+(int)(Math.random()*(num2-num1));
return C;
}
public static void main(String[] args) {
int S,a,b,i=1,f=0,h=0;
double D;
while(i<=5){
S=suiji(1,4);
i=i+1;
a=suiji(0,100);
b=suiji(0,100);
switch(S){
case 1 :
System.out.println(a+"+"+b+"=");
Scanner reader=new Scanner(System.in);
D=reader.nextInt();
if(D==a+b){
h++;
}
else{
System.out.println("答錯了,正確答案是:"+(a+b));
}
break;
case 2 :
System.out.println(a+"*"+b+"=");
Scanner reader1=new Scanner(System.in);
D=reader1.nextInt();
if(D==a*b){
h++;
}
else{
System.out.println("答錯了,正確答案是:"+(a*b));
}
break;
case 3 :
System.out.println(a+"-"+b+"=");
Scanner reader2=new Scanner(System.in);
D=reader2.nextInt();
if(D==a-b){
h++;
}
else{
System.out.println("答錯了,正確答案是:"+(a-b));
}
break;
case 4 :
System.out.println(a+"/"+b+"=");
Scanner reader3=new Scanner(System.in);
D=reader3.nextInt();
if(D==a/b){
h++;
}
else{
System.out.println("答錯了,正確答案是:"+(a/b));
}
break;
}
continue;
}
System.out.println("您一共答對了"+h+"道題");
}
}
程式效果:
PSP耗時統計
總結
對於程式的編寫思路事先就寫在稿紙上,只花了一個晚上就把最簡單的代碼寫出來了,但是在修改過程中遇到了幾個問題,對於break和continue選擇一度陷入困境,因為My Code在運行多個計算時a和b顯示的是同一個值,我以為是break和continue沒有選擇對,但在向老師諮詢後發現我定義的a與b產生隨機數的步驟寫在了while迴圈之前。除此之外我希望能在之後的設計改進中能同時列出多個題目,使得使用者能同時寫出答案。
軟體工程(第二次作業)