בבית חולים מסוים פותח פרויקט לניהול הצוות הרפואי. לכל עובד (Employee) בבית החולים יש שם ומספר עובד. מספר העובד הוא מספר ייחודי הניתן באופן אוטומטי עם הוספת עובד חדש למאגר העובדים, כך שהעובד הראשון יקבל את המספר 1, העובד השני 2, וכך הלאה.
לאחות (Nurse) יש את התכונות:
- num – מספר עובד, מטיפוס שלם, int
- name – שם, מטיפוס מחרוזת, String
- type – סוג (מעשית, מוסמכת), מטיפוס מחרוזת, String
לרופא (Doctor) יש את התכונות:
- num – מספר עובד, מטיפוס שלם, int
- name – שם, מטיפוס מחרוזת, String
- specialization – התמחות (רופא לב, רופא מרדים, רופא מנתח וכו'), מטיפוס מחרוזת, String
ראש צוות (Supervisor) – ראש צוות הוא רופא שאחראי על צוות של עד עשרה רופאים ואחיות:
- arr – מערך של אנשי הצוות הכפופים לראש הצוות
- current – מספר אנשי הצוות בפועל, מטיפוס שלם, int
שרטטו תרשים UML המתאר את הקשר בין המחלקות Employee, Nurse, Doctor, Supervisor באופן המתאים ביותר לעקרונות של תכנות מונחה עצמים.
לכל אחת מהמחלקות Employee, Nurse, Doctor, Supervisor כתבו: כותרת המחלקה; תכונות; פעולה בונה — הפעולה הבונה של כל מחלקה מקבלת את כל הפרמטרים הנדרשים. הערה: יש לשים לב שמספר העובד הוא מספר ייחודי, שנוצר באופן אוטומטי, ואין להעבירו כפרמטר לפעולה בונה.
המחלקה AllEmployees מיועדת לנהל את כל העובדים בבית החולים. תכונות המחלקה: arr — מערך של כל אנשי הצוות (בבית חולים יכולים לעבוד לא יותר מ-200 אנשי צוות); current — מספר אנשי הצוות בפועל. כתבו את כותרת המחלקה ואת התכונות של המחלקה AllEmployees, והוסיפו את הפעולות הפנימיות הבאות: פעולה בשם numSupervisor המחזירה את מספר ראשי כל הצוותים; פעולה בשם getNewNurse המקבלת את סוג האחות ומחזירה את האחות מהסוג הנדרש שהצטרפה אחרונה למאגר העובדים (מספר העובד שלה מקסימלי); אם אין אחות מהסוג הנדרש, הפעולה תחזיר null. הערה: הניחו שהפעולות get ו-set מוגדרות בעבור כל תכונה בכל אחת מהמחלקות.
public int numSupervisor() public Nurse getNewNurse(String type)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.