Projektübersicht
Teil des Abschnitts Logik und Ablauf der Ruby-Journey von Coddy. Lektion 28 von 56.
Du wirst einen kleinen Bibliotheksverwalter erstellen: ein menügesteuertes Programm, das Bücher verwaltet und es dem Benutzer ermöglicht, sie hinzuzufügen, zu suchen, zu filtern und als gelesen zu markieren.
Jedes Buch ist ein Hash mit den folgenden Schlüsseln:
{
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
genre: "Fiction",
read: false
}Du speicherst sie alle in einem Array namens library und steuerst das Ganze über eine loop do-Schleife, die ein Menü ausgibt und eine Auswahl einliest. Jede Lektion fügt dem Menü eine Option hinzu:
- 1. Ein Buch hinzufügen
- 2. Nach Titel suchen
- 3. Nach Genre filtern
- 4. Ein Buch als gelesen markieren
- 5. Beenden
In dieser ersten Lektion richtest du die leere Bibliothek, die Menüschleife und die Beenden-Option ein. Die übrigen Optionen beginnen als leere Verzweigungen, die du später ausfüllst.
Aufgabe
AnfängerInitialisiere ein leeres Array library und starte dann eine loop do-Schleife, die:
- das Menü ausgibt (genau im unten gezeigten Format)
- die Auswahl des Benutzers mit
gets.chompeinliest - bei der Auswahl
"5"Goodbye!ausgibt und die Schleife abbricht
Das Menü muss genau so aussehen:
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Verwende für die Eingabeaufforderung Choose an option: print, damit der Cursor in derselben Zeile bleibt.
Bei der Eingabe 5 lautet die Ausgabe:
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Goodbye!Probier es selbst
# TODO: ein leeres Bibliotheks-Array initialisieren
# TODO: Schleife ausführen, Menü ausgeben, Auswahl einlesen, bei "5" beenden
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik und Ablauf
1Strings im Detail
Überblick über String-MethodenString-InterpolationStrings durchlaufenSplitten und VerbindenRückblick – String Weaver4Blocks, Procs & Lambdas
Was ist ein Block?do..end vs. geschweifte KlammernDas Schlüsselwort yieldBlock-ParameterProcs und LambdasRückblick – Benutzerdefinierter Iterator2Bereiche
Was ist ein Bereich?BereichsmethodenBereiche in Case / WhenWiederholung – Übung zu Bereichen5Das Enumerable-Kraftpaket
Select und RejectMap verkettenReduce / Injectcount, all?, any?, none?group_by und partitionsort_by, min_by, max_byZusammenfassung – Datenpipeline8Fortgeschrittene Entscheidungsfindung
Case mit Klassen & Regexwhen mit mehreren WertenTernärer OperatorInline-if / unlessRückblick – Notenklassifizierer32D-Arrays
Grundlagen von 2D-ArraysZugriff auf 2D-ElementeDurchlaufen von 2D-ArraysGängige 2D-MusterRückblick – Matrixoperationen6Projekt – Bibliotheksverwaltung
ProjektübersichtBuch hinzufügenÜbe selbstständig: Online-Ruby-Compiler