Menu
CoddyTech

Dodaj ocenę

Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 44 z 78.

challenge icon

Wyzwanie

Łatwy

Zapisuj oceny uczniów. Zachowaj wszystko, co zostało napisane w poprzednich krokach.

1. Funkcja. Poniżej pozostałych funkcji napisz add_grade(student_name: String, grade: int) -> void:

  • Jeśli student_records nie zawiera tego imienia, wypisz Student '<name>' not found. i zakończ działanie funkcji.
  • W przeciwnym razie dodaj ocenę do tablicy "grades" ucznia i wypisz Grade <grade> added for student '<name>'.

Oceny są przechowywane w tablicy, a nie w zbiorze, ponieważ uczeń może otrzymać tę samą ocenę dwa razy i obie oceny się liczą.

2. Polecenie. Dodaj gałąź dla polecenia grade <name> <grade>, na przykład grade Alice 90, przed ["show"]. Wywołuje ona add_grade(), przekazując ocenę przekonwertowaną na int. Dla poleceń

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

wynik to:

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!

Spróbuj swoich sił

extends Node

# Każdy uczeń: imię -> {"age": int, "grades": Array, "courses": zbiór nazw kursów}
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)

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator GDScript online