Menu
Coddy logo textTech

Riepilogo - Aggiornamento dell'inventario

Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 32 di 65.

challenge icon

Sfida

Facile

Crea un programma che gestisca il sistema di inventario di un magazzino monitorando i livelli di scorte dei prodotti, verificando gli articoli esistenti, aggiungendo nuovi prodotti in modo sicuro e aggiornando le quantità. Il tuo programma deve:

  1. Leggere una stringa in input che rappresenta il nome del magazzino
  2. Leggere più coppie di input che rappresentano i nomi dei prodotti e le relative quantità attuali in magazzino (l’input terminerà quando ricevi "inventory_done")
  3. Leggere una stringa in input che rappresenta un prodotto di cui verificare l’esistenza
  4. Leggere una stringa in input che rappresenta un nuovo prodotto da aggiungere con una scorta predefinita
  5. Leggere una stringa in input che rappresenta un prodotto da rifornire
  6. Leggere una stringa in input che rappresenta la quantità aggiuntiva da aggiungere al prodotto rifornito
  7. Creare una Map per memorizzare i nomi dei prodotti come chiavi e le relative quantità in magazzino come valori
  8. Usare containsKey() per verificare se il prodotto specificato è presente nell’inventario
  9. Usare putIfAbsent() per aggiungere il nuovo prodotto con una scorta predefinita di 50 unità
  10. Aggiornare la quantità in magazzino del prodotto rifornito aggiungendo la quantità aggiuntiva
  11. Stampare il rapporto sulla gestione dell’inventario nel formato esatto mostrato di seguito

Ad esempio, se il nome del magazzino è "Central Warehouse", l’inventario include "Laptops" con 25 unità, "Mice" con 150 unità, "Keyboards" con 75 unità, il prodotto da controllare è "Laptops", il nuovo prodotto da aggiungere è "Monitors", il prodotto da rifornire è "Mice" e la quantità aggiuntiva è 30, il tuo programma dovrebbe produrre:

Warehouse: Central Warehouse
Initial Inventory: {Laptops: 25, Mice: 150, Keyboards: 75}
Inventory Operations:
Checking for 'Laptops': Product found in inventory
Adding 'Monitors': New product added with default stock 50
Restocking 'Mice': Updated quantity from 150 to 180
Final Inventory: {Laptops: 25, Mice: 180, Keyboards: 75, Monitors: 50}
Inventory Summary:
Total products: 4
Total stock units: 330
Low stock items (below 30): 1
Products restocked: 1
Status: Inventory management completed

Se il nome del magazzino è "North Storage", l’inventario include "Tablets" con 40 unità, "Headphones" con 80 unità, il prodotto da controllare è "Smartphones", il nuovo prodotto da aggiungere è "Tablets", il prodotto da rifornire è "Headphones" e la quantità aggiuntiva è 20, il tuo programma dovrebbe produrre:

Warehouse: North Storage
Initial Inventory: {Tablets: 40, Headphones: 80}
Inventory Operations:
Checking for 'Smartphones': Product not found in inventory
Adding 'Tablets': Product already exists, keeping stock 40
Restocking 'Headphones': Updated quantity from 80 to 100
Final Inventory: {Tablets: 40, Headphones: 100}
Inventory Summary:
Total products: 2
Total stock units: 140
Low stock items (below 30): 0
Products restocked: 1
Status: Inventory management completed

Se il nome del magazzino è "South Depot", l’inventario include "Printers" con 15 unità, "Scanners" con 35 unità, "Cables" con 200 unità, il prodotto da controllare è "Scanners", il nuovo prodotto da aggiungere è "Webcams", il prodotto da rifornire è "Printers" e la quantità aggiuntiva è 45, il tuo programma dovrebbe produrre:

Warehouse: South Depot
Initial Inventory: {Printers: 15, Scanners: 35, Cables: 200}
Inventory Operations:
Checking for 'Scanners': Product found in inventory
Adding 'Webcams': New product added with default stock 50
Restocking 'Printers': Updated quantity from 15 to 60
Final Inventory: {Printers: 60, Scanners: 35, Cables: 200, Webcams: 50}
Inventory Summary:
Total products: 4
Total stock units: 345
Low stock items (below 30): 0
Products restocked: 1
Status: Inventory management completed

Il tuo programma deve usare containsKey() per verificare se il prodotto esiste nell’inventario, putIfAbsent() per aggiungere in sicurezza nuovi prodotti con una scorta predefinita di 50 unità e aggiornamenti diretti dei valori della mappa per aumentare le quantità in magazzino. Considera a scorta bassa gli articoli con quantità inferiori a 30 unità. Calcola le unità totali in magazzino sommando tutte le quantità nell’inventario finale. Il formato dell’input sarà: nome del magazzino, poi nomi dei prodotti e quantità in magazzino alternati (come stringhe da convertire in numeri interi), fino a "inventory_done", seguiti dal prodotto da controllare, dal nuovo prodotto da aggiungere, dal prodotto da rifornire e dalla quantità aggiuntiva.

Provalo tu

import 'dart:io';

void main() {
  // Leggi il nome del magazzino
  String? warehouseName = stdin.readLineSync();
  
  // Leggi gli articoli dell'inventario fino a "inventory_done"
  Map<String, int> inventory = {};
  while (true) {
    String? input = stdin.readLineSync();
    if (input == "inventory_done") break;
    
    String productName = input!;
    String? quantityStr = stdin.readLineSync();
    int quantity = int.parse(quantityStr!);
    inventory[productName] = quantity;
  }
  
  // Leggi il prodotto da verificare
  String? productToCheck = stdin.readLineSync();
  
  // Leggi il nuovo prodotto da aggiungere
  String? newProduct = stdin.readLineSync();
  
  // Leggi il prodotto di cui rifornire le scorte
  String? productToRestock = stdin.readLineSync();
  
  // Leggi la quantità aggiuntiva
  String? additionalQuantityStr = stdin.readLineSync();
  int additionalQuantity = int.parse(additionalQuantityStr!);
  
  // TODO: Scrivi il tuo codice qui sotto
  // Usa containsKey() per verificare se i prodotti esistono
  // Usa putIfAbsent() per aggiungere nuovi prodotti con una scorta predefinita di 50
  // Aggiorna le quantità in magazzino e calcola le statistiche dell'inventario
  
  // Stampa il report sulla gestione dell'inventario
  print("Warehouse: $warehouseName");
  // Aggiungi qui le istruzioni per l'output
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Dart online