Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مراجعة - درجة الطالب

جزء من قسم Object Oriented Programming في رحلة Lua على Coddy — الدرس 18 من 70.

challenge icon

التحدي

سهل

دعنا نبني فئة Student كاملة تجمع كل ما تعلمته في هذا الفصل — متغيرات النسخة (instance variables)، والمُحضرات (getters)، والمُعينات (setters)، والخصائص المحسوبة، كلها تعمل معاً!

ستقوم بتنظيم الكود الخاص بك عبر ملفين:

  • Student.lua: قم بتعريف فئة Student الخاصة بك باستخدام نمط النموذج الأولي (prototype pattern) القياسي. يجب أن يخزن كل طالب name و grade. تحتاج فئتك إلى:
    • منشئ :new(name, grade)
    • مُحضر :getName() يعيد اسم الطالب
    • مُحضر :getGrade() يعيد الدرجة الحالية
    • مُعين :setGrade(newGrade) يقوم بتحديث الدرجة
    • طريقة :hasPassed(threshold) تعيد true إذا كانت درجة الطالب أكبر من أو تساوي العتبة (threshold)، و false خلاف ذلك
  • main.lua: استدعِ وحدة Student الخاصة بك واستعرض جميع الوظائف من خلال إنشاء طالب، والتحقق من حالته، وتحديث درجته، والتحقق من التغييرات.

ستتلقى أربعة مدخلات:

  1. اسم الطالب
  2. الدرجة الأولية
  3. عتبة النجاح للتحقق منها
  4. الدرجة الجديدة لتعيينها

في ملفك الرئيسي، قم بإنشاء طالب بالاسم والدرجة الأولية المعطيين، ثم اطبع ما يلي في أسطر منفصلة:

  1. اسم الطالب
  2. درجة الطالب الأولية
  3. ما إذا كان الطالب قد نجح بالعتبة المعطاة (اطبع true أو false)
  4. درجة الطالب بعد تحديثها بالدرجة الجديدة
  5. ما إذا كان الطالب قد نجح بنفس العتبة بعد تحديث الدرجة

على سبيل المثال، إذا كانت المدخلات هي Emma و 55 و 60 و 75، يجب أن تكون المخرجات:

Emma
55
false
75
true

كانت لدى Emma في البداية درجة 55، والتي لم تستوفِ عتبة النجاح البالغة 60. بعد تحديث درجتها إلى 75، أصبحت ناجحة الآن!

جرّب بنفسك

-- استدعاء وحدة الطالب (Student)
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: طباعة اسم الطالب باستخدام دالة الحصول على القيمة (getter)

-- TODO: طباعة درجة الطالب الأولية باستخدام دالة الحصول على القيمة (getter)

-- TODO: التحقق والطباعة ما إذا كان الطالب قد نجح بناءً على الحد الأدنى المعطى

-- TODO: تحديث درجة الطالب باستخدام دالة التعيين (setter)

-- TODO: طباعة درجة الطالب الجديدة

-- TODO: التحقق والطباعة ما إذا كان الطالب قد نجح بعد تحديث الدرجة

جميع دروس Object Oriented Programming