Menu
Coddy logo textTech

Powtórzenie – karta biblioteczna

Część sekcji Programowanie obiektowe ścieżki Ruby w Coddy. Lekcja 6 z 57.

challenge icon

Wyzwanie

Średni

Uzupełnij klasę LibraryCard. initialize(name, limit = 3) zapisuje imię i nazwisko oraz limit wypożyczeń, a na początku nie ma żadnych wypożyczonych tytułów. borrow(title) zwraca true i dodaje tytuł, chyba że karta osiągnęła limit lub ma już ten tytuł — w takim przypadku zwraca false. give_back(title) zwraca true, gdy tytuł został usunięty. to_s zwraca Ada: 2/3 (Dune, Emma) z tytułami w kolejności wypożyczenia albo Ada: 0/3, gdy nic nie jest wypożyczone.

Dostarczony kod odczytuje imię i nazwisko oraz limit (- oznacza wartość domyślną), a następnie polecenia +title lub -title. Dla każdego polecenia wypisuje ok lub no, a na końcu kartę.

Umieść swój kod w pliku library_card.rb. Plik main.rb zawiera dostarczony kod wejścia/wyjścia i nie można go edytować.

Spróbuj swoich sił

require_relative 'library_card'

# Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
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

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Ruby online