C#語言中的欄位和屬性經常不容易學通,這個題目也是希望能提供一個練習製作屬性的機會。 設計Price屬性時需要根據是否含稅來決定取得的售價Price。
計算單筆訂單價格時,只要呼叫Order的物件方法,例如o.CalcPrice(),即可獲得訂單價格, 題解的C#程式碼中,關於Product與Order類別的設計如下:
struct Product { public string Name; public bool Taxable; public double Price { set { price = value; } get { if (Taxable) return price * 1.05; else return price; } } double price; } class Order { public Product[] ProductList; public int[] AmountList; protected int x; public static int OrderCount = 0; public Order(int n) { ProductList = new Product[n]; AmountList = new int[n]; OrderCount++; } public static double CalcTotalPrice(Order[] ol) { double sum = 0; foreach (Order o in ol) { sum += o.CalcPrice(); } if (sum <= 5000) return sum; else return (int)sum /100 * 100; } public double CalcPrice() { double sum = 0; for (int i=0;i<ProductList.Length;i++) { if (AmountList[i]<10) sum += ProductList[i].Price * AmountList[i]; else if (AmountList[i]>=10 && AmountList[i]<25) sum += ProductList[i].Price * AmountList[i] * 0.9; else sum += ProductList[i].Price * AmountList[i] * 0.8; } return sum; } }
參考:作業一題目
返回小考作業目錄