Projektübersicht
Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy — Lektion 48 von 56.
Du wirst ein kleines Studentenverwaltungssystem als eine Reihe von Methoden bauen, die sich alle einen verschachtelten Hash teilen. Anders aufgebaut als der Library Manager, dieses Mal ohne Menüschleife, nur Funktionen, die du kontinuierlich erweitern wirst.
Der Status befindet sich in einem einzigen Hash auf oberster Ebene:
student_records = {}Jeder Eintrag wird über den Namen als Schlüssel identifiziert, wobei ein Hash-Wert das Alter, die Noten und die Kurse des Schülers enthält:
{
"Alice" => { age: 20, grades: [], courses: ["Math", "Physics"] }
}Jede Lektion fügt eine Methode hinzu, die auf diesem Hash operiert: add_student, add_grade, average_grade, list_by_course, top_students.
Aufgabe
AnfängerInitialisiere ein leeres Hash namens student_records am Anfang deiner Datei. Gib es dann mit inspect aus, damit der Test Folgendes sieht:
{}Das ist die gesamte Aufgabe, diese Lektion bereitet lediglich den gemeinsamen Zustand für alles Folgende vor.
Spickzettel
Das Studenten-Verwaltungssystem verwendet einen einzelnen verschachtelten Hash als gemeinsamen Zustand:
student_records = {}
Jeder Eintrag verwendet den Namen des Studenten als Schlüssel mit einem Hash, der age, grades und courses enthält:
{
"Alice" => { age: 20, grades: [], courses: ["Math", "Physics"] }
}Verwenden Sie inspect, um den Inhalt eines Hashes auszugeben:
puts student_records.inspectProbier es selbst
# TODO: initialisiere student_records = {} und gib es mit inspect aus
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Programmfluss
1Strings im Detail
String-Methoden im ÜberblickString-InterpolationIterieren über StringsSplit und JoinRückblick – String Weaver4Blöcke, Procs & Lambdas
Was ist ein Block?do..end vs. geschweifte KlammernDas yield-SchlüsselwortBlock-ParameterProcs und LambdasZusammenfassung – Eigener Iterator7Hashes Teil 2
Hash.new mit StandardwertenIterieren über HashesVerschachtelte HashesZusammenführen und TransformierenRückblick – Häufigkeitszähler10Projekt - Studentenverwaltung
ProjektübersichtStudent hinzufügen5Enumerable-Kraftpaket
Select und RejectMap-VerkettungReduce / Injectcount, all?, any?, none?group_by und partitionsort_by, min_by, max_byZusammenfassung – Data Pipeline8Fortgeschrittene Entscheidungslogik
Case mit Klassen & RegexMulti-Value whenTernärer OperatorInline if / unlessRückblick – Noten-Klassifizierer