Menu
Coddy logo textTech

סיכום: מערך של מבנים

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C של Coddy. שיעור 62 מתוך 63.

challenge icon

אתגר

קל

צרו תוכנית ב־C לניהול מערכת מלאי מוצרים באמצעות מערך של מבנים. התוכנית שלכם צריכה:

  1. להגדיר struct בשם Product עם האיברים הבאים:
    • מערך תווים name בגודל 30
    • מספר ממשי מסוג float בשם price
    • מספר שלם בשם stock
  2. לכתוב פונקציה בשם findMostExpensive ש:
    • מקבלת כפרמטרים מערך של struct Product ומספר שלם size
    • מחזירה מספר שלם שמייצג את האינדקס של המוצר שמחירו הגבוה ביותר
    • משתמשת בלולאה כדי לעבור על כל המוצרים ולהשוות את המחירים שלהם
    • מחזירה את האינדקס של המוצר הראשון שנמצא עם המחיר הגבוה ביותר
  3. לכתוב פונקציה בשם calculateTotalValue ש:
    • מקבלת כפרמטרים מערך של struct Product ומספר שלם size
    • מחזירה מספר ממשי מסוג float שמייצג את ערך המלאי הכולל
    • מחשבת את הערך הכולל על ידי חיבור (מחיר × מלאי) עבור כל מוצר
  4. לכתוב פונקציה בשם findLowStock ש:
    • מקבלת כפרמטרים מערך של struct Product, מספר שלם size ומספר שלם threshold
    • מחזירה מספר שלם שמייצג את מספר המוצרים שהמלאי שלהם נמוך מסף זה
    • משתמשת בלולאה כדי לספור מוצרים שבהם המלאי קטן מערך הסף
  5. בפונקציה הראשית:
    • ליצור מערך של 3 מבנים מסוג struct Product בשם inventory
    • לקרוא קלט עבור כל מוצר בסדר הזה: שם, מחיר, מלאי
    • למלא את המערך בנתוני הקלט
    • להדפיס את המידע של כל מוצר בדיוק בפורמט הזה: Product [index]: [name] - Price: [price], Stock: [stock]
    • לקרוא לפונקציה findMostExpensive ולהדפיס את התוצאה בדיוק בפורמט הזה: Most expensive product: [name]
    • לקרוא לפונקציה calculateTotalValue ולהדפיס את התוצאה עם 2 ספרות אחרי הנקודה העשרונית בדיוק בפורמט הזה: Total inventory value: [total_value]
    • לקרוא מספר שלם שמייצג את סף המלאי הנמוך
    • לקרוא לפונקציה findLowStock עם הסף ולהדפיס את התוצאה בדיוק בפורמט הזה: Products with low stock: [count]
    • לבדוק אם המלאי של המוצר היקר ביותר גדול מ־10:
      • אם כן: להדפיס Most expensive product is well stocked
      • אם לא: להדפיס Most expensive product needs restocking

האתגר הזה בודק את היכולת שלכם לעבוד עם מערכים של מבנים, לממש פונקציות שמעבדות מערכי מבנים ולבצע חישובים והשוואות שונות על נתונים מובְנים. תתרגלו אינדוקס של מערכים עם מבנים, תכנון פונקציות לעיבוד נתונים ושילוב של פעולות שונות לניתוח מידע על מלאי.

נסו בעצמכם

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

// TODO: הגדירו כאן את המבנה Product

// 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;
}

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר C אונליין