Menu
Coddy logo textTech

סיכום – רשומות תלמידים

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Dart של Coddy. שיעור 35 מתוך 110.

challenge icon

אתגר

קל

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

תארגן את הקוד שלך בשני קבצים:

  • student.dart: הגדר מחלקת Student שמנהלת רשומות אקדמיות באמצעות כימוס הולם:
    • final String id — מזהה התלמיד לא אמור להשתנות לעולם לאחר יצירתו
    • String name ציבורי — ניתן לעדכן שמות
    • List<int> _grades פרטי — יש להגן על רשימת הציונים הגולמית
    • בנאי שמקבל את המזהה, השם ורשימה ראשונית של ציונים
    • getter בשם gradeCount שמחזיר כמה ציונים נרשמו
    • getter מחושב בשם average שמחשב ומחזיר את הממוצע של כל הציונים כערך מסוג double (החזר 0.0 אם אין ציונים)
    • getter מחושב בשם letterGrade שמחזיר אות בהתאם לממוצע: 'A' עבור 90 ומעלה, 'B' עבור 80-89, 'C' עבור 70-79, 'D' עבור 60-69, ו-'F' עבור פחות מ-60
    • מתודה addGrade(int grade) שמקבלת רק ציונים בין 0 ל-100 (כולל). אם הציון תקין, הוסף את הציון והדפס Grade [grade] added for [name]. אם הציון אינו תקין, הדפס Invalid grade: [grade]
    • מתודה getHighestGrade() שמחזירה את הציון הגבוה ביותר, או 0 אם אין ציונים
    • מתודה displayRecord() שמציגה את הסיכום האקדמי של התלמיד
  • main.dart: ייבא את מחלקת התלמיד שלך והדגם את הכימוס בפעולה:
    • צור תלמיד עם המזהה 'STU001', השם 'Emma', והציונים הראשוניים [85, 92, 78]
    • קרא ל-displayRecord()
    • הוסף ציון 95
    • נסה להוסיף ציון לא תקין 150
    • הוסף ציון 88
    • קרא ל-displayRecord()
    • הדפס Highest grade: [highest]

המתודה displayRecord() אמורה להדפיס בפורמט הזה:

===== Student Record =====
ID: [id]
Name: [name]
Grades Recorded: [gradeCount]
Average: [average]
Letter Grade: [letterGrade]

פלט צפוי:

===== Student Record =====
ID: STU001
Name: Emma
Grades Recorded: 3
Average: 85.0
Letter Grade: B
Grade 95 added for Emma
Invalid grade: 150
Grade 88 added for Emma
===== Student Record =====
ID: STU001
Name: Emma
Grades Recorded: 5
Average: 87.6
Letter Grade: B
Highest grade: 95

נסו בעצמכם

import 'student.dart';

void main() {
  // TODO: צרו תלמיד עם id 'STU001', שם 'Emma' וציונים התחלתיים [85, 92, 78]
  
  // TODO: קראו ל-displayRecord()
  
  // TODO: הוסיפו ציון 95
  
  // TODO: נסו להוסיף ציון לא תקין 150
  
  // TODO: הוסיפו ציון 88
  
  // TODO: קראו ל-displayRecord()
  
  // TODO: הדפיסו "Highest grade: [highest]"
}

כל השיעורים ביחידה תכנות מונחה עצמים

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