Bücher ausleihen
Teil des Abschnitts Objektorientierte Programmierung der Ruby-Journey von Coddy. Lektion 51 von 57.
Aufgabe
EinfachFüge den Befehl BORROW hinzu. Sorge dafür, dass jeder Befehl aus den vorherigen Schritten weiterhin genau wie zuvor funktioniert.
BORROW name id: Prüfe in dieser Reihenfolge und antworte mit dem ersten Problem:no member bo,no book 9,Dune is not available,ada has reached the limit(Mitglieder dürfen höchstensLIMIT, 2, Bücher ausgeliehen haben). Andernfalls vermerke die Ausleihe sowohl beim Buch als auch beim Mitglied und antworteada borrowed Dune.
Der bereitgestellte Code übergibt jede Eingabezeile an library.handle(line) und gibt jede zurückgegebene Antwort in einer eigenen Zeile aus. Mitgliedsnamen sind einzelne kleingeschriebene Wörter, Buch-IDs sind ganze Zahlen, und die Eingabe enthält nur die bisher beschriebenen Befehle. Jeder andere Befehl antwortet mit unknown command.
Dein Code gehört in book.rb, member.rb und library.rb. main.rb enthält den bereitgestellten Eingabe-/Ausgabecode und darf nicht bearbeitet werden.
Probier es selbst
require_relative 'book'
require_relative 'member'
require_relative 'library'
# Bereitgestellter Ein-/Ausgabe-Code: belasse ihn so wie er ist
input = []
while (line = gets)
input << line.chomp
end
library = Library.new
input.each do |line|
library.handle(line).each { |reply| puts reply }
end
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