באכסניית הנוער "חלומות טובים" יש 3 קומות, 1-3. באכסניה 200 חדרים סך הכול. באכסניה שני סוגי חדרים: חדר זוגי וחדר יחיד. המחיר ללילה בחדר יחיד הוא 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) תיאור הפעולה: הפעולה מוצאת את החדר הראשון במערך allRooms שעונה על התנאים האלה: פנוי ומן הסוג type. הפעולה מעדכנת בחדר את מספר הלילות המבוקש המופיע במשתנה nights ומחזירה את מספר החדר. אם אין במערך חדר פנוי מן הסוג המבוקש, הפעולה מחזירה 1-.
כותרת הפעולה: public int [] floorIncome () תיאור הפעולה: הפעולה מחזירה מערך בגודל 3 שבו מופיעים סך כל סכומי ההכנסה מכל החדרים בכל אחת מן הקומות באכסניה. באינדקס 0 מופיע סכום ההכנסה מקומה 1. באינדקס 1 מופיע סכום ההכנסה מקומה 2. ובאינדקס 2 מופיע סכום ההכנסה מקומה 3.
ממש את הפעולה orderRoom בשפת Java או OrderRoom בשפת C# במחלקה Hostel.
ממש את הפעולה floorIncome בשפת Java או FloorIncome בשפת C# במחלקה Hostel.
באכסניית הנוער "חלומות טובים" יש 3 קומות, 1-3. באכסניה 200 חדרים סך הכול. באכסניה שני סוגי חדרים: חדר זוגי וחדר יחיד. המחיר ללילה בחדר יחיד הוא 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) תיאור הפעולה: הפעולה מוצאת את החדר הראשון במערך allRooms שעונה על התנאים האלה: פנוי ומן הסוג type. הפעולה מעדכנת בחדר את מספר הלילות המבוקש המופיע במשתנה nights ומחזירה את מספר החדר. אם אין במערך חדר פנוי מן הסוג המבוקש, הפעולה מחזירה 1-.
כותרת הפעולה: public int [] floorIncome () תיאור הפעולה: הפעולה מחזירה מערך בגודל 3 שבו מופיעים סך כל סכומי ההכנסה מכל החדרים בכל אחת מן הקומות באכסניה. באינדקס 0 מופיע סכום ההכנסה מקומה 1. באינדקס 1 מופיע סכום ההכנסה מקומה 2. ובאינדקס 2 מופיע סכום ההכנסה מקומה 3.
ממש את הפעולה orderRoom בשפת Java או OrderRoom בשפת C# במחלקה Hostel.
ממש את הפעולה floorIncome בשפת Java או FloorIncome בשפת C# במחלקה Hostel.