【问题标题】:how do i calculate a restaurant bill per table我如何计算每桌餐厅的账单
【发布时间】:2016-05-29 01:02:25
【问题描述】:

这是我的代码:

订单类

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

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

请忽略不好的语法:)

【问题讨论】:

  • 你的问题不是很清楚。 每桌每餐的总价?您是指单个表中所有订单的总和吗?

标签: java billing


【解决方案1】:

创建一个迭代 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”。那同样适用于我的方法。

【讨论】:

  • 请留下反馈意见,而不是投反对票,甚至另外,请留下反馈,为什么这个答案不好/没有帮助。
  • 我认为您投了反对票,因为您的回答没有回答操作问题。因为您正在计算列表中的全部总和.. 但 OP 需要“每张桌子”
  • 另外你还没有初始化sum。你需要int sum = 0;,否则你会得到一个编译器错误“局部变量总和可能没有被初始化。”
【解决方案2】:

我假设您对指定的字段有 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 与传递给该方法的订单的价格相加。

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

【讨论】:

  • 嗨,这正是我想要的。非常感谢!!你是救生员:)
  • 没问题。很高兴它有帮助!如果您愿意,可以单击此答案旁边的勾号以接受它,并单击向上箭头以支持它。您会因接受您的问题的答案而获得积分,而我将因我的答案被接受而获得积分。 :) 您只能将一个答案标记为已接受的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-23
  • 1970-01-01
  • 2021-07-17
  • 1970-01-01
相关资源
最近更新 更多