Menu
CoddyTech

Ajouter une note

Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 44 sur 78.

challenge icon

Défi

Facile

Enregistrez les notes des élèves. Conservez tout ce que vous avez écrit aux étapes précédentes.

1. La fonction. Sous les autres fonctions, écrivez add_grade(student_name: String, grade: int) -> void :

  • Si student_records ne contient pas le nom, affichez Student '<name>' not found. et retournez.
  • Sinon, ajoutez la note au tableau "grades" de l’élève et affichez Grade <grade> added for student '<name>'.

Les notes sont stockées dans un tableau, et non dans un ensemble, car un élève peut obtenir deux fois la même note et les deux sont prises en compte.

2. La commande. Ajoutez une branche pour grade <name> <grade>, par exemple grade Alice 90, au-dessus de ["show"]. Elle appelle add_grade() avec la note convertie en int. Pour les commandes

add Alice 20 Math Physics
add Bob 22 Biology Chemistry
grade Alice 90
grade Alice 85
grade Bob 75
grade Charlie 80
show
exit

la sortie est :

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

Essayez vous-même

extends Node

# Chaque étudiant : nom -> {"age": int, "grades": Array, "courses": un ensemble de noms de cours}
var student_records := {}

func _ready():
	while true:
		var parts := Array(OS.read_string_from_stdin().split(" ", false))
		match parts:
			["add", var student, var age, ..]:
				add_student(student, int(age), parts.slice(3))
			["show"]:
				print(student_records)
			["exit"]:
				print("Goodbye!")
				break

func add_student(student_name: String, age: int, courses: Array) -> void:
	if student_records.has(student_name):
		print("Student '%s' already exists." % student_name)
		return
	var course_set := {}
	for course in courses:
		course_set[course] = true
	student_records[student_name] = {"age": age, "grades": [], "courses": course_set}
	print("Student '%s' added successfully." % student_name)

Toutes les leçons de Logique et flux d’exécution

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