该函数 addItemToOrder() 用于向正在进行中的订单中添加菜品。

首先,函数要求用户输入要添加的菜品的 ID 和数量:

int itemId, quantity;
cout << '请输入要添加的菜品的 ID:';
cin >> itemId;
cout << '请输入需要的数量: ';
cin >> quantity;

然后,函数通过遍历菜单,查找用户输入的 ID 对应的菜品信息:

MenuItem item;
for (auto& menuItem : menu) {
    if (menuItem.id == itemId) {
        item = menuItem;
        break;
    }
}

如果该菜品的数量不足以满足用户的需求,则提示用户数量不足并退出函数:

if (quantity > item.quantity) {
    cout << '数量不足,请重试。' << endl;
    return;
}

接下来,函数遍历正在进行中的订单,查找与该顾客相关且未确认且未完成的订单:

for (auto& order : orders) {
    if (order.customerId == customer.id && !order.fulfilled && !order.confirmed) {
        // ...
    }
}

如果找到了这样的订单,则在订单中查找是否已经有该菜品,如果有,则将数量增加;如果没有,则添加该菜品到订单中:

for (auto& itemInOrder : order.items) {
    if (itemInOrder.id == itemId) {
        itemInOrder.quantity += quantity;
        item.quantity -= quantity;
        cout << '已成功将菜品添加到订单中。' << endl;
        return;
    }
}
order.items.push_back(MenuItem{ item.name, item.price, quantity,item.id});
item.quantity -= quantity;
cout << '已成功将菜品添加到订单中。' << endl;
return;

如果没有找到符合条件的订单,则创建一个新的订单,并将该菜品添加到订单中:

int orderId = orders.empty() ? 1 : orders.back().id + 1;
orders.push_back(Order{orderId, customer.id, {MenuItem{ item.name, item.price, quantity,item.id}}, getCurrentTime()});
item.quantity -= quantity;
cout << '已成功将菜品添加到订单中。' << endl;

最后,函数更新菜品的数量并提示用户操作成功。

该函数旨在实现一个简单实用的订单管理功能,通过清晰的代码结构和注释,帮助开发者理解函数的逻辑和实现细节。


原文地址: https://www.cveoy.top/t/topic/oJYQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录