סיכום – ציון תלמיד
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Lua של Coddy. שיעור 18 מתוך 70.
אתגר
קלבואו נבנה מחלקת Student שלמה שמאגדת את כל מה שלמדת בפרק הזה: משתני מופע, פעולות גישה, פעולות עדכון ומאפיינים מחושבים — כולם פועלים יחד!
תארגן את הקוד שלך בשני קבצים:
Student.lua: הגדר את המחלקהStudentבאמצעות תבנית האב־טיפוס המקובלת. כל תלמיד צריך לשמורnameו-grade. המחלקה שלך צריכה לכלול:- בנאי
:new(name, grade) - פעולת גישה
:getName()שמחזירה את שם התלמיד - פעולת גישה
:getGrade()שמחזירה את הציון הנוכחי - פעולת עדכון
:setGrade(newGrade)שמעדכנת את הציון - שיטה
:hasPassed(threshold)שמחזירהtrueאם הציון של התלמיד גדול מסף המעבר או שווה לו, ו-falseאחרת
- בנאי
main.lua: טען את המודול Student והדגם את כל הפונקציונליות באמצעות יצירת תלמיד, בדיקת מצבו, עדכון הציון שלו ואימות השינויים.
תקבלו ארבעה קלטים:
- שם התלמיד
- הציון ההתחלתי
- סף המעבר לבדיקה
- הציון החדש שיש לקבוע
בקובץ הראשי שלך, צור תלמיד עם השם והציון ההתחלתי שניתנו, ולאחר מכן הדפס את הפרטים הבאים בשורות נפרדות:
- שם התלמיד
- הציון ההתחלתי של התלמיד
- האם התלמיד עבר את סף המעבר שניתן (הדפס
trueאוfalse) - הציון של התלמיד לאחר עדכונו לציון החדש
- האם התלמיד עבר את אותו סף לאחר עדכון הציון
לדוגמה, אם הקלטים הם Emma, 55, 60 ו-75, הפלט צריך להיות:
Emma
55
false
75
trueבהתחלה הציון של Emma היה 55, והוא לא עמד בסף המעבר של 60. לאחר עדכון הציון שלה ל-75, היא עוברת!
נסו בעצמכם
-- טען את המודול Student באמצעות require
local Student = require('Student')
-- קרא את הקלטים
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())
-- TODO: צור תלמיד עם השם והציון ההתחלתי הנתונים
-- TODO: הדפס את שם התלמיד באמצעות פונקציית הגישה
-- TODO: הדפס את הציון ההתחלתי של התלמיד באמצעות פונקציית הגישה
-- TODO: בדוק והדפס האם התלמיד עבר לפי הסף הנתון
-- TODO: עדכן את הציון של התלמיד באמצעות פונקציית ההגדרה
-- TODO: הדפס את הציון החדש של התלמיד
-- TODO: בדוק והדפס האם התלמיד עבר לאחר עדכון הציון
כל השיעורים ביחידה תכנות מונחה עצמים
4פרויקט: בנק דיגיטלי
הגדרת הפרויקטפעולת הפקדה7פולימורפיזם ודריסת מתודות
דריסת מתודותקריאה למתודות של מחלקת האבטיפוסיות ברווזממשק משותףבדיקת טיפוססיכום – תפקידי עובדים2תבנית אב־טיפוס למחלקה
מושג אב־הטיפוסקישור באמצעות __indexהבנאי :new()אתחול מאפייניםמופעים עצמאייםסיכום – מפעל מכוניות5העמסת אופרטורים בתכנות מונחה עצמים
חיבור אובייקטיםחיסור אובייקטיםשרשור אובייקטיםהשוואת אובייקטים (<, >)חזרה – חישובים עם ארנק8כימוס
כללי מתן שמותClosures לשמירה על פרטיותגישה באמצעות Closuresטבלאות לקריאה בלבדלוגיקת אימותסיכום – כספת מאובטחת11תבניות עיצוב (בקצרה)
פונקציות Factoryטבלת Singletonתבנית IteratorObserver (מאזין)סיכום – מפעל Logger3מצב והתנהגות של אובייקטים
משתני מופעמתודות Getterמתודות Setterמאפיינים מחושביםעיצוב מחרוזותבדיקות שוויוןסיכום – ציון תלמיד6יסודות הירושה
הכנת מבנה הירושהירושת מתודותהרחבת הבנאיהוספת מתודות למחלקת הבתמשותף לעומת ייחודיסיכום – היררכיית צורותתרגלו בעצמכם: קומפיילר Lua אונליין