Menu
CoddyTech

Agregar calificación

Parte de la sección Lógica y flujo del Journey de GDScript de Coddy. Lección 44 de 78.

challenge icon

Desafío

Fácil

Registra las calificaciones de los estudiantes. Conserva todo lo que escribiste en los pasos anteriores.

1. La función. Debajo de las otras funciones, escribe add_grade(student_name: String, grade: int) -> void:

  • Si student_records no tiene el nombre, imprime Student '<name>' not found. y retorna.
  • De lo contrario, añade la calificación al arreglo "grades" del estudiante e imprime Grade <grade> added for student '<name>'.

Las calificaciones son un arreglo, no un conjunto, porque un estudiante puede obtener la misma calificación dos veces y ambas cuentan.

2. El comando. Añade una rama para grade <name> <grade>, como grade Alice 90, antes de ["show"]. Llama a add_grade() con la calificación convertida a un int. Para los comandos

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

el resultado es:

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!

Pruébalo tú mismo

extends Node

# Cada estudiante: nombre -> {"age": int, "grades": Array, "courses": un conjunto de nombres de cursos}
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)

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de GDScript online