אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — יסודות (שאלון 899371)מבחן 2020 · קיץ מועד א · שאלה 3כל שאלות המבחן ←
תכנות מונחה עצמיםמחלקות ואובייקטים

באוכסניית הנוער "חלומות טובים" יש 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()

סעיף ב-1

ממש את הפעולה orderRoom בשפת Java או OrderRoom בשפת C#, במחלקה Hostel: מוצאת את החדר הראשון הפנוי מן הסוג המבוקש, מעדכנת בו את מספר הלילות, ומחזירה את מספרו; אם אין כזה, מחזירה 1-.

public int OrderRoom(int type, int nights)

סעיף ב-2

ממש את הפעולה floorIncome בשפת Java או FloorIncome בשפת C#, במחלקה Hostel: מחזירה מערך בגודל 3 של סך ההכנסה מכל קומה. חובה להשתמש בפעולה שכתבת בסעיף א.

public int[] FloorIncome()

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי