Dodawanie produktu
Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 50 z 66.
Wyzwanie
ŁatwyOtrzymasz 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
HashMapzstd::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
1Zaawansowane sterowanie przepływem
Wyrażenie „match”Dopasowywanie wielu wartościDopasowywanie zakresówWyrażenie „if let”Pętle jako wyrażeniaPodsumowanie — prosty parser poleceń4Grupowanie danych za pomocą struktur
Czym jest struktura?Przegląd strukturDostęp do pól strukturyModyfikowalne strukturyStruktury jako parametry funkcjiStruktury krotkowePodsumowanie — utwórz strukturę Book2Wprowadzenie do wektorów
Czym jest wektor?Tworzenie wektoraDodawanie elementów za pomocą pushDostęp do elementów wektoraIterowanie po wektorzeIterowanie z możliwością modyfikacjiUsuwanie elementówPodsumowanie — prosty licznik punktów5Pary klucz–wartość z mapami hashującymi
Czym jest mapa haszująca?Tworzenie mapy haszującejWstawianie par klucz–wartośćDostęp do wartościIterowanie po mapie haszującejAktualizowanie wartościUsuwanie paryPodsumowanie – licznik słów8Projekt: Prosty system inwentaryzacji
Konfiguracja projektuDodawanie produktuSprawdzanie stanu magazynowegoSprzedaż produktuŁączenie wszystkiego w całość3Lista zadań w wierszu poleceń
Konfiguracja projektuDodawanie zadaniaWyświetlanie wszystkich zadańUsuwanie zadaniaKońcowy kodPoćwicz samodzielnie: Kompilator Rust online