Menu
Coddy logo textTech

Rimozione delle scorte

Fa parte della sezione Logica e flusso del percorso C++ di Coddy. Lezione 33 di 56.

challenge icon

Sfida

Facile

Completa il tuo sistema di gestione delle scorte implementando la funzionalità per rimuovere scorte dagli articoli esistenti. Questa lezione illustra come diminuire in sicurezza le quantità in inventario, impedendo che i livelli delle scorte scendano sotto zero e gestendo gli articoli che non esistono nell'inventario.

Inizia con il seguente inventario iniziale:

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

Verranno forniti i seguenti input:

  • Un intero n che rappresenta il numero di operazioni di rimozione delle scorte da eseguire
  • Quindi n coppie di input:
    • Una stringa che rappresenta il nome dell'articolo
    • Un intero che rappresenta la quantità da rimuovere

Il tuo programma dovrebbe:

  1. Iniziare con l'inventario iniziale elencato sopra
  2. Leggere il numero di operazioni di rimozione delle scorte
  3. Per ogni operazione, leggere il nome di un articolo e la quantità da rimuovere
  4. Usare il metodo .count() per verificare se l'articolo esiste nella mappa dell'inventario
  5. Se l'articolo non esiste, stampare un messaggio di errore
  6. Se l'articolo esiste, verificare se rimuovere la quantità farebbe diventare negativa la giacenza
  7. Se la rimozione comporterebbe una giacenza negativa, stampare un messaggio di errore
  8. Se la rimozione è valida, sottrarre la quantità dalla giacenza attuale e stampare un messaggio di conferma
  9. Dopo tutte le operazioni, stampare l'inventario finale con tutti gli articoli e le quantità aggiornate

Usa il seguente formato di output esatto:

Per la rimozione riuscita delle scorte:

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

Per gli articoli non trovati:

Error: [item_name] not found in inventory

Per le scorte insufficienti:

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

Inventario finale:

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

L'inventario finale dovrebbe essere stampato in ordine alfabetico in base al nome dell'articolo. Usa inventory.count(itemName) per verificare se un articolo esiste prima di tentare di rimuovere le scorte. Sottrai la quantità dall'inventario solo se l'articolo esiste e la giacenza attuale è maggiore o uguale alla quantità da rimuovere. Usa inventory[itemName] -= quantity per sottrarre la quantità dalle scorte esistenti.

Provalo tu

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

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C++ online