我如何计算每张桌子的餐馆账单

时间:2016-02-17 10:59:46

标签: java billing

这是我的代码:

订单类

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);

如何编写一种方法来计算特定表格中所有订单的总价?

请忽略错误的语法:)

2 个答案:

答案 0 :(得分: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中,但您使用小数点。如果你在一个Int中存储19.99,你实际上会存储一个19.你想要做的是将“int”改为“double”。那么同样适用于我的方法。

答案 1 :(得分:0)

我假设你已经为你指定的字段设置了getter和setter。即对于price字段,您应该在getPrice()类中使用Order方法。我还假设您要以编程方式为要计算帐单的表格指定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与传入方法的订单相同。

我希望这对你有所帮助。如果我没有正确理解你,请发表评论,我会调整我的答案:)