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

التحقق من المخزون

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

challenge icon

التحدي

سهل

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

المتطلبات:

  • استيراد HashMap من std::collections
  • قراءة المدخل الأول (اسم العنصر المراد التحقق منه) وإزالة المسافات البيضاء
  • قراءة المدخل الثاني (أسماء العناصر المفصولة بفواصل) وإزالة المسافات البيضاء
  • قراءة المدخل الثالث (الأسعار المفصولة بفواصل) وإزالة المسافات البيضاء
  • قراءة المدخل الرابع (الكميات المفصولة بفواصل) وإزالة المسافات البيضاء
  • إنشاء HashMap<String, (f64, i32)> قابل للتعديل للمخزون
  • تقسيم أسماء العناصر بواسطة الفواصل
  • تقسيم الأسعار بواسطة الفواصل وتحويل كل منها إلى f64
  • تقسيم الكميات بواسطة الفواصل وتحويل كل منها إلى i32
  • إدراج كل عنصر في المخزون مع السعر والكمية المقابلين له كـ tuple
  • استخدام .get() للتحقق مما إذا كان العنصر المطلوب موجوداً في المخزون
  • استخدام تعبير match للتعامل مع الـ Option الذي يتم إرجاعه بواسطة .get()
  • في ذراع Some، استخرج السعر والكمية من الـ tuple واطبع:
    • [item_name] is in stock
    • Price: $[price]
    • Quantity: [quantity]
  • في ذراع None، اطبع: [item_name] is not in stock

المدخلات:

  • السطر الأول: اسم العنصر المراد التحقق منه (مثال: Laptop)
  • السطر الثاني: أسماء العناصر مفصولة بفواصل (مثال: Laptop,Mouse,Keyboard)
  • السطر الثالث: الأسعار مفصولة بفواصل (مثال: 999.99,25.50,75.00)
  • السطر الرابع: الكميات مفصولة بفواصل (مثال: 15,50,30)

المخرجات:

  • إذا كان العنصر موجوداً في المخزون:
    • السطر الأول: [item_name] is in stock
    • السطر الثاني: Price: $[price]
    • السطر الثالث: Quantity: [quantity]
  • إذا لم يكن العنصر موجوداً: [item_name] is not in stock

جرّب بنفسك

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

fn main() {
    // قراءة اسم العنصر للتحقق منه
    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();
    
    // قراءة أسماء العناصر المفصولة بفاصلة
    let mut items_input = String::new();
    io::stdin().read_line(&mut items_input).expect("Failed to read line");
    let items_input = items_input.trim();
    
    // قراءة الأسعار المفصولة بفاصلة
    let mut prices_input = String::new();
    io::stdin().read_line(&mut prices_input).expect("Failed to read line");
    let prices_input = prices_input.trim();
    
    // قراءة الكميات المفصولة بفاصلة
    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: اكتب الكود الخاص بك أدناه
    // إنشاء HashMap لتخزين بيانات المخزون
    // تقسيم المدخلات وملء الـ HashMap
    // استخدم .get() للتحقق مما إذا كان العنصر موجوداً
    // استخدم match للتعامل مع الـ Option وطباعة المخرجات المناسبة
}

جميع دروس Logic & Flow