Menu
Coddy logo textTech

Stok Kontrolü

Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası — ders 51 / 66.

challenge icon

Görev

Kolay

Dört adet girdi alacaksınız. İlk girdi, kontrol edilecek bir ürün adıdır. İkinci girdi, envanterdeki ürün adlarının virgülle ayrılmış bir listesidir. Üçüncü girdi, her bir ürüne karşılık gelen fiyatların virgülle ayrılmış bir listesidir. Dördüncü girdi, her bir ürüne karşılık gelen miktarların virgülle ayrılmış bir listesidir. Anahtarın ürün adı ve değerin fiyat ile miktarı içeren bir demet (tuple) (f64, i32) olduğu envanter verilerini saklamak için bir HashMap oluşturun. Ardından, .get() kullanarak istenen ürünün envanterde olup olmadığını kontrol edin ve uygun stok bilgilerini yazdırın.

Gereksinimler:

  • std::collections modülünden HashMap yapısını içe aktarın
  • İlk girdiyi (kontrol edilecek ürün adı) okuyun ve boşlukları temizleyin (trim)
  • İkinci girdiyi (virgülle ayrılmış ürün adları) okuyun ve boşlukları temizleyin
  • Üçüncü girdiyi (virgülle ayrılmış fiyatlar) okuyun ve boşlukları temizleyin
  • Dördüncü girdiyi (virgülle ayrılmış miktarlar) okuyun ve boşlukları temizleyin
  • Envanter için değiştirilebilir (mutable) bir HashMap<String, (f64, i32)> oluşturun
  • Ürün adlarını virgüllere göre ayırın
  • Fiyatları virgüllere göre ayırın ve her birini f64 türüne dönüştürün (parse)
  • Miktarları virgüllere göre ayırın ve her birini i32 türüne dönüştürün (parse)
  • Her bir ürünü, karşılık gelen fiyat ve miktarını bir demet olarak envantere ekleyin
  • İstenen ürünün envanterde olup olmadığını kontrol etmek için .get() kullanın
  • .get() tarafından döndürülen Option değerini işlemek 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 ürün adı (örneğin, Laptop)
  • İkinci satır: Virgülle ayrılmış ürün adları (örneğin, Laptop,Mouse,Keyboard)
  • Üçüncü satır: Virgülle ayrılmış fiyatlar (örneğin, 999.99,25.50,75.00)
  • Dördüncü satır: Virgülle ayrılmış miktarlar (örneğin, 15,50,30)

Çıktı:

  • Eğer ürün envanterde varsa:
    • İlk satır: [item_name] is in stock
    • İkinci satır: Price: $[price]
    • Üçüncü satır: Quantity: [quantity]
  • Eğer ürün mevcut değilse: [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
}

Logic & Flow bölümündeki tüm dersler