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

مراجعة: مصفوفة من الـ Structs

جزء من قسم Logic & Flow في رحلة C على Coddy — الدرس 62 من 63.

challenge icon

التحدي

سهل

قم بإنشاء برنامج بلغة C يدير نظام مخزون منتجات باستخدام مصفوفة من الهياكل (structs). يجب أن يقوم برنامجك بما يلي:

  1. تعريف struct باسم Product بالأعضاء التالية:
    • مصفوفة أحرف name بحجم 30
    • رقم عشري price
    • عدد صحيح stock
  2. كتابة دالة باسم findMostExpensive تقوم بما يلي:
    • تستقبل مصفوفة من struct Product وعدداً صحيحاً size كمعاملات
    • تعيد عدداً صحيحاً يمثل فهرس (index) المنتج صاحب السعر الأعلى
    • تستخدم حلقة تكرار (loop) للمرور عبر جميع المنتجات ومقارنة أسعارها
    • تعيد فهرس أول منتج يتم العثور عليه بالسعر الأقصى
  3. كتابة دالة باسم calculateTotalValue تقوم بما يلي:
    • تستقبل مصفوفة من struct Product وعدداً صحيحاً size كمعاملات
    • تعيد رقماً عشرياً يمثل القيمة الإجمالية للمخزون
    • تحسب القيمة الإجمالية عن طريق جمع (السعر × المخزون) لكل منتج
  4. كتابة دالة باسم findLowStock تقوم بما يلي:
    • تستقبل مصفوفة من struct Product، وعدداً صحيحاً size، وعدداً صحيحاً threshold كمعاملات
    • تعيد عدداً صحيحاً يمثل عدد المنتجات التي يقل مخزونها عن العتبة (threshold)
    • تستخدم حلقة تكرار لعد المنتجات التي يكون فيها المخزون أقل من قيمة العتبة
  5. في الدالة الرئيسية (main function):
    • إنشاء مصفوفة من 3 struct Product باسم inventory
    • قراءة المدخلات لكل منتج بهذا الترتيب: name، و price، و stock
    • ملء المصفوفة ببيانات المدخلات
    • طباعة معلومات كل منتج بهذا التنسيق الدقيق: Product [index]: [name] - Price: [price], Stock: [stock]
    • استدعاء دالة findMostExpensive وطباعة النتيجة بهذا التنسيق الدقيق: Most expensive product: [name]
    • استدعاء دالة calculateTotalValue وطباعة النتيجة بمنزلتين عشريتين بالضبط بهذا التنسيق الدقيق: Total inventory value: [total_value]
    • قراءة عدد صحيح يمثل عتبة المخزون المنخفض (low stock threshold)
    • استدعاء دالة findLowStock مع العتبة وطباعة النتيجة بهذا التنسيق الدقيق: Products with low stock: [count]
    • التحقق مما إذا كان المنتج الأغلى ثمناً لديه مخزون أكبر من 10:
      • إذا كانت الإجابة نعم: اطبع Most expensive product is well stocked
      • إذا كانت الإجابة لا: اطبع Most expensive product needs restocking

يختبر هذا التحدي قدرتك على التعامل مع مصفوفات الهياكل (arrays of structs)، وتنفيذ الدوال التي تعالج مصفوفات الهياكل، وإجراء حسابات ومقارنات متنوعة على البيانات المهيكلة. ستتدرب على فهرسة المصفوفات مع الهياكل، وتصميم الدوال لمعالجة البيانات، والجمع بين عمليات متعددة لتحليل معلومات المخزون.

جرّب بنفسك

#include <stdio.h>
#include <string.h>

// TODO: قم بتعريف هيكل المنتج (Product struct) هنا

// TODO: قم بتنفيذ دالة findMostExpensive هنا

// TODO: قم بتنفيذ دالة calculateTotalValue هنا

// TODO: قم بتنفيذ دالة findLowStock هنا

int main() {
    // إنشاء مصفوفة من 3 منتجات
    struct Product inventory[3];
    
    // قراءة المدخلات لكل منتج
    for (int i = 0; i < 3; i++) {
        scanf("%s", inventory[i].name);
        scanf("%f", &inventory[i].price);
        scanf("%d", &inventory[i].stock);
    }
    
    // TODO: طباعة معلومات كل منتج
    
    // TODO: البحث عن المنتج الأغلى سعراً وطباعته
    
    // TODO: حساب وطباعة القيمة الإجمالية للمخزون
    
    // قراءة حد المخزون المنخفض
    int threshold;
    scanf("%d", &threshold);
    
    // TODO: البحث عن المنتجات ذات المخزون المنخفض وطباعتها
    
    // TODO: التحقق مما إذا كان المنتج الأغلى سعراً متوفراً بمخزون جيد
    
    return 0;
}

جميع دروس Logic & Flow