返回列表 發帖

C# 7 608 航空包裏運費計算

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

1. 題目說明:
請新增一個主控台應用程式,加入C:\ANS.CSF\CS06資料夾中的CSD06.cs進行編寫。依下列題意進行作答:建立可以計算航空包裏運費的類別,再計算所有包裏的總運費,使輸出值符合題意要求。檔案名稱請另存新檔為CSA06.cs,儲存於C:\ANS.CSF\CS06資料夾,再進行評分。
請使用正斜線(/)作為檔案路徑的分隔符號。

2. 設計說明:
專案已內含名為bag類別,類別內含receiptdate,freight、unitcost及weight變數,分別代表收件日期、運費、(每小時的)單位運費及重量。
請建立air類別繼承bag類別,內含deliveryhours變數,表示運送包裏的時數,再建立計算運費的computeFreight方法,公式為「單位運費(unitcost) × 運送時數(deliveryhours)」。
請於Main()中撰寫程式,讀取read.txt檔案,內含五筆貨物運送記錄,每一筆紀錄有三個欄位,分別是收件日期(月/日)、重量及運送時數,資料如:1/1,1.5,10。
讓使用者輸入一個正整數,代表單位運費,請將此單位運費代入公式,計算這五筆的運費後加總輸出。若輸入文字或非正整數,請輸出【error】。

3. 輸入輸出:
輸入說明
正整數

輸出說明
計算五筆總運費(輸出最後一行後不自動換行)

範例輸入1
10
範例輸出1
410

範例輸入2
-11
範例輸出2
error

4. 評分項目:
(1) 符合設計說明輸出正確格式        配分20
May

  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. using System.Threading;
  8. namespace CSA06
  9. {
  10.     class CSA06
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             try
  15.             {
  16.                 int c = Convert.ToInt32(Console.ReadLine());
  17.                 if (c <= 0) { throw new Exception(); }
  18.                 int total = 0;
  19.                 using (StreamReader sr = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + "/read.txt", Encoding.UTF8))
  20.                 {
  21.                     while (!sr.EndOfStream)
  22.                     {
  23.                         string line = sr.ReadLine();
  24.                         string[] data = line.Split(',');
  25.                         air a = new air(data[0].ToString(), Convert.ToInt32(data[2].ToString()), Convert.ToDouble(data[1].ToString()));
  26.                         a.setcost(c);
  27.                         a.setfreight();
  28.                         total += a.freight;
  29.                     }
  30.                 }
  31.                 Console.Write(total);

  32.             }
  33.             catch
  34.             {
  35.                 Console.Write("error");
  36.             }
  37.             Console.ReadKey();
  38.         }

  39.                
  40.         public class bag
  41.         {
  42.             public string receiptdate = "";
  43.             public int freight = 0;
  44.             public int unitcost = 0;
  45.             public double weight = 0.0;
  46.         }
  47.         public class air : bag
  48.         {
  49.             public int deliveryhours = 0;
  50.             public air(string rd,int h,double w)
  51.             {
  52.                 this.receiptdate = rd;
  53.                 this.deliveryhours = h;
  54.                 this.weight = w;
  55.             }
  56.             public void setcost(int c)
  57.             {
  58.                 this.unitcost = c;
  59.             }
  60.             public void setfreight()
  61.             {
  62.                 this.freight = this.unitcost * deliveryhours;
  63.             }
  64.         }
  65.     }
  66. }
複製代碼
May

TOP

返回列表