Menu
Coddy logo textTech

Usuwanie produktów z magazynu

Część sekcji Logika i przepływ programu ścieżki C++ w Coddy. Lekcja 33 z 56.

challenge icon

Wyzwanie

Łatwy

Uzupełnij swój system śledzenia zapasów, implementując funkcję usuwania produktów z istniejącego asortymentu. Ta lekcja pokazuje, jak bezpiecznie zmniejszać ilości produktów w magazynie, nie dopuszczając do spadku zapasów poniżej zera i obsługując produkty, których nie ma w magazynie.

Rozpocznij od następującego początkowego stanu magazynu:

  • apples: 50
  • bananas: 30
  • oranges: 25

Dane wejściowe będą miały następującą postać:

  • Liczba całkowita n oznaczająca liczbę operacji usuwania produktów z magazynu do wykonania
  • Następnie n par danych wejściowych:
    • Łańcuch znaków reprezentujący nazwę produktu
    • Liczba całkowita reprezentująca ilość do usunięcia

Twój program powinien:

  1. Rozpocząć od początkowego stanu magazynu wymienionego powyżej
  2. Wczytać liczbę operacji usuwania produktów z magazynu
  3. Dla każdej operacji wczytać nazwę produktu i ilość do usunięcia
  4. Użyć metody .count(), aby sprawdzić, czy produkt istnieje w mapie magazynu
  5. Jeśli produktu nie ma, wyświetlić komunikat o błędzie
  6. Jeśli produkt istnieje, sprawdzić, czy usunięcie podanej ilości spowoduje, że zapasy spadną poniżej zera
  7. Jeśli usunięcie spowodowałoby spadek zapasów poniżej zera, wyświetlić komunikat o błędzie
  8. Jeśli usunięcie jest dozwolone, odjąć podaną ilość od aktualnego stanu magazynowego i wyświetlić komunikat potwierdzający
  9. Po wykonaniu wszystkich operacji wyświetlić końcowy stan magazynu, obejmujący wszystkie produkty i ich zaktualizowane ilości

Użyj dokładnie następującego formatu wyjściowego:

Po pomyślnym usunięciu produktów z magazynu:

Removed [quantity] [item_name]. New total: [new_total]

Jeśli nie znaleziono produktu:

Error: [item_name] not found in inventory

Jeśli zapasy są niewystarczające:

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

Końcowy stan magazynu:

Final Inventory:
[item1]: [quantity1]
[item2]: [quantity2]
[item3]: [quantity3]
...

Końcowy stan magazynu powinien być wyświetlony w kolejności alfabetycznej nazw produktów. Użyj inventory.count(itemName), aby sprawdzić, czy produkt istnieje, zanim spróbujesz usunąć go z magazynu. Odejmuj ilość od stanu magazynowego tylko wtedy, gdy produkt istnieje, a jego aktualny stan jest większy lub równy ilości, która ma zostać usunięta. Użyj inventory[itemName] -= quantity, aby odjąć podaną ilość od istniejącego stanu magazynowego.

Spróbuj swoich sił

#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;
}

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator C++ online