Menu
Coddy logo textTech

Resumen - Actualización de inventario

Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 32 de 65.

challenge icon

Desafío

Fácil

Crea un programa que gestione un sistema de inventario de almacén mediante el seguimiento de los niveles de stock de los productos, la comprobación de artículos existentes, la adición segura de nuevos productos y la actualización de cantidades. Tu programa debe:

  1. Leer una entrada de cadena que represente el nombre del almacén
  2. Leer múltiples pares de entradas que representen nombres de productos y sus cantidades de stock actuales (la entrada terminará cuando recibas "inventory_done")
  3. Leer una entrada de cadena que represente un producto para verificar su existencia
  4. Leer una entrada de cadena que represente un nuevo producto para agregar con stock predeterminado
  5. Leer una entrada de cadena que represente un producto para reabastecer
  6. Leer una entrada de cadena que represente la cantidad adicional para agregar al producto reabastecido
  7. Crear un Map para almacenar nombres de productos como claves y sus cantidades de stock como valores
  8. Usar containsKey() para verificar si el producto especificado existe en el inventario
  9. Usar putIfAbsent() para agregar el nuevo producto con un stock predeterminado de 50 unidades
  10. Actualizar la cantidad de stock del producto reabastecido sumando la cantidad adicional
  11. Imprimir el informe de gestión de inventario en el formato exacto que se muestra a continuación

Por ejemplo, si el nombre del almacén es "Central Warehouse", el inventario incluye "Laptops" con 25 unidades, "Mice" con 150 unidades, "Keyboards" con 75 unidades, el producto a verificar es "Laptops", el nuevo producto a agregar es "Monitors", el producto a reabastecer es "Mice", y la cantidad adicional es 30, tu programa debería mostrar:

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

Si el nombre del almacén es "North Storage", el inventario incluye "Tablets" con 40 unidades, "Headphones" con 80 unidades, el producto a verificar es "Smartphones", el nuevo producto a agregar es "Tablets", el producto a reabastecer es "Headphones", y la cantidad adicional es 20, tu programa debería mostrar:

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

Si el nombre del almacén es "South Depot", el inventario incluye "Printers" con 15 unidades, "Scanners" con 35 unidades, "Cables" con 200 unidades, el producto a verificar es "Scanners", el nuevo producto a agregar es "Webcams", el producto a reabastecer es "Printers", y la cantidad adicional es 45, tu programa debería mostrar:

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

Tu programa debe usar containsKey() para verificar si el producto existe en el inventario, putIfAbsent() para agregar de forma segura nuevos productos con un stock predeterminado de 50 unidades, y actualizaciones directas de los valores del mapa para aumentar las cantidades de stock. Cuenta los artículos con poco stock como aquellos con cantidades inferiores a 30 unidades. Calcula el total de unidades de stock sumando todas las cantidades en el inventario final. El formato de entrada será: nombre del almacén, luego nombres de productos y cantidades de stock alternados (como cadenas que deben convertirse a enteros), terminando con "inventory_done", seguido del producto a verificar, el nuevo producto a agregar, el producto a reabastecer y la cantidad adicional.

Pruébalo tú mismo

import 'dart:io';

void main() {
  // Leer el nombre del almacén
  String? warehouseName = stdin.readLineSync();
  
  // Leer artículos del inventario hasta "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;
  }
  
  // Leer producto para verificar
  String? productToCheck = stdin.readLineSync();
  
  // Leer nuevo producto para añadir
  String? newProduct = stdin.readLineSync();
  
  // Leer producto para reabastecer
  String? productToRestock = stdin.readLineSync();
  
  // Leer cantidad adicional
  String? additionalQuantityStr = stdin.readLineSync();
  int additionalQuantity = int.parse(additionalQuantityStr!);
  
  // TODO: Escribe tu código a continuación
  // Usa containsKey() para verificar si los productos existen
  // Usa putIfAbsent() para añadir nuevos productos con un stock predeterminado de 50
  // Actualiza las cantidades de stock y calcula las estadísticas del inventario
  
  // Imprimir el informe de gestión de inventario
  print("Warehouse: $warehouseName");
  // Añade tus declaraciones de salida aquí
}

Todas las lecciones de Lógica y Flujo