Menu
Coddy logo textTech

Ajouter une note

Fait partie de la section Logique et Flux du Journey Ruby de Coddy. Leçon 50 sur 56.

Étendez maintenant le système avec une méthode add_grade. Elle ajoute une note numérique au tableau :grades de l'étudiant, tant que l'étudiant existe.

Si le nom n'est pas dans les dossiers, signalez-le et abandonnez l'opération.

challenge icon

Défi

Facile

Conservez votre hash $student_records et votre méthode add_student de la leçon précédente. Ajoutez une méthode add_grade(name, grade) qui :

  1. Affiche Student '<name>' not found. si le nom n'existe pas, et s'arrête.
  2. Sinon, ajoute grade dans le tableau :grades de l'étudiant et affiche Grade <grade> added for '<name>'.

Remplacez le bloc de test en bas par :

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

Résultat attendu :

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

Essayez vous-même

$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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux

Entraînez-vous par vous-même : Compilateur Ruby en ligne