减少库存
本课属于 Coddy C++ 学习旅程的“逻辑与流程”单元。第 33 课,共 56 课。
挑战
简单通过实现从现有商品中扣除库存的功能,完成你的库存跟踪系统。本课将演示如何安全地减少库存数量,避免库存量降至零以下,并处理库存中不存在的商品。
从以下初始库存开始:
apples:50bananas:30oranges:25
将提供以下输入:
- 一个整数
n,表示要执行的库存扣除操作次数 - 接下来是
n对输入:- 一个表示商品名称的字符串
- 一个表示要扣除数量的整数
你的程序应该:
- 以以上列出的初始库存开始
- 读取库存扣除操作的次数
- 对于每次操作,读取商品名称和要扣除的数量
- 使用
.count()方法检查库存映射中是否存在该商品 - 如果商品不存在,打印错误消息
- 如果商品存在,检查扣除该数量是否会导致库存变为负数
- 如果扣除后库存会变为负数,打印错误消息
- 如果扣除有效,从当前库存中减去相应数量,并打印确认消息
- 完成所有操作后,打印最终库存,显示所有商品及其更新后的数量
请使用以下准确的输出格式:
成功扣除库存时:
Removed [quantity] [item_name]. New total: [new_total]未找到商品时:
Error: [item_name] not found in inventory库存不足时:
Error: Cannot remove [quantity] [item_name]. Only [current_stock] in stock最终库存:
Final Inventory:
[item1]: [quantity1]
[item2]: [quantity2]
[item3]: [quantity3]
...最终库存应按商品名称的字母顺序打印。在尝试扣除库存前,使用 inventory.count(itemName) 检查商品是否存在。只有当商品存在且当前库存大于或等于要扣除的数量时,才从库存中扣除。使用 inventory[itemName] -= quantity 从现有库存中扣除相应数量。
亲手试试
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main() {
// Initialize inventory with existing items
map<string, int> inventory;
inventory["apples"] = 50;
inventory["bananas"] = 30;
inventory["oranges"] = 25;
inventory["grapes"] = 40;
int n;
cin >> n;
for (int i = 0; i < n; i++) {
string itemName;
cin >> itemName;
if (inventory.count(itemName)) {
cout << itemName << ": " << inventory[itemName] << " in stock" << endl;
} else {
cout << itemName << ": Item not found" << endl;
}
}
cout << "Total items in inventory: " << inventory.size() << endl;
return 0;
}逻辑与流程中的所有课
自己练习: C++ 在线编译器