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

إضافة درجة

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

الآن قم بتوسيع النظام باستخدام طريقة add_grade. فهي تقوم بإضافة درجة رقمية إلى مصفوفة :grades الخاصة بالطالب، طالما أن الطالب موجود.

إذا لم يكن الاسم موجوداً في السجلات، فقم بالإبلاغ عن ذلك واخرج.

challenge icon

التحدي

سهل

احتفظ بـ hash الخاص بـ $student_records و add_student من الدرس السابق. أضف طريقة (method) باسم add_grade(name, grade) تقوم بما يلي:

  1. تطبع Student '<name>' not found. إذا كان الاسم غير موجود، ثم تخرج (returns).
  2. بخلاف ذلك، تقوم بإضافة grade إلى مصفوفة :grades الخاصة بالطالب وتطبع Grade <grade> added for '<name>'.

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

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_grade("Alice", 90)
add_grade("Alice", 85)
add_grade("Bob", 75)
add_grade("Charlie", 80)
puts $student_records.inspect

المخرجات المتوقعة:

Student 'Alice' added.
Student 'Bob' added.
Grade 90 added for 'Alice'.
Grade 85 added for 'Alice'.
Grade 75 added for 'Bob'.
Student 'Charlie' not found.
{"Alice"=>{:age=>20, :grades=>[90, 85], :courses=>["Math", "Physics"]}, "Bob"=>{:age=>22, :grades=>[75], :courses=>["Biology", "Chemistry"]}}

ورقة مرجعية

أضف طريقة add_grade(name, grade) تتحقق من الوجود، ثم تضيف إلى :grades:

def add_grade(name, grade)
  unless $student_records.key?(name)
    puts "Student '#{name}' not found."
    return
  end
  $student_records[name][:grades] << grade
  puts "Grade #{grade} added for '#{name}'."
end

جرّب بنفسك

$student_records = {}

def add_student(name, age, courses)
  if $student_records.key?(name)
    puts "Student '#{name}' already exists."
    return
  end
  $student_records[name] = { age: age, grades: [], courses: courses }
  puts "Student '#{name}' added."
end

# مهام: def add_grade(name, grade)

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_grade("Alice", 90)
add_grade("Alice", 85)
add_grade("Bob", 75)
add_grade("Charlie", 80)
puts $student_records.inspect
quiz iconاختبر نفسك

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

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