Menu
CoddyTech

Note hinzufügen

Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 44 von 78.

challenge icon

Aufgabe

Einfach

Erfasse die Noten der Schüler. Behalte alles bei, was du in den vorherigen Schritten geschrieben hast.

1. Die Funktion. Schreibe unter die anderen Funktionen add_grade(student_name: String, grade: int) -> void:

  • Wenn student_records den Namen nicht enthält, gib Student '<name>' not found. aus und kehre zurück.
  • Andernfalls füge die Note zum "grades"-Array des Schülers hinzu und gib Grade <grade> added for student '<name>'. aus.

Die Noten werden in einem Array und nicht in einem Set gespeichert, da ein Schüler dieselbe Note zweimal erhalten kann und beide zählen.

2. Der Befehl. Füge oberhalb von ["show"] einen Zweig für grade <name> <grade> hinzu, zum Beispiel grade Alice 90. Er ruft add_grade() auf und wandelt die Note dabei in einen int um. Für die Befehle

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

lautet die Ausgabe:

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!

Probier es selbst

extends Node

# Jeder Student: name -> {"age": int, "grades": Array, "courses": eine Menge von Kursnamen}
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)

Alle Lektionen in Logik & Ablaufsteuerung

Übe selbstständig: Online-GDScript-Compiler