Descripción general del proyecto
Parte de la sección Lógica y flujo del Journey de Ruby de Coddy — lección 48 de 56.
Vas a construir un pequeño sistema de registros de estudiantes como un conjunto de métodos que comparten un único hash anidado. Con una estructura diferente a la del Library Manager, esta vez sin un bucle de menú, solo funciones que irás extendiendo.
El estado reside en un único hash de nivel superior:
student_records = {}Cada entrada estará indexada por nombre, con un valor hash que contiene la edad, las calificaciones y los cursos del estudiante:
{
"Alice" => { age: 20, grades: [], courses: ["Math", "Physics"] }
}Cada lección añade un método que opera sobre este hash: add_student, add_grade, average_grade, list_by_course, top_students.
Desafío
PrincipianteInicializa un hash vacío llamado student_records en la parte superior de tu archivo. Luego imprímelo con inspect para que la prueba vea:
{}Esa es toda la tarea, esta lección simplemente establece el estado compartido para todo lo que sigue.
Hoja de referencia
El sistema de registros de estudiantes utiliza un único hash anidado como estado compartido:
student_records = {}
Cada entrada está indexada por el nombre del estudiante con un hash que contiene age, grades y courses:
{
"Alice" => { age: 20, grades: [], courses: ["Math", "Physics"] }
}Usa inspect para imprimir el contenido de un hash:
puts student_records.inspectPruébalo tú mismo
# TODO: inicializa student_records = {} y imprímelo con inspect
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y flujo
1Strings en profundidad
Visión general de los métodos de StringInterpolación de StringsIterar sobre StringsSplit y JoinRepaso - String Weaver4Bloques, Procs y Lambdas
¿Qué es un bloque?do..end vs llavesLa palabra clave yieldParámetros de bloqueProcs y LambdasResumen - Iterador personalizado7Hashes Parte 2
Hash.new con valores por defectoIteración de HashesHashes anidadosFusión y transformaciónResumen - Contador de frecuencia10Proyecto - Registros de Estudiantes
Descripción general del proyectoAgregar estudiante5Potencia de Enumerable
Select y RejectEncadenando MapReduce / Injectcount, all?, any?, none?group_by y partitionsort_by, min_by, max_byResumen - Data Pipeline