Menu
Coddy logo textTech

Controllare le scorte

Fa parte della sezione Logica e flusso del percorso Rust di Coddy. Lezione 51 di 66.

challenge icon

Sfida

Facile

Riceverai quattro input. Il primo input è il nome di un articolo da verificare. Il secondo input è un elenco separato da virgole dei nomi degli articoli presenti nell'inventario. Il terzo input è un elenco separato da virgole dei prezzi corrispondenti a ciascun articolo. Il quarto input è un elenco separato da virgole delle quantità corrispondenti a ciascun articolo. Crea una HashMap per memorizzare i dati dell'inventario, in cui la chiave è il nome dell'articolo e il valore è una tupla contenente il prezzo e la quantità (f64, i32). Quindi verifica se l'articolo richiesto è presente nell'inventario usando .get() e stampa le informazioni appropriate sulla disponibilità.

Requisiti:

  • Importa HashMap da std::collections
  • Leggi il primo input (nome dell'articolo da verificare) e rimuovi gli spazi bianchi
  • Leggi il secondo input (nomi degli articoli separati da virgole) e rimuovi gli spazi bianchi
  • Leggi il terzo input (prezzi separati da virgole) e rimuovi gli spazi bianchi
  • Leggi il quarto input (quantità separate da virgole) e rimuovi gli spazi bianchi
  • Crea una HashMap<String, (f64, i32)> mutabile per l'inventario
  • Dividi i nomi degli articoli in corrispondenza delle virgole
  • Dividi i prezzi in corrispondenza delle virgole e converti ciascuno in f64
  • Dividi le quantità in corrispondenza delle virgole e converti ciascuna in i32
  • Inserisci ciascun articolo nell'inventario con il prezzo e la quantità corrispondenti come tupla
  • Usa .get() per verificare se l'articolo richiesto è presente nell'inventario
  • Usa un'espressione match per gestire il valore Option restituito da .get()
  • Nel ramo Some, estrai il prezzo e la quantità dalla tupla e stampa:
    • [item_name] is in stock
    • Price: $[price]
    • Quantity: [quantity]
  • Nel ramo None, stampa: [item_name] is not in stock

Input:

  • Prima riga: nome dell'articolo da verificare (ad es., Laptop)
  • Seconda riga: nomi degli articoli separati da virgole (ad es., Laptop,Mouse,Keyboard)
  • Terza riga: prezzi separati da virgole (ad es., 999.99,25.50,75.00)
  • Quarta riga: quantità separate da virgole (ad es., 15,50,30)

Output:

  • Se l'articolo è presente nell'inventario:
    • Prima riga: [item_name] is in stock
    • Seconda riga: Price: $[price]
    • Terza riga: Quantity: [quantity]
  • Se l'articolo non è presente: [item_name] is not in stock

Provalo tu

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

fn main() {
    // Leggi il nome dell'articolo da verificare
    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();
    
    // Leggi i nomi degli articoli separati da virgole
    let mut items_input = String::new();
    io::stdin().read_line(&mut items_input).expect("Failed to read line");
    let items_input = items_input.trim();
    
    // Leggi i prezzi separati da virgole
    let mut prices_input = String::new();
    io::stdin().read_line(&mut prices_input).expect("Failed to read line");
    let prices_input = prices_input.trim();
    
    // Leggi le quantità separate da virgole
    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: Scrivi il tuo codice qui sotto
    // Crea una HashMap per memorizzare i dati dell'inventario
    // Suddividi gli input e popola la HashMap
    // Usa .get() per verificare se l'articolo esiste
    // Usa match per gestire Option e stampare l'output appropriato
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Rust online