Menu
Coddy logo textTech

Vérifier le stock

Fait partie de la section Logique & Flux 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 séparés par des virgules dans l’inventaire. La troisième entrée est une liste de prix séparés par des virgules correspondant à chaque article. La quatrième entrée est une liste de quantités séparées par des virgules correspondant à chaque article. Créez un 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). Vérifiez ensuite si l’article demandé existe dans l’inventaire à l’aide de .get() et affichez les informations appropriées sur le stock.

Exigences :

  • Importez HashMap depuis std::collections
  • Lisez la première entrée (nom de l’article à vérifier) et supprimez les espaces superflus
  • Lisez la deuxième entrée (noms d’articles séparés par des virgules) et supprimez les espaces superflus
  • Lisez la troisième entrée (prix séparés par des virgules) et supprimez les espaces superflus
  • Lisez la quatrième entrée (quantités séparées par des virgules) et supprimez les espaces superflus
  • Créez un HashMap<String, (f64, i32)> mutable pour l’inventaire
  • Séparez les noms des articles au niveau des virgules
  • Séparez les prix au niveau des virgules et convertissez chacun en f64
  • Séparez les quantités au niveau des virgules et convertissez chacune en i32
  • Insérez chaque article dans l’inventaire avec son prix et sa quantité correspondants sous forme de tuple
  • Utilisez .get() pour vérifier si l’article demandé existe dans l’inventaire
  • Utilisez une expression match pour traiter le Option renvoyé par .get()
  • Dans le bras Some, extrayez le prix et la quantité du tuple et affichez :
    • [item_name] is in stock
    • Price: $[price]
    • Quantity: [quantity]
  • Dans le bras None, affichez : [item_name] is not in stock

Entrée :

  • Première ligne : nom de l’article à vérifier (par exemple, Laptop)
  • Deuxième ligne : noms d’articles séparés par des virgules (par exemple, Laptop,Mouse,Keyboard)
  • Troisième ligne : prix séparés par des virgules (par exemple, 999.99,25.50,75.00)
  • Quatrième ligne : quantités séparées par des virgules (par exemple, 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 Logique & Flux

Entraînez-vous par vous-même : Compilateur Rust en ligne