TQC+ 物件導向程式語言 Java 6 507 停車費用計算
題目說明:
請開啟檔案 JPD05.java,依下列題意完成作答。將 JPD05.java 內的 class JPD05 修改為 class JPA05,檔案另存成 JPA05.java,並編譯為 JPA05.class。
設計說明:
(1) 請用陣列方式寫出停車費用計算的程式。
(2) 假設停車時段分為:
a. 2 小時以內 (含 2 小時),每小時以 30 元計算。
b. 2 小時以上不足 4 小時,每小時以 50 元計算。
c. 4 小時以上不足 6 小時,每小時以 80 元計算。
d. 6 小時以上,每小時以 100 元計算。
(3) 請輸入停車時數並計算出停車費用,分別計算 2 小時、3 小時、5 小時及 8 小時的應繳費用,顯示如執行結果參考畫面。
執行結果參考畫面:
程式碼:
public class JPA05 {
public static void main(String[] argv) {
int hours = 0; //停車時數
hours = 2;
park(hours);
System.out.println("--------------------");
hours = 3;
park(hours);
System.out.println("--------------------");
hours = 5;
park(hours);
System.out.println("--------------------");
hours = 8;
park(hours);
}
public static void park(int hours) {
int[] hourTable = {0, 2, 4, 6}; // 時段
int[] feeTable = {30, 50, 80, 100}; // 時段費率
int fee = 0; //停車費用
System.out.println("停車時數:" + hours + "小時");
// 課本的寫法
/*int i = hourTable.length - 1;
while(i > 0) {
if(hourTable[i] < hours)
break;
i--;
}
while(i >= 0) {
fee += (hours - hourTable[i]) * feeTable[i];
hours = hourTable[i];
i--;
}*/
// 把以上程式碼縮得更短一些
for(int i = hourTable.length - 1;i >= 0;i--) {
if(hourTable[i] < hours) {
fee += (hours - hourTable[i]) * feeTable[i];
hours = hourTable[i];
}
}
System.out.println("應繳費用:" + fee + "元整");
}
}