Menu
Coddy logo textTech

חזרה — כרטיס ספרייה

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Swift של Coddy. שיעור 6 מתוך 57.

challenge icon

אתגר

בינוני

השלם את המחלקה LibraryCard. המאתחל שלה מקבל את שם החבר name ואת limit (ברירת המחדל היא 3), ומתחיל ללא ספרים שאולים. borrow(_:) מחזירה true ומוסיפה את הכותרת, אלא אם הכרטיס הגיע למגבלה שלו או שכבר יש בו את הכותרת הזו. giveBack(_:) מחזירה true כאשר הכותרת הוסרה. status() מחזירה Ada: 2/3 (Dune, Emma) עם הכותרות לפי סדר השאלתן, או Ada: 0/3 כשלא נשאלו ספרים.

הקוד שסופק קורא את השם, את המגבלה (או שורה ריקה לשימוש בברירת המחדל), ואז פקודות +title או -title. הוא מדפיס ok או no עבור כל פקודה, ולבסוף את status().

הקוד שלך צריך להופיע ב-LibraryCard.swift. הקובץ main.swift מכיל את קוד הקלט/פלט שסופק ואי אפשר לערוך אותו.

נסו בעצמכם

// קוד קלט/פלט שסופק: יש להשאיר אותו כפי שהוא
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())

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: Swift אונליין