这是我的代码:
订单类
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 :(得分: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
与传入方法的订单相同。
我希望这对你有所帮助。如果我没有正确理解你,请发表评论,我会调整我的答案:)