Controllare le scorte
Fa parte della sezione Logica e flusso del percorso Rust di Coddy. Lezione 51 di 66.
Sfida
FacileRiceverai 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
HashMapdastd::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
matchper gestire il valoreOptionrestituito da.get() - Nel ramo
Some, estrai il prezzo e la quantità dalla tupla e stampa:[item_name] is in stockPrice: $[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]
- Prima riga:
- 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
1Flusso di controllo avanzato
L'espressione 'match'Corrispondenza di più valoriCorrispondenza di intervalliL'espressione 'if let'Cicli come espressioniRipasso - Parser di comandi semplice4Raggruppare i dati con le struct
Che cos'è una struct?Panoramica sulle structAccedere ai campi delle structStruct mutabiliStruct come parametri di funzioneStruct tuplaRiepilogo - Creare una struct Book2Introduzione ai vettori
Che cos'è un vettore?Creare un vettoreAggiungere elementi con pushAccedere agli elementi di un vettoreIterare su un vettoreIterazione mutabileRimuovere elementiRiepilogo - Tracker dei punteggi di base5Coppie chiave-valore con mappe hash
Che cos'è una mappa hash?Creare una mappa hashInserire coppie chiave-valoreAccedere ai valoriScorrere una mappa hashAggiornare un valoreRimuovere una coppiaRiepilogo - Contatore di parole8Progetto: inventario semplice degli articoli
Configurazione del progettoAggiungere un articoloControllare le scorteVendere un articoloMettere tutto insieme3Lista di attività da riga di comando
Configurazione del progettoAggiungere un'attivitàVisualizzare tutte le attivitàRimuovere un'attivitàCodice finaleEsercitati da solo: Compilatore Rust online