Rückblick – Bibliotheksausweis
Teil des Abschnitts Objektorientierte Programmierung der Ruby-Journey von Coddy. Lektion 6 von 57.
Aufgabe
MittelVervollständige die Klasse LibraryCard. initialize(name, limit = 3) speichert den Namen und das Ausleihlimit und beginnt ohne ausgeliehene Titel. borrow(title) gibt true zurück und fügt den Titel hinzu, sofern die Karte ihr Limit noch nicht erreicht hat und diesen Titel nicht bereits enthält; andernfalls gibt sie false zurück. give_back(title) gibt true zurück, wenn der Titel entfernt wurde. to_s gibt Ada: 2/3 (Dune, Emma) mit den Titeln in der Reihenfolge ihrer Ausleihe zurück oder Ada: 0/3, wenn nichts ausgeliehen ist.
Der bereitgestellte Code liest den Namen und das Limit ein (- für den Standardwert), anschließend Befehle der Form +title oder -title. Für jeden Befehl gibt er ok oder no aus und schließlich die Karte.
Dein Code gehört in library_card.rb. main.rb enthält den bereitgestellten Ein-/Ausgabecode und darf nicht bearbeitet werden.
Probier es selbst
require_relative 'library_card'
# Gelieferter Ein-/Ausgabecode: belasse ihn wie er ist
input = []
while (line = gets)
input << line.chomp
end
card = input[1] == "-" ? LibraryCard.new(input[0]) : LibraryCard.new(input[0], input[1].to_i)
input.drop(2).each do |cmd|
title = cmd[1..]
done = cmd.start_with?("+") ? card.borrow(title) : card.give_back(title)
puts done ? "ok" : "no"
end
puts card
Alle Lektionen in Objektorientierte Programmierung
1Klassen und Objekte
Arbeiten mit DateienKlassen definierenInstanzvariablenMethoden und selfto_s und inspectRückblick – Bibliotheksausweis4Kapselung
Private MethodenGeschützte MethodenPrivate SetterZustand schützenRückblick – Verkaufsautomat7Polymorphismus und Duck Typing
PolymorphismusDuck TypingAbstrakte MethodenFälle und KlassenRückblick – Zahlungsmethoden2Getter und Setter sowie self
Leser und SchreiberBenutzerdefinierte Setterself in MethodenIdentität und GleichheitWiederholung – Kontaktliste5Vererbung
UnterklassenMethoden überschreibensuper aufrufenis_a? und VorfahrenRückblick – Gehaltsabrechnung des Personals8Spezielle Methoden
Gleichheit und HashOperator-MethodenIndexieren und AnhängenBenutzerdefinierte CollectionsRückblick – Brüche11Projekt: Bibliotheksverwaltung
Bücher und MitgliederBücher ausleihenÜbe selbstständig: Online-Ruby-Compiler