Menu
Coddy logo textTech

Lagerbestand prüfen

Teil des Abschnitts Logik & Kontrollfluss der Rust-Journey von Coddy. Lektion 51 von 66.

challenge icon

Aufgabe

Einfach

Du erhältst vier Eingaben. Die erste Eingabe ist ein zu überprüfender Artikelname. Die zweite Eingabe ist eine durch Kommas getrennte Liste von Artikeln im Inventar. Die dritte Eingabe ist eine durch Kommas getrennte Liste von Preisen, die den jeweiligen Artikeln entsprechen. Die vierte Eingabe ist eine durch Kommas getrennte Liste von Mengen, die den jeweiligen Artikeln entsprechen. Erstelle eine HashMap, um die Inventardaten zu speichern, wobei der Schlüssel der Artikelname und der Wert ein Tupel ist, das den Preis und die Menge (f64, i32) enthält. Überprüfe anschließend mit .get(), ob der angeforderte Artikel im Inventar vorhanden ist, und gib die entsprechenden Bestandsinformationen aus.

Anforderungen:

  • Importiere HashMap aus std::collections
  • Lies die erste Eingabe (zu überprüfender Artikelname) ein und entferne führende und nachfolgende Leerzeichen
  • Lies die zweite Eingabe (durch Kommas getrennte Artikelnamen) ein und entferne führende und nachfolgende Leerzeichen
  • Lies die dritte Eingabe (durch Kommas getrennte Preise) ein und entferne führende und nachfolgende Leerzeichen
  • Lies die vierte Eingabe (durch Kommas getrennte Mengen) ein und entferne führende und nachfolgende Leerzeichen
  • Erstelle eine veränderliche HashMap<String, (f64, i32)> für das Inventar
  • Teile die Artikelnamen anhand von Kommas auf
  • Teile die Preise anhand von Kommas auf und parse jeden Wert zu f64
  • Teile die Mengen anhand von Kommas auf und parse jeden Wert zu i32
  • Füge jeden Artikel mit seinem entsprechenden Preis und seiner entsprechenden Menge als Tupel in das Inventar ein
  • Verwende .get(), um zu überprüfen, ob der angeforderte Artikel im Inventar vorhanden ist
  • Verwende einen match-Ausdruck, um das von .get() zurückgegebene Option zu verarbeiten
  • Extrahiere im Some-Arm den Preis und die Menge aus dem Tupel und gib Folgendes aus:
    • [item_name] is in stock
    • Price: $[price]
    • Quantity: [quantity]
  • Gib im None-Arm Folgendes aus: [item_name] is not in stock

Eingabe:

  • Erste Zeile: Zu überprüfender Artikelname (z. B. Laptop)
  • Zweite Zeile: Durch Kommas getrennte Artikelnamen (z. B. Laptop,Mouse,Keyboard)
  • Dritte Zeile: Durch Kommas getrennte Preise (z. B. 999.99,25.50,75.00)
  • Vierte Zeile: Durch Kommas getrennte Mengen (z. B. 15,50,30)

Ausgabe:

  • Wenn der Artikel im Inventar vorhanden ist:
    • Erste Zeile: [item_name] is in stock
    • Zweite Zeile: Price: $[price]
    • Dritte Zeile: Quantity: [quantity]
  • Wenn der Artikel nicht vorhanden ist: [item_name] is not in stock

Probier es selbst

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

fn main() {
    // Lies den Namen des zu prüfenden Artikels ein
    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();
    
    // Lies die kommagetrennten Artikelnamen ein
    let mut items_input = String::new();
    io::stdin().read_line(&mut items_input).expect("Failed to read line");
    let items_input = items_input.trim();
    
    // Lies die kommagetrennten Preise ein
    let mut prices_input = String::new();
    io::stdin().read_line(&mut prices_input).expect("Failed to read line");
    let prices_input = prices_input.trim();
    
    // Lies die kommagetrennten Mengen ein
    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: Schreibe deinen Code unten
    // Erstelle eine HashMap, um Inventardaten zu speichern
    // Teile die Eingaben auf und fülle die HashMap
    // Verwende .get(), um zu prüfen, ob der Artikel existiert
    // Verwende match, um mit der Option umzugehen und die entsprechende Ausgabe zu drucken
}

Alle Lektionen in Logik & Kontrollfluss

Übe selbstständig: Online-Rust-Compiler