Menu
CoddyTech

إضافة طالب

جزء من قسم المنطق وتدفق التنفيذ في رحلة Ruby على Coddy. الدرس 49 من 56.

عرّف طريقة add_student تسجّل طالبًا جديدًا في التجزئة المشتركة student_records.

رفض التكرارات هو الفرع الوحيد؛ بمجرد وجود الطالب، أبلغ عن ذلك وعُد دون الكتابة فوق السجل.

challenge icon

التحدي

سهل

في أعلى ملفك، أبقِ على student_records = {}. ثم عرّف طريقة add_student(name, age, courses) تقوم بما يلي:

  1. إذا كان name مفتاحًا موجودًا بالفعل في student_records، فاطبع Student '<name>' already exists. ثم أعد التنفيذ.
  2. وإلا، فخزّن { age: age, grades: [], courses: courses } تحت المفتاح name واطبع Student '<name>' added.

في أسفل ملفك، استبدل كتلة الاختبار بما يلي:

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_student("Alice", 21, ["Art"])
puts student_records.inspect

الناتج المتوقع هو:

Student 'Alice' added.
Student 'Bob' added.
Student 'Alice' already exists.
{"Alice"=>{:age=>20, :grades=>[], :courses=>["Math", "Physics"]}, "Bob"=>{:age=>22, :grades=>[], :courses=>["Biology", "Chemistry"]}}

بما أن الطرق لا يمكنها الوصول إلى المتغيرات المحلية من البرنامج النصي المحيط بها، فعرّف student_records باستخدام $student_records (متغير عام) لكي تتمكن الطريقة من قراءته وتحديثه. استخدم هذا الاسم داخل الطريقة أيضًا.

جرّب بنفسك

$student_records = {}

# TODO: عرّف add_student(name, age, courses) باستخدام def، وامنع إضافة السجلات المكررة،
# وخزّن { age:, grades: [], courses: }، واطبع رسالة تفيد بأنه أُضيف أو أنه موجود بالفعل

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_student("Alice", 21, ["Art"])
puts $student_records.inspect
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق التنفيذ

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