Menu
CoddyTech

Ist eingeschrieben

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

challenge icon

Aufgabe

Einfach

Überprüfe, ob ein Student einen Kurs belegt. Behalte alles bei, was du in den vorherigen Schritten geschrieben hast.

1. Die Funktion. Schreibe unter die anderen Funktionen is_enrolled(student_name: String, course: String) -> bool:

  • Wenn student_records den Namen nicht enthält, gib Student '<name>' not found. aus und gib false zurück.
  • Gib andernfalls true zurück, wenn der Kurs in der Menge "courses" des Studenten enthalten ist, und false, wenn nicht.

2. Der Befehl. Füge oberhalb von ["show"] einen Zweig für enrolled <name> <course> hinzu, zum Beispiel enrolled Alice Math. Er gibt den Wert aus, den is_enrolled() zurückgibt. Für die Befehle

add Alice 20 Math Physics
add Bob 22 Biology Chemistry
enrolled Alice Math
enrolled Alice Biology
enrolled Bob Biology
enrolled Charlie Math
exit

lautet die Ausgabe:

Student 'Alice' added successfully.
Student 'Bob' added successfully.
true
false
true
Student 'Charlie' not found.
false
Goodbye!

Wenn ein Student nicht gefunden wird, erscheint zuerst die Meldung und danach false.

Probier es selbst

extends Node

# Jeder Studierende: 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))
			["grade", var student, var grade]:
				add_grade(student, int(grade))
			["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)

func add_grade(student_name: String, grade: int) -> void:
	if not student_records.has(student_name):
		print("Student '%s' not found." % student_name)
		return
	student_records[student_name]["grades"].append(grade)
	print("Grade %d added for student '%s'." % [grade, student_name])

Alle Lektionen in Logik & Ablaufsteuerung

Übe selbstständig: Online-GDScript-Compiler