מערכת הניהול של תהליך הרישום לכנס מדעי כוללת את שתי המחלקות הבאות: המחלקה "מושב" (Session) והמחלקה "ניהול כנס" (ConferenceManager).
מערכת הניהול של תהליך הרישום לכנס מדעי כוללת את שתי המחלקות הבאות: המחלקה "מושב" (Session) והמחלקה "ניהול כנס" (ConferenceManager).
למחלקה "מושב" (Session) התכונות הבאות:
- שם המושב – nameSession
- תור שמות המשתתפים – participants
- קיבולת מקסימלית – maxCapacity
- מספר המשתתפים בפועל – numParticipants
- סימן אם המושב הוא "קריטי" – isCritical. המושב הוא קריטי, אם נשארו פחות מחמישה מקומות פנויים.
למחלקה "ניהול כנס" ConferenceManager שתי תכונות: שם הכנס ורשימת מושבים:
public class ConferenceManager
{
private String nameConference;
private Node<Session> sessions;
}
אפשר להניח שבשתי המחלקות הוגדרו פעולות Get לכל התכונות.
כתבו במחלקה Session פעולה בונה המקבלת את שם המושב ואת הקיבולת המקסימלית. הפעולה מאתחלת מושב ללא משתתפים:
public Session (String nameSession, int maxCapacity)
ניתן להוסיף משתתף למושב רק אם יש מקום פנוי והמשתתף עדיין לא קיים ברשימת המשתתפים הרשומים במושב זה. כתבו במחלקה Session פעולה המקבלת שם משתתף ומנסה לרשום אותו למושב. אם הרישום אפשרי, הפעולה תוסיף את שם המשתתף לסוף התור, תעדכן את התכונות הרלוונטיות ותחזיר ערך true. אם הרישום אינו אפשרי, הפעולה תדפיס הודעה מתאימה ותחזיר ערך false. כותרת הפעולה:
public boolean registerParticipant(String name)
עקב ביקוש רב, הוחלט להחמיר את כללי הרישום למושבים "קריטיים": משתתף יכול להירשם למושב קריטי רק אם הוא אינו רשום בשום מושב קריטי אחר. כתבו במחלקה ConferenceManager פעולה המקבלת שם משתתף ושם מושב. הפעולה תבדוק אם ניתן לרשום את המשתתף למושב. אם כן – הפעולה תבצע רישום ותחזיר ערך true. אם אין מושב רצוי או שהרישום אינו אפשרי, הפעולה תדפיס הודעה מתאימה ותחזיר ערך false. כותרת הפעולה:
public boolean tryRegister(String nameSession, String name)
חובה להשתמש בפעולה registerParticipant.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.