2016-02-17 73 views
0

這裏餐館帳單是我的代碼:如何計算每個表

Order類

public class Order { 
    private int orderId; 
    private int tableId; 
    private int quantity; 
    private String name; 
    private int price; 
} 

構造

public Order(int o, int t, String name, int q, int price) { 

    orderId = o; 
    tableId = t; 
    this.name = name; 
    quantity = q; 
    this.price= price; 
} 

OrderList類

public class OrderList { 

    private ArrayList<Order> orderList; 

    public OrderList() { 
     orderList = new ArrayList<Order>(); 
    } 
} 

填充方法

Order o = new Order(15, 3, "Paan Kiwi", 1, 10.00); 

    Order o = new Order(16, 3, "Pasta", 3, 18.00); 

我怎樣寫,從一個特定的表計算所有訂單的總價格的方法?

忽略語法錯誤,請:)

+0

你的問題不是很清楚。 *每餐每餐總價* *你的意思是來自單個表格的所有訂單的總數? – Redtama

回答

0

我假設你有getters和setter爲你指定的字段。即對於price字段,您應該在Order類中使用getPrice()方法。我還假設你想以編程方式指定tableId作爲你想要計算賬單的表格。

所以,如果我理解正確:通過您的所有訂單

public int calculateTableBill(int tableId, OrderList orderList) { 
    int billTotal = 0; 
    for (Order order : orderList.getOrderList()) { 
     if (order.getTableId() == tableId) { 
      billTotal += order.getPrice() 
     } 
    } 
    return billTotal ; 
} 

這將循環和總起來這些訂單,其中tableId是一樣的一個傳遞到方法的價格。

我希望這對你有幫助。請留下評論,如果我不正確地理解你,我會調整我的答案:)

+0

嗨,這正是我一直在尋找的。非常感謝你!!你是一個救生員:) –

+0

沒問題。很高興幫助!如果你希望你可以點擊這個答案旁邊的勾號來接受它,然後點擊向上箭頭來選中它。您將獲得積分來接受您的問題的答案,並且我將得到我的答案被接受的積分。:)您只能將一個答案標記爲已接受的答案。 – Redtama

0

做一個方法在orderList迭代,並且增加了每餐的價格(我假設你已經添加的命令到orderList顯山露水,每個表都有自己的orderList):

public int calcPrice(int tableId, ArrayList<Order> orderList){ 
    int sum = 0; 
    for(Order o : orderList) 
     if(o.tableId = tableId) 
      sum += o.price; 
    return sum; 
} 

希望這有助於;)

編輯:目前您存儲價格爲int,但是你用一個小數點。如果您將19.99存儲在Int中,則實際上會存儲一個19.您想要做的是將「int」更改爲「double」。那麼同樣適用於我的方法。

+0

而不是投下來,甚至除此之外,請留下反饋爲什麼這個答案是壞/沒有幫助。 –

+0

我想你得到了downvote,因爲你的答案不回答op問題。因爲您正在計算列表中的全部金額..但是OP需要'每個表' – Pragnani

+1

您還沒有初始化'sum'。你需要'int sum = 0;否則你會得到一個編譯器錯誤「局部變量和可能不會被初始化。」 – Redtama