Menu
Coddy logo textTech

סיכום: struct לנתוני תלמיד

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

challenge icon

אתגר

קל

צרו תוכנית C שמדגימה את תהליך העבודה המלא עם שימוש ב-struct במערכת לניהול תלמידים. התוכנית שלכם צריכה:

  1. להגדיר struct בשם Student עם האיברים הבאים:
    • מספר שלם id לאחסון מספר המזהה של התלמיד
    • מספר ממשי מסוג float grade לאחסון הציון של התלמיד
  2. בפונקציה הראשית, ליצור משתנה Student בשם student1
  3. לקרוא את מספר המזהה והציון של התלמיד מהקלט באמצעות scanf:
    • לקרוא מספר שלם עבור מספר המזהה ולאחסן אותו ב-student1.id
    • לקרוא מספר ממשי מסוג float עבור הציון ולאחסן אותו ב-student1.grade
  4. לאחר קריאת הקלט, לבצע את האימותים והחישובים הבאים:
    • אם הציון גדול מ-100.0, להגדיר אותו ל-100.0
    • אם הציון קטן מ-0.0, להגדיר אותו ל-0.0
    • לחשב ציון בונוס על ידי הוספת 5.0 לציון הנוכחי (לאחר האימות)
    • אם ציון הבונוס עולה על 100.0, להגדיר אותו ל-100.0
  5. להדפיס את פרטי התלמיד בפורמט המדויק הבא:
    • Student Information:
    • ID: [id]
    • Original Grade: [grade]
    • Bonus Grade: [bonus_grade]
    • Grade Status: [status]
  6. לקבוע את סטטוס הציון כך:
    • אם הציון המקורי הוא 90.0 ומעלה: Excellent
    • אם הציון המקורי הוא בין 80.0 ל-89.9: Good
    • אם הציון המקורי הוא בין 70.0 ל-79.9: Average
    • אם הציון המקורי נמוך מ-70.0: Needs Improvement

האתגר הזה בוחן את ההבנה שלכם בהגדרת struct, ביצירת משתנים, בגישה לאיברים באמצעות אופרטור הנקודה, בטיפול בקלט באמצעות scanf ובלוגיקה מותנית לאימות ולעיבוד נתונים. תתרגלו את תהליך העבודה המלא עם structs בתרחיש מעשי.

נסו בעצמכם

#include <stdio.h>

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

int main() {
    // TODO: צרו משתנה מסוג Student בשם student1
    
    // קראו את הקלט
    int id;
    float grade;
    scanf("%d", &id);
    scanf("%f", &grade);
    
    // TODO: שמרו את ערכי הקלט בשדות המבנה
    
    // TODO: ממשו אימות של הציון וחישוב בונוס
    
    // TODO: קבעו את מצב הציון
    
    // הדפיסו את התוצאות
    printf("Student Information:\n");
    printf("ID: %d\n", /* TODO: הדפיסו את מזהה התלמיד */);
    printf("Original Grade: %.1f\n", /* TODO: הדפיסו את הציון המקורי */);
    printf("Bonus Grade: %.1f\n", /* TODO: הדפיסו את הציון לאחר הבונוס */);
    printf("Grade Status: %s\n", /* TODO: הדפיסו את מצב הציון */);
    
    return 0;
}

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

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