Menu
Coddy logo textTech

Dodawanie produktu

Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 50 z 66.

challenge icon

Wyzwanie

Łatwy

Otrzymasz trzy dane wejściowe. Pierwszą z nich jest nazwa przedmiotu, drugą — jego cena, a trzecią — początkowa liczba sztuk w magazynie. Utwórz HashMap do przechowywania danych o zapasach, gdzie kluczem jest nazwa przedmiotu, a wartością krotka zawierająca cenę i liczbę sztuk (f64, i32). Dodaj przedmiot do zapasów i wyświetl komunikat potwierdzający, a następnie aktualne szczegóły dotyczące zapasów.

Wymagania:

  • Zaimportuj HashMap z std::collections
  • Odczytaj pierwszą daną wejściową (nazwę przedmiotu) i usuń białe znaki z początku i końca
  • Odczytaj drugą daną wejściową (cenę) i usuń białe znaki z początku i końca
  • Przekonwertuj cenę na f64
  • Odczytaj trzecią daną wejściową (liczbę sztuk) i usuń białe znaki z początku i końca
  • Przekonwertuj liczbę sztuk na i32
  • Utwórz mutowalny HashMap<String, (f64, i32)> na potrzeby zapasów
  • Wstaw przedmiot do zapasów, podając cenę i liczbę sztuk jako krotkę
  • Wyświetl: Added [item_name] to inventory
  • Wyświetl: Price: $[price]
  • Wyświetl: Quantity: [quantity]

Dane wejściowe:

  • Pierwszy wiersz: nazwa przedmiotu (np. Laptop)
  • Drugi wiersz: cena jako liczba (np. 999.99)
  • Trzeci wiersz: liczba sztuk jako liczba (np. 15)

Dane wyjściowe:

  • Pierwszy wiersz: Added [item_name] to inventory
  • Drugi wiersz: Price: $[price]
  • Trzeci wiersz: Quantity: [quantity]

Spróbuj swoich sił

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

fn main() {
    // Wczytaj nazwę produktu
    let mut item_name = String::new();
    io::stdin().read_line(&mut item_name).expect("Failed to read line");
    let item_name = item_name.trim().to_string();
    
    // Wczytaj cenę
    let mut price_input = String::new();
    io::stdin().read_line(&mut price_input).expect("Failed to read line");
    let price: f64 = price_input.trim().parse().expect("Failed to parse price");
    
    // Wczytaj ilość
    let mut quantity_input = String::new();
    io::stdin().read_line(&mut quantity_input).expect("Failed to read line");
    let quantity: i32 = quantity_input.trim().parse().expect("Failed to parse quantity");
    
    // TODO: Napisz swój kod poniżej
    // Utwórz HashMap do przechowywania stanu magazynowego
    // Dodaj produkt do stanu magazynowego
    // Wyświetl komunikaty potwierdzające
    
}

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Rust online