אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2025 · קיץ מועד א · שאלה 4כל שאלות המבחן ←
תכנות מונחה עצמיםמחלקות ואובייקטים

החברה "סוד ההצלחה" החליטה שכל הישיבות והכנסים שלה יתקיימו באופן וירטואלי לחלוטין דרך מערכת מפגשים וירטואליים Boom שפיתחו מתכנתים שלה. במפגשי Boom ניתן לחלק משתתפים בין "חדרים" וירטואליים. לשם ניהול המפגשים הוירטואליים פותחו מחלקות Meeting, VRoom, Participant.

fieldDocHebrew:

  • כל משתתף (Participant) מאופיין על ידי שם (name) ומספר היחידה שבה הוא עובד (dep, מספר שלם בין 1 ל-10).
  • כל חדר (VRoom) מאופיין על ידי מספר חדר (num, מספר שלם וחיובי) ותור משתתפים (parts).
  • למחלקה Meeting תכונה אחת – רשימת חדרים וירטואליים מסוג VRoom (rooms - שרשרת חוליות מסוג Node<VRoom>).

language_variants: givenCode:

public class User {
 private String name;
 private int dep;
 public User(String n, int d){
  this.name = n;
  this.dep = d;
 }
} //set/get אפשר להניח שהוגדרו הפעולות

public class Meeting {
 private Node<VRoom> rooms;
 public Meeting() {
  this.rooms = null;
 }
}

public class Vroom {
 private int num;
 Queue<Participant> parts;
 public VRoom(int n){ ... }
}

typoNote: same VRoom/Vroom inconsistency preserved in the Java section as well.

סעיף א

כתבו במחלקה VRoom פעולה בונה מקבלת מספר חדר ובונה חדר ריק ממשתתפים.

סעיף ב

public void add(Participant p)

כתבו במחלקה VRoom פעולה add המקבלת משתתף ומוסיפה אותו לחדר.

סעיף ג

public void divide(int number)

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

סעיף ד

public void printMissingUnits()

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

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

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

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

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