Projektübersicht
Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy. Lektion 28 von 56.
Du wirst einen kleinen Bibliotheksverwalter bauen: ein menügesteuertes Programm, das den Überblick über Bücher behält und es dem Benutzer ermöglicht, diese hinzuzufügen, zu suchen, zu filtern und als gelesen zu markieren.
Jedes Buch ist ein Hash mit diesen Schlüsseln:
{
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
genre: "Fiction",
read: false
}Du bewahrst sie alle in einem Array namens library auf und steuerst das Ganze über ein loop do, das 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
Diese erste Lektion richtet die leere Bibliothek, die Menüschleife und die Beenden-Option ein. Die anderen Optionen beginnen als leere Zweige, die Sie später ausfüllen werden.
Aufgabe
AnfängerInitialisieren Sie ein leeres library Array und starten Sie dann einen loop do, der:
- Das Menü ausgibt (exaktes Format unten)
- Die Auswahl des Benutzers mit
gets.chompeinliest - Wenn die Auswahl
"5"ist,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: Verwenden Sie print für die Eingabeaufforderung Choose an option: , damit der Cursor in derselben Zeile bleibt.
Für die Eingabe 5 sieht die Ausgabe wie folgt aus:
--- 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 library-Array initialisieren
# TODO: loop do, 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 & Programmfluss
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