Riepilogo - Aggiornamento dell'inventario
Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 32 di 65.
Sfida
FacileCrea 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:
- Leggere una stringa in input che rappresenta il nome del magazzino
- 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") - Leggere una stringa in input che rappresenta un prodotto di cui verificare l’esistenza
- Leggere una stringa in input che rappresenta un nuovo prodotto da aggiungere con una scorta predefinita
- Leggere una stringa in input che rappresenta un prodotto da rifornire
- Leggere una stringa in input che rappresenta la quantità aggiuntiva da aggiungere al prodotto rifornito
- Creare una Map per memorizzare i nomi dei prodotti come chiavi e le relative quantità in magazzino come valori
- Usare
containsKey()per verificare se il prodotto specificato è presente nell’inventario - Usare
putIfAbsent()per aggiungere il nuovo prodotto con una scorta predefinita di 50 unità - Aggiornare la quantità in magazzino del prodotto rifornito aggiungendo la quantità aggiuntiva
- 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 completedSe 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 completedSe 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 completedIl 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
1Manipolazione avanzata delle liste
Proprietà delle liste: primo e ultimoStato della lista: isEmpty e isNotEmpInvertire una listaAggiungere a una lista: insertRimozione dalla lista: removeWhereRicerca in una lista: indexOfOrdinare una listaMescolare una listaRiepilogo - Organizzatore di liste4Manipolazione avanzata delle mappe
Iterare su una mappaVerificare chiavi e valoriProprietà delle mappe: chiavi e valoriAggiunta condizionale: putIfAbsentRimuovere elementi da una mappaMappe annidateRiepilogo - Aggiornamento dell'inventario2Operazioni funzionali sulle liste
Trasformare con 'map'Filtrare con 'where'Usare '.toList()'Verificare condizioni con 'any'Condizioni con 'every'Trovare con 'firstWhere'Riepilogo - Filtraggio dei dati3Insiemi
Che cos'è un insieme?Creare un insiemeAggiungere e rimuovere elementi dagli insiemiVerificare la presenza di elementi in un insiemeConvertire una lista in un insiemeUnione di insiemiIntersezione di insiemiDifferenza tra insiemiRiepilogo - Lista degli ospiti uniciEsercitati da solo: Compilatore Dart online