如何计算每桌的餐厅账单



这是我的代码:

订单类

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

订单列表类

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

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

请忽略错误的语法:)

我假设您指定的字段有 getter 和 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与传入方法的订单相同的订单的价格。

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

创建一个遍历 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,你实际上会存储一个 19。您要做的是将"int"更改为"double"。同样适用于我的方法。

最新更新