Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

إضافة عنصر

جزء من قسم Logic & Flow في رحلة Rust على Coddy — الدرس 50 من 66.

challenge icon

التحدي

سهل

ستتلقى ثلاثة مدخلات. المدخل الأول هو اسم العنصر، والمدخل الثاني هو سعر العنصر، والمدخل الثالث هو الكمية الأولية في المخزون. قم بإنشاء HashMap لتخزين بيانات المخزون حيث يكون المفتاح هو اسم العنصر والقيمة هي tuple تحتوي على السعر والكمية (f64, i32). أضف العنصر إلى المخزون واطبع رسالة تأكيد متبوعة بتفاصيل المخزون الحالية.

المتطلبات:

  • استيراد HashMap من std::collections
  • قراءة المدخل الأول (اسم العنصر) وإزالة المسافات الزائدة (trim)
  • قراءة المدخل الثاني (السعر) وإزالة المسافات الزائدة (trim)
  • تحويل السعر إلى f64
  • قراءة المدخل الثالث (الكمية) وإزالة المسافات الزائدة (trim)
  • تحويل الكمية إلى i32
  • إنشاء HashMap<String, (f64, i32)> قابل للتعديل (mutable) للمخزون
  • إدراج العنصر في المخزون مع السعر والكمية كـ tuple
  • طباعة: Added [item_name] to inventory
  • طباعة: Price: $[price]
  • طباعة: Quantity: [quantity]

المدخلات:

  • السطر الأول: اسم العنصر (مثال: Laptop)
  • السطر الثاني: السعر كرقم (مثال: 999.99)
  • السطر الثالث: الكمية كرقم (مثال: 15)

المخرجات:

  • السطر الأول: Added [item_name] to inventory
  • السطر الثاني: Price: $[price]
  • السطر الثالث: Quantity: [quantity]

جرّب بنفسك

use std::collections::HashMap;
use std::io;

fn main() {
    // قراءة اسم العنصر
    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();
    
    // قراءة السعر
    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");
    
    // قراءة الكمية
    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: اكتب كودك أدناه
    // إنشاء HashMap لتخزين المخزون
    // إضافة العنصر إلى المخزون
    // طباعة رسائل التأكيد
    
}

جميع دروس Logic & Flow