Memeriksa Stok
Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 51 dari 66.
Tantangan
MudahKamu akan menerima empat input. Input pertama adalah nama item yang akan diperiksa. Input kedua adalah daftar nama item dalam inventaris yang dipisahkan dengan koma. Input ketiga adalah daftar harga yang sesuai dengan setiap item, dipisahkan dengan koma. Input keempat adalah daftar jumlah yang sesuai dengan setiap item, dipisahkan dengan koma. Buat HashMap untuk menyimpan data inventaris, dengan kunci berupa nama item dan nilai berupa tuple yang berisi harga dan jumlah (f64, i32). Lalu, periksa apakah item yang diminta ada dalam inventaris menggunakan .get() dan cetak informasi stok yang sesuai.
Persyaratan:
- Impor
HashMapdaristd::collections - Baca input pertama (nama item yang akan diperiksa) dan hapus spasi di awal dan akhir
- Baca input kedua (nama item yang dipisahkan dengan koma) dan hapus spasi di awal dan akhir
- Baca input ketiga (harga yang dipisahkan dengan koma) dan hapus spasi di awal dan akhir
- Baca input keempat (jumlah yang dipisahkan dengan koma) dan hapus spasi di awal dan akhir
- Buat
HashMap<String, (f64, i32)>yang mutable untuk inventaris - Pisahkan nama item berdasarkan koma
- Pisahkan harga berdasarkan koma dan parsing masing-masing menjadi
f64 - Pisahkan jumlah berdasarkan koma dan parsing masing-masing menjadi
i32 - Masukkan setiap item ke dalam inventaris beserta harga dan jumlah yang sesuai sebagai tuple
- Gunakan
.get()untuk memeriksa apakah item yang diminta ada dalam inventaris - Gunakan ekspresi
matchuntuk menanganiOptionyang dikembalikan oleh.get() - Pada arm
Some, ambil harga dan jumlah dari tuple lalu cetak:[item_name] is in stockPrice: $[price]Quantity: [quantity]
- Pada arm
None, cetak:[item_name] is not in stock
Input:
- Baris pertama: Nama item yang akan diperiksa (misalnya,
Laptop) - Baris kedua: Nama item yang dipisahkan dengan koma (misalnya,
Laptop,Mouse,Keyboard) - Baris ketiga: Harga yang dipisahkan dengan koma (misalnya,
999.99,25.50,75.00) - Baris keempat: Jumlah yang dipisahkan dengan koma (misalnya,
15,50,30)
Output:
- Jika item ada dalam inventaris:
- Baris pertama:
[item_name] is in stock - Baris kedua:
Price: $[price] - Baris ketiga:
Quantity: [quantity]
- Baris pertama:
- Jika item tidak ada:
[item_name] is not in stock
Coba sendiri
use std::collections::HashMap;
use std::io;
fn main() {
// Baca nama barang yang akan diperiksa
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();
// Baca nama-nama barang yang dipisahkan koma
let mut items_input = String::new();
io::stdin().read_line(&mut items_input).expect("Failed to read line");
let items_input = items_input.trim();
// Baca harga-harga yang dipisahkan koma
let mut prices_input = String::new();
io::stdin().read_line(&mut prices_input).expect("Failed to read line");
let prices_input = prices_input.trim();
// Baca jumlah barang yang dipisahkan koma
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: Tulis kodemu di bawah ini
// Buat HashMap untuk menyimpan data inventaris
// Pisahkan input dan isi HashMap
// Gunakan .get() untuk memeriksa apakah barang tersebut ada
// Gunakan match untuk menangani Option dan tampilkan output yang sesuai
}Semua pelajaran di Logika dan Alur
1Alur Kontrol Lanjutan
Ekspresi 'match'Mencocokkan Beberapa NilaiMencocokkan RentangEkspresi 'if let'Perulangan sebagai EkspresiRangkuman, Parser Perintah Sederhana4Mengelompokkan Data dengan Struct
Apa Itu Struct?Ringkasan StructMengakses Field StructStruct yang Dapat DiubahStruct sebagai Parameter FungsiStruct TupleRangkuman: Buat Struct Buku2Pengantar Vektor
Apa Itu Vektor?Membuat VektorMenambahkan Elemen dengan pushMengakses Elemen VektorMelakukan Iterasi pada VektorIterasi MutableMenghapus ElemenRangkuman: Pelacak Skor Dasar5Pasangan Kunci-Nilai dengan Hash Map
Apa Itu Hash Map?Membuat Hash MapMenyisipkan Pasangan Kunci-NilaiMengakses NilaiMenelusuri Hash MapMemperbarui NilaiMenghapus PasanganRangkuman: Penghitung Kata8Proyek: Inventaris Barang Sederhana
Menyiapkan ProyekMenambahkan BarangMemeriksa StokMenjual BarangMenyatukan Semuanya3Daftar Tugas Baris Perintah
Penyiapan ProyekMenambahkan TugasMelihat Semua TugasMenghapus TugasKode AkhirLatihan sendiri: Compiler Rust online