Menu
Coddy logo textTech

Stok Kontrolü

Coddy'nin Rust Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 51 / 66.

challenge icon

Görev

Kolay

Dö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'i std::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 f64 türüne ayrıştırın
  • Miktarları virgüllere göre bölün ve her birini i32 tü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ülen Option'ı ele almak için bir match ifadesi kullanın
  • Some kolunda, demetten fiyatı ve miktarı çıkarın ve şunları yazdırın:
    • [item_name] is in stock
    • Price: $[price]
    • Quantity: [quantity]
  • None kolunda ş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]
  • Öğ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

Kendi başına pratik yap: Online Rust derleyicisi