Board logo

標題: C# 7 606 銀行帳戶設計 [打印本頁]

作者: may    時間: 2024-1-8 22:52     標題: C# 7 606 銀行帳戶設計

TQC+ 物件導向程式語言
最新一次更新時間:2024-01-05 17:50:34

1. 題目說明:
請新增一個主控台應用程式,加入C:\ANS.CSF\CS06資料夾中的CSD06.cs進行編寫。依下列題意進行作答:定義帳戶類別的基本功能,再計算目前餘額及總計,使輸出值符合題意要求。檔案名稱請另存新檔為CSA06.cs,儲存於C:\ANS.CSF\CS06資料夾,再進行評分。
請使用正斜線(/)作為檔案路徑的分隔符號。

2. 設計說明:
專案已內含名為account類別,類別內含name、rate及balance變數,分別代表戶名、利率(單位%)及餘額。
請在account類別建立五個方法,分別是setRate、deposit、withdraw、getBalance、getFutureValue,功能分別是設定年利率、存款,提款、查詢餘額、餘額加計利息。
請撰寫程式,讀取read.txt檔案,內含jack的五筆存提款記錄,第三個欄位的d代表存款、w代表提款,以迴圈逐筆執行存提款動作。
使用者輸入一個1~5的正整數,代表年利率(單位%),依照目前jack的本金進行本利和計算,輸出一年後的本利和總計;若輸入不在指定範圍的資料,請輸出【error】。
本利和(年)計算公式:本金×(1+年利率)。

3. 輸入輸出:
輸入說明
年利率

輸出說明
一年後本金及利息總計(輸出最後一行後不自動換行)

範例輸入1
1
範例輸出1
555.5

範例輸入2
4
範例輸出2
572

範例輸入3
6
範例輸出3
error

4. 評分項目:
(1) 符合設計說明輸出正確格式配分        20
作者: may    時間: 2024-1-9 09:53

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. namespace CSA06
  8. {
  9.     class CSA06
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             try
  14.             {
  15.                 int r = Convert.ToInt32(Console.ReadLine());
  16.                 if (r < 1 || r > 5) { throw new Exception(); }
  17.                 account jack = new account("jack",r);
  18.                 using (StreamReader sr = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + "/read.txt", Encoding.UTF8))
  19.                 {
  20.                     while (!sr.EndOfStream)
  21.                     {
  22.                         string line = sr.ReadLine();
  23.                         string[] money = line.Split(',');
  24.                         if (money[2].ToString() == "d")
  25.                         {
  26.                             jack.deposit(Convert.ToInt32(money[1].ToString()));
  27.                         }else if (money[2].ToString() == "w")
  28.                         {
  29.                             jack.withdraw(Convert.ToInt32(money[1].ToString()));
  30.                         }

  31.                     }
  32.                 }
  33.                 jack.addInterest();
  34.                  Console.Write("{1}", r,jack.getBalance());
  35.              }
  36.             catch
  37.             {
  38.                 Console.Write("error");
  39.             }
  40.             Console.ReadKey();
  41.         }

  42.     }
  43.     class account
  44.     {
  45.         String name="";
  46.         int rate=0;
  47.         double balance=0;

  48.         public account(String name, int rate)
  49.         {
  50.             this.name = name;
  51.             this.rate = rate;
  52.         }

  53.         public void setRate(int rate)
  54.         {
  55.             this.rate = rate;
  56.         }

  57.         public void deposit(int n)
  58.         {
  59.             balance += n;
  60.         }

  61.         public void withdraw(int n)
  62.         {
  63.             balance -= n;
  64.         }
  65.         public double getBalance()
  66.         {
  67.             return balance ;
  68.         }
  69.         public void addInterest()
  70.         {
  71.             balance = balance * Convert.ToDouble(1 + (rate/100.0));
  72.         }
  73.     }

  74. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/) Powered by Discuz! 7.2