חזרה — כרטיס ספרייה
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Swift של Coddy. שיעור 6 מתוך 57.
אתגר
בינוניהשלם את המחלקה 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 אונליין