ב"מכללת אלונים" לומדים חמישה ימים בשבוע. בכל יום לימודים מתקיימים עשרה שיעורים, ובכל שיעור לומדת בחדר קבוצת לימוד אחת. לכל קבוצת לימוד יש מספר ייחודי (מספר שלם חיובי).

לכל חדר קיימת מערכת שיעורים משלו: מערך דו-ממדי (arr) הכולל עבור כל יום וכל שיעור את מספר הקבוצה הלומדת בו (המספר 0 מציין שהחדר פנוי). גודל המערך 5X10. במכללה יש שלושה סוגים של חדרי לימוד: חדר רגיל, מעבדת מחשבים וחדרי מולטימדיה. צוות המכללה מעוניין לפתח פרויקט לשיבוץ חדרים. לשם כך נאסף מידע לגבי כל אחד מחדרי הלימוד:

עבור חדר לימוד רגיל (ClassRoom):

  • מספר החדר (roomNum)
  • מספר מקומות הישיבה בחדר (seats)
  • מערך של מערכת שיעורים (arr)

עבור מעבדת מחשבים (CompRoom):

  • מספר החדר (roomNum)
  • מספר מקומות הישיבה בחדר (seats)
  • מערך של מערכת שיעורים (arr)
  • מספר מחשבים (comps)

עבור חדר מולטימדיה (MediaRoom):

  • מספר החדר (roomNum)
  • מספר מקומות הישיבה בחדר (seats)
  • מערך של מערכת שיעורים (arr)
  • מספר מחשבים (comps)
  • מערך שמות של סוגי ציוד המצויים בחדר (equips)
(א)שרטטו תרשים UML המתאר את הקשר בין המחלקות MediaRoom, CompRoom ו-ClassRoom באופן המתאים ביותר לעקרונות של תכנות מונחה עצמים.
לכל אחת מהמחלקות ClassRoom, CompRoom, MediaRoom כתבו:
- כותרת המחלקה;
- תכונות;
- פעולה בונה – הפעולה הבונה של כל מחלקה מקבלת את כל הפרמטרים הנדרשים.

הערה: הניחו שהפעולות Get ו-Set מוגדרות עבור כל תכונה בכל אחת מהמחלקות. גם פעולות ToString() הוגדרו בכל אחת מהמחלקות.
(ב)- כתבו פעולה המקבלת מחרוזת המייצגת סוג ציוד ובודקת אם הציוד קיים בחדר. אם כן – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false. כותרת הפעולה:
`boolean isEquipmentExist(String eq)`
- כתבו פעולה המקבלת מספר המייצג יום בשבוע (מ-1 עבור יום ראשון ועד 5 עבור יום חמישי) ומספר שיעור לימוד (בין 1 ל-10). הפעולה תבדוק אם החדר פנוי בשיעור זה. אם כן – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false.
ניתן להניח כי הפרמטרים של הפעולה תקינים. כותרת הפעולה:
`boolean isFree(int day, int lesson)`

עבור כל פעולה יש לציין באיזו מחלקה צריך לממש את הפעולה.
(ג)הוגדרה המחלקה College לניהול חדרי לימוד במכללה. למחלקה תכונה אחת.
```java
public class College {
private ____________________ rooms;
}
```
- השלימו את החסר בהגדרת התכונה.
- כתבו במחלקה College פעולה המקבלת יום day ומספר שיעור lesson ומדפיסה את הפרטים של כל מעבדות מחשב הפנויות באותו היום ובאותו השיעור. כותרת הפעולה:
`void printFreeCompRooms(int day, int lesson)`
אפשר להניח שהפרמטרים תקינים.
- כתבו במחלקה College פעולה בשם collectEquipmentExist המקבלת מחרוזת המייצגת סוג ציוד ומחזירה את אוסף חדרי מולטימדיה שבהם קיים סוג הציוד הזה.
הערה:
אוסף יכול להיות מערך, תור, מחסנית או שרשרת חוליות. אם החלטתם להחזיר מערך, הוא צריך לכלול רק חדרים שבהם הציוד קיים, ללא מקומות ריקים.

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

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

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

רוצים לתרגל אלפי שאלות נוספות?

המשיכו לתרגול מלא עם משוב אישי ←

מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות

המשיכו לתרגול מלא ←