Menu
Coddy logo textTech

Rückblick – Inventar-Update

Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 32 von 65.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das ein Lagerverwaltungssystem verwaltet, indem es Produktbestände verfolgt, auf vorhandene Artikel prüft, neue Produkte sicher hinzufügt und Mengen aktualisiert. Ihr Programm sollte:

  1. Einen String einlesen, der den Namen des Lagers darstellt
  2. Mehrere Paare von Eingaben einlesen, die Produktnamen und deren aktuelle Lagerbestände darstellen (die Eingabe endet, wenn Sie "inventory_done" erhalten)
  3. Einen String einlesen, der ein Produkt darstellt, dessen Existenz geprüft werden soll
  4. Einen String einlesen, der ein neues Produkt darstellt, das mit einem Standardbestand hinzugefügt werden soll
  5. Einen String einlesen, der ein Produkt darstellt, das nachgefüllt werden soll
  6. Einen String einlesen, der die zusätzliche Menge darstellt, die dem nachgefüllten Produkt hinzugefügt werden soll
  7. Eine Map erstellen, um Produktnamen als Schlüssel und deren Lagerbestände als Werte zu speichern
  8. containsKey() verwenden, um zu prüfen, ob das angegebene Produkt im Inventar vorhanden ist
  9. putIfAbsent() verwenden, um das neue Produkt mit einem Standardbestand von 50 Einheiten hinzuzufügen
  10. Die Bestandsmenge des nachgefüllten Produkts durch Hinzufügen der zusätzlichen Menge aktualisieren
  11. Den Lagerverwaltungsbericht exakt im unten gezeigten Format ausgeben

Wenn zum Beispiel der Lagername "Central Warehouse" ist, das Inventar "Laptops" mit 25 Einheiten, "Mice" mit 150 Einheiten, "Keyboards" mit 75 Einheiten umfasst, das zu prüfende Produkt "Laptops" ist, das neu hinzuzufügende Produkt "Monitors" ist, das nachzufüllende Produkt "Mice" ist und die zusätzliche Menge 30 beträgt, sollte Ihr Programm Folgendes ausgeben:

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

Wenn der Lagername "North Storage" ist, das Inventar "Tablets" mit 40 Einheiten, "Headphones" mit 80 Einheiten umfasst, das zu prüfende Produkt "Smartphones" ist, das neu hinzuzufügende Produkt "Tablets" ist, das nachzufüllende Produkt "Headphones" ist und die zusätzliche Menge 20 beträgt, sollte Ihr Programm Folgendes ausgeben:

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

Wenn der Lagername "South Depot" ist, das Inventar "Printers" mit 15 Einheiten, "Scanners" mit 35 Einheiten, "Cables" mit 200 Einheiten umfasst, das zu prüfende Produkt "Scanners" ist, das neu hinzuzufügende Produkt "Webcams" ist, das nachzufüllende Produkt "Printers" ist und die zusätzliche Menge 45 beträgt, sollte Ihr Programm Folgendes ausgeben:

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

Ihr Programm muss containsKey() verwenden, um zu überprüfen, ob das Produkt im Inventar vorhanden ist, putIfAbsent(), um neue Produkte sicher mit einem Standardbestand von 50 Einheiten hinzuzufügen, und direkte Map-Wert-Aktualisierungen, um die Bestandsmengen zu erhöhen. Zählen Sie Artikel mit geringem Bestand als solche mit Mengen unter 30 Einheiten. Berechnen Sie die gesamten Bestandseinheiten, indem Sie alle Mengen im endgültigen Inventar summieren. Das Eingabeformat ist: Lagername, dann abwechselnd Produktnamen und Bestandsmengen (als Strings, die in Ganzzahlen umgewandelt werden müssen), endend mit "inventory_done", gefolgt von dem zu prüfenden Produkt, dem neu hinzuzufügenden Produkt, dem nachzufüllenden Produkt und der zusätzlichen Menge.

Probier es selbst

import 'dart:io';

void main() {
  // Lagerhausnamen lesen
  String? warehouseName = stdin.readLineSync();
  
  // Inventarartikel lesen bis "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;
  }
  
  // Zu prüfendes Produkt lesen
  String? productToCheck = stdin.readLineSync();
  
  // Neu hinzuzufügendes Produkt lesen
  String? newProduct = stdin.readLineSync();
  
  // Nachzufüllendes Produkt lesen
  String? productToRestock = stdin.readLineSync();
  
  // Zusätzliche Menge lesen
  String? additionalQuantityStr = stdin.readLineSync();
  int additionalQuantity = int.parse(additionalQuantityStr!);
  
  // TODO: Schreiben Sie Ihren Code unten
  // Verwenden Sie containsKey(), um zu prüfen, ob Produkte existieren
  // Verwenden Sie putIfAbsent(), um neue Produkte mit einem Standardbestand von 50 hinzuzufügen
  // Aktualisieren Sie die Bestandsmengen und berechnen Sie die Inventarstatistik
  
  // Den Bestandsverwaltungsbericht ausgeben
  print("Warehouse: $warehouseName");
  // Fügen Sie hier Ihre Ausgabeanweisungen hinzu
}

Alle Lektionen in Logik & Ablauf