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

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

جزء من قسم البرمجة كائنية التوجه في رحلة Lua على Coddy. الدرس 18 من 70.

challenge icon

التحدي

سهل

لنبنِ فئة Student كاملة تجمع كل ما تعلمته في هذا الفصل: متغيرات النسخة، وواجهات getter، وواجهات setter، والخصائص المحسوبة، وكلها تعمل معًا!

ستنظم الشيفرة عبر ملفين:

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

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

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

في ملفك الرئيسي، أنشئ طالبًا بالاسم وgrade الأولية المعطيين، ثم اطبع ما يلي في أسطر منفصلة:

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

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

Emma
55
false
75
true

كانت grade ‏Emma في البداية 55، وهو ما لم يحقق threshold النجاح البالغ 60. بعد تحديث grade الخاصة بها إلى 75، أصبحت الآن ناجحة!

REQUIRED OUTPUT FORMAT: [Your translated content here]

جرّب بنفسك

-- تتطلب وحدة 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: تحقق واطبع ما إذا كان الطالب قد نجح بعد تحديث الدرجة

جميع دروس البرمجة كائنية التوجه

تدرّب بنفسك: مترجم Lua عبر الإنترنت