我如何计算每个 table 的餐厅账单

how do i calculate a restaurant bill per table

这是我的代码:

订单Class

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

订单列表Class

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

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

请忽略错误的语法:)

创建一个遍历 orderList 并将每餐价格相加的方法(我假设您已经将订单添加到 orderList 的某个地方,并且每个 table 都有自己的 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;
}

希望对您有所帮助 ;)

编辑:目前您将价格存储在一个整数中,但您使用的是小数点。如果将 19.99 存储在 Int 中,则实际上存储的是 19。您要做的是将 "int" 更改为 "double"。同样适用于我的方法。

我假设您有指定字段的 getter 和 setter。即对于 price 字段,您应该在 Order class 中有一个 getPrice() 方法。我还假设您想以编程方式为要为其计算账单的 table 指定 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 与传递给该方法的订单相同的订单的价格。

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