Présentation du projet
Fait partie de la section Logique et Flux du Journey Ruby de Coddy — leçon 48 sur 56.
Vous allez construire un petit système de dossiers d'étudiants sous la forme d'un ensemble de méthodes qui partagent toutes un seul hash imbriqué. Une structure différente de celle du Library Manager, pas de boucle de menu cette fois-ci, juste des fonctions que vous continuerez à étendre.
L'état réside dans un seul hash de premier niveau :
student_records = {}Chaque entrée sera indexée par nom, avec une valeur de hachage contenant l'âge, les notes et les cours de l'étudiant :
{
"Alice" => { age: 20, grades: [], courses: ["Math", "Physics"] }
}Chaque leçon ajoute une méthode qui opère sur ce hash : add_student, add_grade, average_grade, list_by_course, top_students.
Défi
DébutantInitialisez un hash vide nommé student_records en haut de votre fichier. Ensuite, affichez-le avec inspect pour que le test voie :
{}C'est tout pour cette tâche, cette leçon prépare simplement l'état partagé pour tout ce qui suit.
Aide-mémoire
Le système de dossiers des étudiants utilise un seul hash imbriqué comme état partagé :
student_records = {}
Chaque entrée est indexée par le nom de l'étudiant avec un hash contenant age, grades et courses :
{
"Alice" => { age: 20, grades: [], courses: ["Math", "Physics"] }
}Utilisez inspect pour afficher le contenu d'un hash :
puts student_records.inspectEssayez vous-même
# TODO: initialiser student_records = {} et l'afficher avec inspect
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et Flux
1Les chaînes de caractères en profondeur
Aperçu des méthodes de chaînesInterpolation de chaînesParcourir les chaînesSplit et JoinRécapitulatif - String Weaver4Blocs, Procs & Lambdas
Qu'est-ce qu'un bloc ?do..end vs AccoladesLe mot-clé yieldParamètres de blocProcs et LambdasRécapitulatif - Itérateur personnalisé7Hashes - Partie 2
Hash.new avec des valeurs par défautItérer sur les HashesHashes imbriquésFusion et transformationRécapitulatif - Compteur de fréquence10Projet - Dossiers étudiants
Présentation du projetAjouter un étudiant2Intervalles
Qu'est-ce qu'un intervalle ?Méthodes d'intervalleLes intervalles dans Case / WhenRécapitulatif - Pratique des intervalles5La puissance d'Enumerable
Select et RejectChaîner MapReduce / Injectcount, all?, any?, none?group_by et partitionsort_by, min_by, max_byRécapitulatif - Data Pipeline