סיכום: struct לנתוני תלמיד
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C של Coddy. שיעור 43 מתוך 63.
אתגר
קלצרו תוכנית C שמדגימה את תהליך העבודה המלא עם שימוש ב-struct במערכת לניהול תלמידים. התוכנית שלכם צריכה:
- להגדיר
structבשםStudentעם האיברים הבאים:- מספר שלם
idלאחסון מספר המזהה של התלמיד - מספר ממשי מסוג float
gradeלאחסון הציון של התלמיד
- מספר שלם
- בפונקציה הראשית, ליצור משתנה
Studentבשםstudent1 - לקרוא את מספר המזהה והציון של התלמיד מהקלט באמצעות
scanf:- לקרוא מספר שלם עבור מספר המזהה ולאחסן אותו ב-
student1.id - לקרוא מספר ממשי מסוג float עבור הציון ולאחסן אותו ב-
student1.grade
- לקרוא מספר שלם עבור מספר המזהה ולאחסן אותו ב-
- לאחר קריאת הקלט, לבצע את האימותים והחישובים הבאים:
- אם הציון גדול מ-100.0, להגדיר אותו ל-100.0
- אם הציון קטן מ-0.0, להגדיר אותו ל-0.0
- לחשב ציון בונוס על ידי הוספת 5.0 לציון הנוכחי (לאחר האימות)
- אם ציון הבונוס עולה על 100.0, להגדיר אותו ל-100.0
- להדפיס את פרטי התלמיד בפורמט המדויק הבא:
Student Information:ID: [id]Original Grade: [grade]Bonus Grade: [bonus_grade]Grade Status: [status]
- לקבוע את סטטוס הציון כך:
- אם הציון המקורי הוא 90.0 ומעלה:
Excellent - אם הציון המקורי הוא בין 80.0 ל-89.9:
Good - אם הציון המקורי הוא בין 70.0 ל-79.9:
Average - אם הציון המקורי נמוך מ-70.0:
Needs Improvement
- אם הציון המקורי הוא 90.0 ומעלה:
האתגר הזה בוחן את ההבנה שלכם בהגדרת 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;
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1יסודות המצביעים
מהו מצביע?הכרזה על מצביעיםאופרטור לקיחת הכתובת (&)אופרטור ביטול ההפניה (*)מצביעי NULLסיכום: יסודות המצביעים7מבנים (structs)
מהו struct?הכרזה על structיצירת משתני structגישה לאיברי structאתחול structסיכום: struct לנתוני תלמיד2מצביעים ומערכים
שמות מערכים כמצביעיםאיברי מערך ומצביעיםאריתמטיקה של מצביעיםהשוואת מצביעיםסיכום: מעבר על מערך באמצעות מצביעים5מצביעים ופונקציות
העברה לפי ערךהעברת מצביעים לפונקציותשינוי משתנים באמצעות מצביעיםדוגמה קלאסית: החלפההעברת מערכים לפונקציותחזרה: ארגומנטים של מצביעי פונקציה3מערכי תווים ומחרוזות
מחרוזות כמערכי charתו הסיום nullקלט מחרוזת באמצעות scanfשימוש ב־strlen()שימוש ב־strcpy()שימוש ב־strcat()שימוש ב־strcmp()סיכום: פונקציות מחרוזת בסיסיותתרגלו בעצמכם: קומפיילר C אונליין