שלושה סוגי חדרים (Room, FamilyRoom, Suite) בירושה חד-רמתית, ומחלקת Hotel המחזיקה מערך חדרים. חמישה סעיפים עולים בהדרגה: תרשים UML, כותרות מחלקה, פולימורפיזם דרך דריסת getCleaningTime, כותרת Hotel, ופעולה פנימית totalTime המשלבת שילוח פולימורפי עם downcast בטוח.
שלושה סוגי חדרים (Room, FamilyRoom, Suite) בירושה חד-רמתית, ומחלקת Hotel המחזיקה מערך חדרים. חמישה סעיפים עולים בהדרגה: תרשים UML, כותרות מחלקה, פולימורפיזם דרך דריסת getCleaningTime, כותרת Hotel, ופעולה פנימית totalTime המשלבת שילוח פולימורפי עם downcast בטוח.
סרטטו תרשים UML המתאר את הקשר בין המחלקות Room, FamilyRoom, Suite באופן המתאים ביותר לעקרונות של תכנות מונחה עצמים.
לכל אחת מהמחלקות Room, FamilyRoom, Suite כתבו כותרת המחלקה ותכונותיה. אפשר להניח שבכל מחלקה הוגדרו פעולות set/get.
לאחר עזיבת האורחים יש להחליף מצעים בכל אחת מהמיטות שבחדר, לשטוף את הריצפה ולנקות אבק בחדר ובמרפסת, להוציא מיטת תינוק בחדר משפחה (אם יש), לנקות את הג'קוזי בסוויטה (אם יש) ולשאוב שטיחים בסוויטה. הזמן הדרוש לכל אחד מסוגי עבודת הניקיון: החלפת מצעים למיטה אחת — חמש דקות; שטיפת ריצפה וניקוי אבק — עשר דקות בחדר רגיל וחדר משפחה, עשרים דקות בסוויטה; ניקוי מרפסת — חמש דקות; קיפול והוצאת מיטת תינוק — חמש דקות; ניקוי ג'קוזי — עשרים דקות; שאיבת שטיחים — חמש עשרה דקות. כתבו פעולה או פעולות לחישוב ולהחזרה של הזמן הדרוש לניקיון חדר. יש לציין באיזו מחלקה צריך להוסיף את הפעולה או את הפעולות.
public int getCleaningTime()
למחלקה Hotel (מלון) יש תכונה אחת — מערך של חדרי המלון. כתבו את כותרת המחלקה והגדירו את התכונה.
בסוף כל יום עבודה האחראי על הניקיון מכין תוכנית עבודה ליום המחרת. לשם כך הוא מקבל רשימה של מספרי חדרים שיתפנו למחרת. כתבו במחלקה Hotel פעולה פנימית המקבלת מערך של מספרים שלמים (מערך מספרי חדרים). הפעולה תחשב ותחזיר את הזמן הכולל של הניקיון. הפעולה גם תדפיס את מספר מיטות התינוק שיתפנו.
public int totalTime(int[] numArr)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.