Menu
Coddy logo textTech

Verificar el stock

Parte de la sección Logic & Flow del Journey de Rust de Coddy — lección 51 de 66.

challenge icon

Desafío

Fácil

Recibirás cuatro entradas. La primera entrada es el nombre de un artículo para verificar. La segunda entrada es una lista de nombres de artículos en el inventario separados por comas. La tercera entrada es una lista de precios correspondientes a cada artículo separados por comas. La cuarta entrada es una lista de cantidades correspondientes a cada artículo separadas por comas. Construye un HashMap para almacenar los datos del inventario donde la clave sea el nombre del artículo y el valor sea una tupla que contenga el precio y la cantidad (f64, i32). Luego, verifica si el artículo solicitado existe en el inventario usando .get() e imprime la información de stock adecuada.

Requerimientos:

  • Importa HashMap de std::collections
  • Lee la primera entrada (nombre del artículo a verificar) y elimina los espacios en blanco (trim)
  • Lee la segunda entrada (nombres de artículos separados por comas) y elimina los espacios en blanco (trim)
  • Lee la tercera entrada (precios separados por comas) y elimina los espacios en blanco (trim)
  • Lee la cuarta entrada (cantidades separadas por comas) y elimina los espacios en blanco (trim)
  • Crea un HashMap<String, (f64, i32)> mutable para el inventario
  • Divide los nombres de los artículos por comas
  • Divide los precios por comas y convierte cada uno a f64
  • Divide las cantidades por comas y convierte cada uno a i32
  • Inserta cada artículo en el inventario con su precio y cantidad correspondientes como una tupla
  • Usa .get() para verificar si el artículo solicitado existe en el inventario
  • Usa una expresión match para manejar el Option devuelto por .get()
  • En el brazo Some, extrae el precio y la cantidad de la tupla e imprime:
    • [item_name] is in stock
    • Price: $[price]
    • Quantity: [quantity]
  • En el brazo None, imprime: [item_name] is not in stock

Entrada:

  • Primera línea: Nombre del artículo a verificar (por ejemplo, Laptop)
  • Segunda línea: Nombres de artículos separados por comas (por ejemplo, Laptop,Mouse,Keyboard)
  • Tercera línea: Precios separados por comas (por ejemplo, 999.99,25.50,75.00)
  • Cuarta línea: Cantidades separadas por comas (por ejemplo, 15,50,30)

Salida:

  • Si el artículo existe en el inventario:
    • Primera línea: [item_name] is in stock
    • Segunda línea: Price: $[price]
    • Tercera línea: Quantity: [quantity]
  • Si el artículo no existe: [item_name] is not in stock

Pruébalo tú mismo

use std::collections::HashMap;
use std::io;

fn main() {
    // Leer el nombre del artículo a verificar
    let mut item_to_check = String::new();
    io::stdin().read_line(&mut item_to_check).expect("Failed to read line");
    let item_to_check = item_to_check.trim();
    
    // Leer los nombres de los artículos separados por comas
    let mut items_input = String::new();
    io::stdin().read_line(&mut items_input).expect("Failed to read line");
    let items_input = items_input.trim();
    
    // Leer los precios separados por comas
    let mut prices_input = String::new();
    io::stdin().read_line(&mut prices_input).expect("Failed to read line");
    let prices_input = prices_input.trim();
    
    // Leer las cantidades separadas por comas
    let mut quantities_input = String::new();
    io::stdin().read_line(&mut quantities_input).expect("Failed to read line");
    let quantities_input = quantities_input.trim();
    
    // TODO: Escribe tu código a continuación
    // Crear un HashMap para almacenar los datos del inventario
    // Dividir las entradas y poblar el HashMap
    // Usar .get() para verificar si el artículo existe
    // Usar match para manejar el Option e imprimir la salida apropiada
}

Todas las lecciones de Logic & Flow