באוכסניית הנוער "חלומות טובים" יש 3 קומות, ובכל קומה יש 1-3 חדרים. באכסניה יש שני סוגי חדרים: חדר זוגי וחדר יחיד. המחיר ללילה בחדר יחיד הוא 50 שקלים ובחדר זוגי 100 שקלים.
באוכסניית הנוער "חלומות טובים" יש 3 קומות, ובכל קומה יש 1-3 חדרים. באכסניה יש שני סוגי חדרים: חדר זוגי וחדר יחיד. המחיר ללילה בחדר יחיד הוא 50 שקלים ובחדר זוגי 100 שקלים.
במערכת המחשוב מוגדרת מחלקת Room, חדר – יש לה שלוש תכונות: • roomNum – מספר חדר בן שלוש ספרות, מטיפוס שלם. הספרה הראשונה (משמאל) מייצגת את מספר הקומה שבה החדר נמצא. לדוגמה: חדר מספר 231 נמצא בקומה מספר 2, וחדר 145 נמצא בקומה מספר 1. • roomType – סוג חדר: 1 הוא חדר יחיד, ו-2 הוא חדר זוגי, מטיפוס שלם. • nightsReserved – מספר הלילות שהחדר מוזמן מעכשיו, מטיפוס שלם. אם nightsReserved שווה ל-0 (החדר פנוי), ואם הוא מעל ל-0 (החדר תפוס).
הנח שלכל תכונה במחלקה הוגדרו בשפת Java פעולות get ו-set ובשפת C# פעולות Get ו-Set.
א. כתוב פעולה income בשפת Java או Income בשפת C#, במחלקה Room, המחזירה את ההכנסה המתקבלת מהחדר. חישוב ההכנסה הוא מכפלת מספר הלילות המוזמנות במחיר החדר ללילה.
ב. במערכת המחשוב מוגדרת מחלקה נוספת – Hostel, אכסניה – שיש לה תכונה אחת: allRooms – מערך בגודל 200 מטיפוס Room (החדרים במערך אינם ממוינים לפי סדר כלשהו). הנח שהתאים במערך אינם null.
לפניך ממשק חלקי של המחלקה Hostel הכתוב בשפת Java ובשפת C#:
public int orderRoom(int type, int nights) — בשפת Java / public int OrderRoom(int type, int nights) — בשפת C# — הפעולה מוצאת את החדר הראשון במערך allRooms שעונה על התנאים האלה: פנוי ומן הסוג המבוקש. הפעולה מעדכנת בחדר את מספר הלילות המבוקש (nights), ומחזירה את מספר החדר שנמצא. אם אין במערך חדר פנוי מן הסוג המבוקש, הפעולה מחזירה 1-.
public int[] floorIncome() — בשפת Java / public int[] FloorIncome() — בשפת C# — הפעולה מחזירה מערך בגודל 3 שבו מופיעים סך כל סכומי ההכנסה מכל החדרים בכל אחת משלוש הקומות באכסניה: באינדקס 0 מופיע סכום ההכנסה מקומה 1, באינדקס 1 מקומה 2, ובאינדקס 2 מקומה 3.
(1) ממש את הפעולה orderRoom בשפת Java או OrderRoom בשפת C#, במחלקה Hostel. (2) ממש את הפעולה floorIncome בשפת Java או FloorIncome בשפת C#, במחלקה Hostel. חובה להשתמש בפעולה שכתבת בסעיף א.
כתוב פעולה income בשפת Java או Income בשפת C#, במחלקה Room, המחזירה את ההכנסה המתקבלת מהחדר (מספר הלילות המוזמנות כפול מחיר החדר ללילה).
public int income()
ממש את הפעולה orderRoom בשפת Java או OrderRoom בשפת C#, במחלקה Hostel: מוצאת את החדר הראשון הפנוי מן הסוג המבוקש, מעדכנת בו את מספר הלילות, ומחזירה את מספרו; אם אין כזה, מחזירה 1-.
public int orderRoom(int type, int nights)
ממש את הפעולה floorIncome בשפת Java או FloorIncome בשפת C#, במחלקה Hostel: מחזירה מערך בגודל 3 של סך ההכנסה מכל קומה. חובה להשתמש בפעולה שכתבת בסעיף א.
public int[] floorIncome()
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.