סיכום – משרד הכרטיסים
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Kotlin של Coddy. שיעור 16 מתוך 57.
אתגר
בינוניבנו משרד כרטיסים קטן באמצעות שלושה סוגי הצהרות.
Ticketכולל בנאי פרטי שמקבל אתnumber, אתshowואתseat. האובייקט המלווה שלו מכיל אתconst val SEATS = 3, מונה פרטי ואת מפעל הכרטיסיםissue(show, seat), שמקצה לכרטיסים את המספרים 1, 2, 3, ...;issuedהוא מספר הכרטיסים שהונפקו עד כה.label()מחזירה#1 Hamlet seat 2.BoxOfficeהוא אובייקט.sell(show, seat)מחזירהno seat 4כשהמושב מחוץ לטווח שבין 1 ל־Ticket.SEATS,seat 2 takenכשהמושב נמכר עבור אותה הצגה, ובכל מקרה אחר מנפיקה כרטיס ומחזירה את התווית שלו.refund(number)משחררת את המושב של כרטיס שנמכר ומחזירהrefunded #1, אוno ticket #9.report()מחזירהHamlet 2/3, Cats 1/3כשההצגות מסודרות לפי סדר אלפביתי, אוnothing sold.
הקוד שסופק קורא פקודות sell Hamlet 2, refund 1 או report, מדפיס כל תשובה ולבסוף tickets issued: יחד עם המספר. מספרים אינם בשימוש חוזר לאחר החזר כספי.
יש לכתוב את הקוד שלכם ב־Ticket.kt וב־BoxOffice.kt. Main.kt מכיל את קוד הקלט/פלט שסופק ואי אפשר לערוך אותו.
נסו בעצמכם
fun main() {
// קוד קלט/פלט שסופק: יש להשאיר אותו כפי שהוא
val input = generateSequence(::readLine).toList()
for (cmd in input) {
val p = cmd.split(" ")
when (p[0]) {
"sell" -> println(BoxOffice.sell(p[1], p[2].toInt()))
"refund" -> println(BoxOffice.refund(p[1].toInt()))
else -> println(BoxOffice.report())
}
}
println("tickets issued: ${Ticket.issued}")
}
כל השיעורים ביחידה תכנות מונחה עצמים
1מחלקות ואובייקטים
עבודה עם קבציםהגדרת מחלקותבנאים ראשייםבלוקי init ואימות נתוניםבנאים משנייםסיכום – כרטיס ספרייה3אובייקטים ואובייקטים נלווים
הצהרות אובייקטאובייקטים נלוויםקבועים עם constביטויי אובייקטסיכום – משרד הכרטיסיםתרגלו בעצמכם: Kotlin אונליין