Menu
Coddy logo textTech

סיכום — כרטיס ספרייה

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

challenge icon

אתגר

בינוני

השלם את המחלקה 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

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

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