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;
}
}
參考:作業一題目
返回小考作業目錄

