題目

第 3 題:本利和(使用繼承)
  1. 題目說明
  2. 請開啟 CSD03.csproj 專案的 Program.cs 檔案,為銀行編寫不同的客戶等級計算貸款時,依不同年利率下每年會產生的本利和。請依下列題意完成作答,儲存完整程式,產出的執行檔命名為 CSA03.exe。
  3. 設計說明
    1. CustomerType.cs 內已定義四種不同市場的 CustomerType 列舉值,分別為 Standard、Small and Medium Business、Enterprise、Government。
    2. 增加「請輸入本金:」,並納入本利和計算公式。
    3. 不同客戶等級的存貸款利率為:
    4. 市 場 貸款利率(LOAN) '存款利率(SAVING)
      Standard(一般) 9% 6%
      Small and Medium Business(中小企業) 7% 3.5%
      Enterprise(企業) 6% 3%
      Government(政府) 3% 2%

    5. 程式內已提供一個 RateCalculator 抽象類別以及 Calculate()抽象方法,傳入 CustomerType 與額度,傳回本利和。
    6. 程式必須依「存款」與「貸款」設計不同的類別,「貸款」類別命名為 LoanRateCalculator,「存款」類別命名為 SavingRateCalculator,必須繼承 RateCalculator 類別並覆寫 Calculate()方法,顯示如執行結果參考畫面。
    7. 若傳入的 CustomerType 未被支援時,需擲回 NotSupportedException 例外。未繼承 RateCalculator 類別並覆寫 Calculate()方法者,不予計分。
    8. 本利和以單利計算。
    9. Program 類別內已提供 GetLoanCalculator()與 GetSavingCalculator(),請補 足必要的程式碼。
    10. 輸出必須格式化為貨幣格式(例如$2,000,000)。
      *提示:本利和計算公式=本金 * (1+利率)。

  4. 執行結果參考畫面


  5. 評分項目
  6. 項 目 配 分 得 分
    (1) 繼承 RateCalculator 類別並覆寫 Calculate() 方法是否正確? 8
    (2) 實作「貸款」與「存款」之本利和計算是否正確? 8
    (2) 將輸出格式化為貨幣格式 4
    (3) 若傳入的 CustomerType 未被支援時,需擲回 NotSupportedException 例外
    (未繼承 RateCalculator 類別並覆寫 Calculate() 方法者,不予計分。)
    4
    (4) 輸入本金後並將其納入公式計算,是否正確? 6
    總 分 30


程式碼 (Visual Studio 2022 c#)

客戶名稱定義




主程式 Main




原計算本利和程式 RateCalculator




繼承原本利和計算的貸款程式 LoanRateCalculator




繼承原本利和計算的存款程式 SavingRateCalculator




執行結果



程式 (2022 C# 版)