Menu
Coddy logo textTech

Note hinzufügen

Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy — Lektion 50 von 56.

Erweitern Sie nun das System um eine add_grade-Methode. Sie fügt dem :grades-Array des Schülers eine numerische Note hinzu, sofern der Schüler existiert.

Wenn der Name nicht in den Datensätzen enthalten ist, melden Sie dies und brechen Sie ab.

challenge icon

Aufgabe

Einfach

Behalten Sie Ihren $student_records Hash und add_student aus der vorherigen Lektion bei. Fügen Sie eine Methode add_grade(name, grade) hinzu, die:

  1. Student '<name>' not found. ausgibt, wenn der Name nicht existiert, und die Methode beendet.
  2. Andernfalls grade in das :grades Array des Schülers einfügt und Grade <grade> added for '<name>'. ausgibt.

Ersetzen Sie den Testblock am Ende durch:

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

Erwartete Ausgabe:

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"]}}

Spickzettel

Füge eine add_grade(name, grade)-Methode hinzu, die die Existenz prüft und dann an :grades anhängt:

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

Probier es selbst

$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

# TODO: 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 iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Programmfluss