סיכום — כרטיס ספרייה
חלק מהיחידה תכנות מונחה עצמים במסלול ה-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סיכום — כרטיס ספרייה3מתודות ומשתנים של מחלקה
מתודות של מחלקהמשתני מופע של מחלקהקבועיםמתודות ליצירת מופעיםסיכום – קודי קופוןתרגלו בעצמכם: קומפיילר Ruby אונליין