مراجعة - بطاقة المكتبة
جزء من قسم البرمجة كائنية التوجه في رحلة Ruby على Coddy. الدرس 6 من 57.
التحدي
متوسطأكمل الصنف LibraryCard. تقوم initialize(name, limit = 3) بتخزين الاسم وحدّ الإعارة، وتبدأ دون أي عناوين مُعارة. تُرجع borrow(title) القيمة true وتضيف العنوان، ما لم تكن البطاقة قد بلغت حدّها أو كانت تحتوي على ذلك العنوان بالفعل، وفي هذه الحالة تُرجع false. تُرجع give_back(title) القيمة true عند إزالة العنوان. تُرجع to_s القيمة Ada: 2/3 (Dune, Emma) مع العناوين بترتيب استعارتها، أو Ada: 0/3 عندما لا يكون هناك شيء مُعار.
يقرأ الكود المُزوَّد الاسم والحدّ (- للقيمة الافتراضية)، ثم يقرأ الأوامر +title أو -title. ويطبع ok أو no لكل أمر، ثم يطبع البطاقة في النهاية.
ضع الكود الخاص بك في library_card.rb. يحتوي main.rb على كود الإدخال/الإخراج المُزوَّد ولا يمكن تعديله.
جرّب بنفسك
require_relative 'library_card'
# كود الإدخال/الإخراج المُزوَّد: أبقِه كما هو
input = []
while (line = gets)
input << line.chomp
end
card = input[1] == "-" ? LibraryCard.new(input[0]) : LibraryCard.new(input[0], input[1].to_i)
input.drop(2).each do |cmd|
title = cmd[1..]
done = cmd.start_with?("+") ? card.borrow(title) : card.give_back(title)
puts done ? "ok" : "no"
end
puts card
جميع دروس البرمجة كائنية التوجه
1الفئات والكائنات
العمل مع الملفاتتعريف الفئاتمتغيرات النسخةالأساليب و selfto_s و inspectمراجعة - بطاقة المكتبة7تعدد الأشكال والكتابة بأسلوب البطة
تعدد الأشكالالكتابة بأسلوب البطةالأساليب المجردةالحالات والفئاتمراجعة - طرق الدفع3أساليب ومتغيرات الأصناف
أساليب الأصنافمتغيرات كائنات الأصنافالثوابتأساليب الإنشاءمراجعة - رموز القسائمتدرّب بنفسك: مترجم Ruby عبر الإنترنت