Menu
Coddy logo textTech

Lagerbestand prüfen

Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 51 von 66.

challenge icon

Aufgabe

Einfach

Sie erhalten vier Eingaben. Die erste Eingabe ist ein Artikelname, der überprüft werden soll. Die zweite Eingabe ist eine durch Kommas getrennte Liste von Artikelnamen im Inventar. Die dritte Eingabe ist eine durch Kommas getrennte Liste von Preisen, die jedem Artikel entsprechen. Die vierte Eingabe ist eine durch Kommas getrennte Liste von Mengen, die jedem Artikel entsprechen. Erstellen Sie 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. Prüfen Sie dann mit .get(), ob der angeforderte Artikel im Inventar vorhanden ist, und geben Sie die entsprechenden Bestandsinformationen aus.

Anforderungen:

  • Importieren Sie HashMap aus std::collections
  • Lesen Sie die erste Eingabe (zu prüfender Artikelname) und entfernen Sie Leerzeichen (trim)
  • Lesen Sie die zweite Eingabe (kommagetrennte Artikelnamen) und entfernen Sie Leerzeichen (trim)
  • Lesen Sie die dritte Eingabe (kommagetrennte Preise) und entfernen Sie Leerzeichen (trim)
  • Lesen Sie die vierte Eingabe (kommagetrennte Mengen) und entfernen Sie Leerzeichen (trim)
  • Erstellen Sie eine veränderbare HashMap<String, (f64, i32)> für das Inventar
  • Teilen Sie die Artikelnamen anhand von Kommas auf
  • Teilen Sie die Preise anhand von Kommas auf und parsen Sie jeden als f64
  • Teilen Sie die Mengen anhand von Kommas auf und parsen Sie jede als i32
  • Fügen Sie jeden Artikel mit seinem entsprechenden Preis und seiner Menge als Tupel in das Inventar ein
  • Verwenden Sie .get(), um zu prüfen, ob der angeforderte Artikel im Inventar vorhanden ist
  • Verwenden Sie einen match-Ausdruck, um die von .get() zurückgegebene Option zu verarbeiten
  • Extrahieren Sie im Some-Zweig den Preis und die Menge aus dem Tupel und geben Sie Folgendes aus:
    • [item_name] is in stock
    • Price: $[price]
    • Quantity: [quantity]
  • Geben Sie im None-Zweig Folgendes aus: [item_name] is not in stock

Eingabe:

  • Erste Zeile: Zu prüfender Artikelname (z. B. Laptop)
  • Zweite Zeile: Kommagetrennte Artikelnamen (z. B. Laptop,Mouse,Keyboard)
  • Dritte Zeile: Kommagetrennte Preise (z. B. 999.99,25.50,75.00)
  • Vierte Zeile: Kommagetrennte 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 existiert: [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 Logic & Flow