Bestand entfernen
Teil des Abschnitts Logik & Ablauf der C++-Journey von Coddy — Lektion 33 von 56.
Aufgabe
EinfachVervollständigen Sie Ihr Inventarverfolgungssystem, indem Sie die Funktionalität zum Entfernen von Beständen aus vorhandenen Artikeln implementieren. Diese Lektion zeigt, wie man Inventarmengen sicher verringert, während man gleichzeitig verhindert, dass die Lagerbestände unter Null fallen, und wie man mit Artikeln umgeht, die nicht im Inventar vorhanden sind.
Beginnen Sie mit dem folgenden Anfangsinventar:
apples: 50bananas: 30oranges: 25
Die folgenden Eingaben werden bereitgestellt:
- Eine Ganzzahl
n, die die Anzahl der durchzuführenden Bestandsentnahme-Operationen darstellt - Dann
nPaare von Eingaben:- Ein String, der den Artikelnamen darstellt
- Eine Ganzzahl, die die zu entfernende Menge darstellt
Ihr Programm sollte:
- Mit dem oben aufgeführten Anfangsinventar beginnen
- Die Anzahl der Bestandsentnahme-Operationen einlesen
- Für jede Operation einen Artikelnamen und die zu entfernende Menge einlesen
- Die Methode
.count()verwenden, um zu prüfen, ob der Artikel in der Inventar-Map existiert - Wenn der Artikel nicht existiert, eine Fehlermeldung ausgeben
- Wenn der Artikel existiert, prüfen, ob das Entfernen der Menge den Bestand negativ machen würde
- Wenn die Entnahme zu einem negativen Bestand führen würde, eine Fehlermeldung ausgeben
- Wenn die Entnahme gültig ist, die Menge vom aktuellen Bestand subtrahieren und eine Bestätigungsmeldung ausgeben
- Nach allen Operationen das endgültige Inventar mit allen Artikeln und ihren aktualisierten Mengen ausgeben
Verwenden Sie das folgende exakte Ausgabeformat:
Für erfolgreiche Bestandsentnahme:
Removed [quantity] [item_name]. New total: [new_total]Für nicht gefundene Artikel:
Error: [item_name] not found in inventoryFür unzureichenden Bestand:
Error: Cannot remove [quantity] [item_name]. Only [current_stock] in stockEndgültiges Inventar:
Final Inventory:\n[item1]: [quantity1]\n[item2]: [quantity2]\n[item3]: [quantity3]\n...Das endgültige Inventar sollte in alphabetischer Reihenfolge nach Artikelnamen ausgegeben werden. Verwenden Sie inventory.count(itemName), um zu prüfen, ob ein Artikel existiert, bevor Sie versuchen, Bestand zu entfernen. Subtrahieren Sie nur dann vom Inventar, wenn der Artikel existiert und der aktuelle Bestand größer oder gleich der zu entfernenden Menge ist. Verwenden Sie inventory[itemName] -= quantity, um die Menge vom vorhandenen Bestand zu subtrahieren.
Probier es selbst
#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;
}Alle Lektionen in Logik & Ablauf
1Pointer und Speicher
Was ist ein Pointer?AdressoperatorDereferenzierungsoperatorNull-PointerPointer und ArraysDynamischer Speicher mit 'new'Speicher freigeben mit 'delete'Zusammenfassung – Pointer-Übung2Vektoren (Dynamische Arrays)
Einführung in std::vectorEinen Vector erstellenElemente hinzufügenAuf Elemente zugreifenVector-GrößeIterieren mit einer For-SchleifeRange-based For-SchleifeElemente entfernenZusammenfassung – Vector-Operationen5Projekt: Inventar-Tool
Projekt-SetupArtikel hinzufügen und aktualisieren3Projekt: Aufgabenlisten-Tool
ProjektübersichtEine Aufgabe hinzufügen