Menu
Coddy logo textTech

Bestand entfernen

Teil des Abschnitts Logik & Ablauf der C++-Journey von Coddy — Lektion 33 von 56.

challenge icon

Aufgabe

Einfach

Vervollstä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: 50
  • bananas: 30
  • oranges: 25

Die folgenden Eingaben werden bereitgestellt:

  • Eine Ganzzahl n, die die Anzahl der durchzuführenden Bestandsentnahme-Operationen darstellt
  • Dann n Paare von Eingaben:
    • Ein String, der den Artikelnamen darstellt
    • Eine Ganzzahl, die die zu entfernende Menge darstellt

Ihr Programm sollte:

  1. Mit dem oben aufgeführten Anfangsinventar beginnen
  2. Die Anzahl der Bestandsentnahme-Operationen einlesen
  3. Für jede Operation einen Artikelnamen und die zu entfernende Menge einlesen
  4. Die Methode .count() verwenden, um zu prüfen, ob der Artikel in der Inventar-Map existiert
  5. Wenn der Artikel nicht existiert, eine Fehlermeldung ausgeben
  6. Wenn der Artikel existiert, prüfen, ob das Entfernen der Menge den Bestand negativ machen würde
  7. Wenn die Entnahme zu einem negativen Bestand führen würde, eine Fehlermeldung ausgeben
  8. Wenn die Entnahme gültig ist, die Menge vom aktuellen Bestand subtrahieren und eine Bestätigungsmeldung ausgeben
  9. 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 inventory

Für unzureichenden Bestand:

Error: Cannot remove [quantity] [item_name]. Only [current_stock] in stock

Endgü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