Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مراجعة - بطاقة المكتبة

جزء من قسم البرمجة كائنية التوجه في رحلة 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())

جميع دروس البرمجة كائنية التوجه

تدرّب بنفسك: Playground لـ Swift