Menu
Coddy logo textTech

Vérifier le stock

Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 51 sur 66.

challenge icon

Défi

Facile

Vous recevrez quatre entrées. La première entrée est le nom d'un article à vérifier. La deuxième entrée est une liste de noms d'articles dans l'inventaire, séparés par des virgules. La troisième entrée est une liste de prix correspondant à chaque article, séparés par des virgules. La quatrième entrée est une liste de quantités correspondant à chaque article, séparées par des virgules. Construisez une HashMap pour stocker les données de l'inventaire où la clé est le nom de l'article et la valeur est un tuple contenant le prix et la quantité (f64, i32). Ensuite, vérifiez si l'article demandé existe dans l'inventaire en utilisant .get() et affichez les informations de stock appropriées.

Exigences :

  • Importer HashMap depuis std::collections
  • Lire la première entrée (nom de l'article à vérifier) et supprimer les espaces blancs (trim)
  • Lire la deuxième entrée (noms d'articles séparés par des virgules) et supprimer les espaces blancs
  • Lire la troisième entrée (prix séparés par des virgules) et supprimer les espaces blancs
  • Lire la quatrième entrée (quantités séparées par des virgules) et supprimer les espaces blancs
  • Créer une HashMap<String, (f64, i32)> mutable pour l'inventaire
  • Diviser les noms d'articles par les virgules
  • Diviser les prix par les virgules et analyser chacun en f64
  • Diviser les quantités par les virgules et analyser chacune en i32
  • Insérer chaque article dans l'inventaire avec son prix et sa quantité correspondants sous forme de tuple
  • Utiliser .get() pour vérifier si l'article demandé existe dans l'inventaire
  • Utiliser une expression match pour gérer l'Option renvoyée par .get()
  • Dans la branche Some, extraire le prix et la quantité du tuple et afficher :
    • [item_name] is in stock
    • Price: $[price]
    • Quantity: [quantity]
  • Dans la branche None, afficher : [item_name] is not in stock

Entrée :

  • Première ligne : Nom de l'article à vérifier (par ex., Laptop)
  • Deuxième ligne : Noms d'articles séparés par des virgules (par ex., Laptop,Mouse,Keyboard)
  • Troisième ligne : Prix séparés par des virgules (par ex., 999.99,25.50,75.00)
  • Quatrième ligne : Quantités séparées par des virgules (par ex., 15,50,30)

Sortie :

  • Si l'article existe dans l'inventaire :
    • Première ligne : [item_name] is in stock
    • Deuxième ligne : Price: $[price]
    • Troisième ligne : Quantity: [quantity]
  • Si l'article n'existe pas : [item_name] is not in stock

Essayez vous-même

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

fn main() {
    // Lire le nom de l'article à vérifier
    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();
    
    // Lire les noms d'articles séparés par des virgules
    let mut items_input = String::new();
    io::stdin().read_line(&mut items_input).expect("Failed to read line");
    let items_input = items_input.trim();
    
    // Lire les prix séparés par des virgules
    let mut prices_input = String::new();
    io::stdin().read_line(&mut prices_input).expect("Failed to read line");
    let prices_input = prices_input.trim();
    
    // Lire les quantités séparées par des virgules
    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: Écrivez votre code ci-dessous
    // Créer une HashMap pour stocker les données de l'inventaire
    // Diviser les entrées et remplir la HashMap
    // Utiliser .get() pour vérifier si l'article existe
    // Utiliser match pour gérer l'Option et afficher la sortie appropriée
}

Toutes les leçons de Logic & Flow