在庫の削除
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:\n[item1]: [quantity1]\n[item2]: [quantity2]\n[item3]: [quantity3]\n...最終的な在庫は、アイテム名のアルファベット順に表示する必要があります。在庫を削除しようとする前に、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;
}