Stok Kontrolü
Coddy'nin Rust Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 51 / 66.
Görev
KolayDört girdi alacaksınız. İlk girdi, kontrol edilecek bir öğe adıdır. İkinci girdi, envanterdeki öğe adlarının virgülle ayrılmış listesidir. Üçüncü girdi, her öğeye karşılık gelen fiyatların virgülle ayrılmış listesidir. Dördüncü girdi, her öğeye karşılık gelen miktarların virgülle ayrılmış listesidir. Envanter verilerini depolamak için anahtarın öğe adı, değerin ise fiyat ve miktarı içeren bir demet (f64, i32) olduğu bir HashMap oluşturun. Ardından, .get() kullanarak istenen öğenin envanterde bulunup bulunmadığını kontrol edin ve uygun stok bilgilerini yazdırın.
Gereksinimler:
HashMap'istd::collections'den içe aktarın- İlk girdiyi (kontrol edilecek öğe adı) okuyun ve boşlukları kırpın
- İkinci girdiyi (virgülle ayrılmış öğe adları) okuyun ve boşlukları kırpın
- Üçüncü girdiyi (virgülle ayrılmış fiyatlar) okuyun ve boşlukları kırpın
- Dördüncü girdiyi (virgülle ayrılmış miktarlar) okuyun ve boşlukları kırpın
- Envanter için değiştirilebilir bir
HashMap<String, (f64, i32)>oluşturun - Öğe adlarını virgüllere göre bölün
- Fiyatları virgüllere göre bölün ve her birini
f64türüne ayrıştırın - Miktarları virgüllere göre bölün ve her birini
i32türüne ayrıştırın - Her öğeyi, karşılık gelen fiyatı ve miktarı bir demet olarak envantere ekleyin
- İstenen öğenin envanterde bulunup bulunmadığını kontrol etmek için
.get()kullanın .get()tarafından döndürülenOption'ı ele almak için birmatchifadesi kullanınSomekolunda, demetten fiyatı ve miktarı çıkarın ve şunları yazdırın:[item_name] is in stockPrice: $[price]Quantity: [quantity]
Nonekolunda şunu yazdırın:[item_name] is not in stock
Girdi:
- İlk satır: Kontrol edilecek öğe adı (ör.
Laptop) - İkinci satır: Virgülle ayrılmış öğe adları (ör.
Laptop,Mouse,Keyboard) - Üçüncü satır: Virgülle ayrılmış fiyatlar (ör.
999.99,25.50,75.00) - Dördüncü satır: Virgülle ayrılmış miktarlar (ör.
15,50,30)
Çıktı:
- Öğe envanterde varsa:
- İlk satır:
[item_name] is in stock - İkinci satır:
Price: $[price] - Üçüncü satır:
Quantity: [quantity]
- İlk satır:
- Öğe yoksa:
[item_name] is not in stock
Kendin dene
use std::collections::HashMap;
use std::io;
fn main() {
// Kontrol edilecek öğe adını oku
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();
// Virgülle ayrılmış öğe adlarını oku
let mut items_input = String::new();
io::stdin().read_line(&mut items_input).expect("Failed to read line");
let items_input = items_input.trim();
// Virgülle ayrılmış fiyatları oku
let mut prices_input = String::new();
io::stdin().read_line(&mut prices_input).expect("Failed to read line");
let prices_input = prices_input.trim();
// Virgülle ayrılmış miktarları oku
let mut quantities_input = String::new();
io::stdin().read_line(&mut quantities_input).expect("Failed to read line");
let quantities_input = quantities_input.trim();
// YAPILACAK: Kodunuzu aşağıya yazın
// Envanter verilerini depolamak için bir HashMap oluşturun
// Girişleri ayırın ve HashMap'i doldurun
// Öğenin var olup olmadığını kontrol etmek için .get() kullanın
// Option'ı işlemek ve uygun çıktıyı yazdırmak için match kullanın
}Mantık & Akış bölümündeki tüm dersler
1İleri Seviye Kontrol Akışı
'match' İfadesiBirden Çok Değeri EşleştirmeAralıkları Eşleştirme'if let' İfadesiİfade Olarak DöngülerÖzet - Basit Komut Ayrıştırıcı4Struct'lar ile Verileri Gruplama
Struct Nedir?Struct'lara Genel BakışStruct Alanlarına ErişmeMutable Struct'larFonksiyon Parametresi Olarak Struct'larTuple Struct'larÖzet - Bir Kitap Struct'ı Oluşturun7'Result' ile Hata Yönetimi
'Result' Nedir?'Result' ile 'match' Kullanımıis_ok() ve is_err()Kısayollar: unwrap ve expectSoru İşareti Operatörü '?'String'leri Sayılara DönüştürmeÖzet - Güvenli Bölme Fonksiyonu10Closures ve Anonim Fonksiyonlar
Closure Nedir?Basit Bir Closure TanımlamaParametreli Closure'larOrtamı YakalamakÖzet - Basit Toplayıcı Closure2Vektörlere Giriş
Vektör Nedir?Vektör Oluşturmapush ile Eleman EklemeVektör Elemanlarına ErişmeVektör Üzerinde YinelemeDeğiştirilebilir YinelemeEleman KaldırmaÖzet - Temel Skor Takipçisi5Hash Map'ler ile Anahtar-Değer Çiftleri
Hash Map Nedir?Bir Hash Map OluşturmaAnahtar-Değer Çiftleri EklemeDeğerlere ErişmeBir Hash Map Üzerinde GezinmeBir Değeri GüncellemeBir Çifti KaldırmaÖzet - Kelime Sayacı11Son Meydan Okumalar
Özet - Benzersiz ÖğelerÖzet - Kullanıcı Profili DoğrulayıcıÖzet - Not Özetleyici3Komut Satırı Yapılacaklar Listesi
Proje KurulumuGörev EklemeTüm Görevleri GörüntülemeGörev SilmeFinal Kodu6'Option' ile Yokluğu Yönetme
'Option' Nedir?'Option' ile 'match' Kullanımıis_some() ve is_none()Bir 'Option' Değerini Açmak (Unwrapping)expect MetoduVarsayılan Değer Sağlama: unwrap_orÖzet - Bir Eleman Bulma9String Dilimleri ve Daha Fazlası
String ve &strString Dilimleri OluşturmaFonksiyon Parametresi Olarak DilimlerDiğer DilimlerÖzet - İlk Kelimeyi BulmaKendi başına pratik yap: Online Rust derleyicisi