Menu
Coddy logo textTech

Controllo delle scorte

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

challenge icon

Sfida

Facile

Continua a sviluppare il tuo sistema di gestione dell’inventario implementando la funzionalità per controllare il livello di scorte attuale di articoli specifici. Questa lezione illustra come interrogare in sicurezza una mappa per ottenere informazioni sugli articoli e gestire i casi in cui gli articoli potrebbero non essere presenti nell’inventario.

Verranno forniti i seguenti input:

  • Un intero n che rappresenta il numero di controlli delle scorte da eseguire
  • Poi n stringhe che rappresentano i nomi degli articoli da controllare

Il tuo programma dovrebbe:

  1. Iniziare con il seguente inventario iniziale:
    inventory["apples"] = 50;
    inventory["bananas"] = 30;
    inventory["oranges"] = 25;
    inventory["grapes"] = 40;
  2. Leggere il numero di controlli delle scorte
  3. Per ogni controllo, leggere il nome di un articolo
  4. Usare il metodo .count() per verificare se l’articolo esiste nella mappa dell’inventario
  5. Se l’articolo esiste, stampare la quantità attuale disponibile
  6. Se l’articolo non esiste, stampare un messaggio che indichi che non è stato trovato
  7. Dopo tutti i controlli, stampare un riepilogo del numero totale di articoli diversi attualmente presenti nell’inventario

Usa il seguente formato di output esatto:

Per ogni controllo delle scorte:

[item_name]: [quantity] in stock

Per gli articoli non trovati:

[item_name]: Item not found

Riepilogo alla fine:

Total items in inventory: [number_of_items]

Usa il metodo .count() per verificare in sicurezza se ogni articolo esiste prima di accedere al suo valore. Se inventory.count(itemName) restituisce 1, l’articolo esiste e puoi accedere in sicurezza a inventory[itemName] per ottenere la sua quantità. Se restituisce 0, l’articolo non esiste. Usa il metodo .size() sulla mappa per ottenere il numero totale di articoli diversi presenti nell’inventario per il riepilogo finale.

Provalo tu

#include <iostream>
#include <map>
#include <string>
using namespace std;

int main() {
    // Initialize the inventory with existing items
    map<string, int> inventory;
    inventory["apples"] = 50;
    inventory["bananas"] = 30;
    inventory["oranges"] = 25;
    
    int n;
    cin >> n;
    
    for (int i = 0; i < n; i++) {
        string itemName;
        int quantity;
        cin >> itemName >> quantity;
        
        inventory[itemName] += quantity;
        
        cout << "Added " << quantity << " " << itemName << ". New total: " << inventory[itemName] << endl;
    }
    
    cout << "Final Inventory:" << endl;
    for (const auto& item : inventory) {
        cout << item.first << ": " << item.second << endl;
    }
    
    return 0;
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C++ online