Menu
Coddy logo textTech

Powtórzenie — karta biblioteczna

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

challenge icon

Wyzwanie

Średni

Uzupełnij klasę LibraryCard. Jej inicjalizator przyjmuje nazwę członka name i limit (domyślnie 3) i rozpoczyna działanie bez wypożyczonych książek. borrow(_:) zwraca true i dodaje tytuł, chyba że karta osiągnęła limit lub ma już ten tytuł. giveBack(_:) zwraca true, gdy usunęła tytuł. status() zwraca Ada: 2/3 (Dune, Emma) z tytułami w kolejności wypożyczania albo Ada: 0/3, gdy nic nie jest wypożyczone.

Dostarczony kod odczytuje nazwę, limit (lub pustą linię, aby użyć wartości domyślnej), a następnie polecenia +title lub -title. Dla każdego polecenia wypisuje ok lub no, a na końcu status().

Twój kod umieść w pliku LibraryCard.swift. Plik main.swift zawiera dostarczony kod wejścia/wyjścia i nie można go edytować.

Spróbuj swoich sił

// Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
var input: [String] = []
while let line = readLine() { input.append(line) }
let card = input[1].isEmpty ? LibraryCard(name: input[0]) : LibraryCard(name: input[0], limit: Int(input[1])!)
for cmd in input.dropFirst(2) {
    let title = String(cmd.dropFirst())
    let done = cmd.hasPrefix("+") ? card.borrow(title) : card.giveBack(title)
    print(done ? "ok" : "no")
}
print(card.status())

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Edytor online Swift