Menu
Coddy logo textTech

Rückblick – Bibliotheksausweis

Teil des Abschnitts Objektorientierte Programmierung der Ruby-Journey von Coddy. Lektion 6 von 57.

challenge icon

Aufgabe

Mittel

Vervollstä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

Übe selbstständig: Online-Ruby-Compiler