Menu
CoddyTech

Ôn tập: Thẻ thư viện

Thuộc phần Lập trình hướng đối tượng trong hành trình Swift của Coddy. Bài học 6 trên 57.

challenge icon

Thử thách

Trung bình

Hoàn thiện lớp LibraryCard. Hàm khởi tạo nhận name của thành viên và limit (mặc định là 3), đồng thời bắt đầu với danh sách chưa mượn sách nào. borrow(_:) trả về true và thêm tên sách, trừ khi thẻ đã đạt giới hạn hoặc đã có tên sách đó. giveBack(_:) trả về true khi đã xóa tên sách. status() trả về Ada: 2/3 (Dune, Emma) cùng các tên sách theo thứ tự mượn, hoặc Ada: 0/3 khi chưa mượn sách nào.

Code được cung cấp đọc tên, giới hạn (hoặc một dòng trống để dùng giá trị mặc định), rồi đọc các lệnh +title hoặc -title. Code in ra ok hoặc no cho mỗi lệnh, rồi cuối cùng in ra status().

Đặt code của bạn trong LibraryCard.swift. main.swift chứa code đầu vào/đầu ra được cung cấp và bạn không thể chỉnh sửa tệp này.

Tự làm thử

// Đoạn code đầu vào/đầu ra đã được cung cấp: giữ nguyên
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())

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Playground Swift