בחברת התקשורת "אוזניים לעתיד" יש 4 סוגי עובדים: עובד רגיל — Employee, חבר ועד — UnionMember, טכנאי — Technician, אחראי פרויקט — Supervisor. כל עובד שייך לסוג אחד בלבד. ההחלטות מתקבלות באמצעות הצבעת כל עובדי החברה, שההשפעה של כל עובד בה נמדדת על-פי מספר נקודות שיש לו, לפי סוגו:
בחברת התקשורת "אוזניים לעתיד" יש 4 סוגי עובדים: עובד רגיל — Employee, חבר ועד — UnionMember, טכנאי — Technician, אחראי פרויקט — Supervisor. כל עובד שייך לסוג אחד בלבד. ההחלטות מתקבלות באמצעות הצבעת כל עובדי החברה, שההשפעה של כל עובד בה נמדדת על-פי מספר נקודות שיש לו, לפי סוגו:
- עובד רגיל: מקבל 4 נקודות עבור היותו עובד בחברה, ונוסף על כך מקבל עוד נקודה עבור כל שנת ותק שיש לו בחברה. (דוגמה: 5 שנות ותק → 4+5=9 נקודות.)
- חבר ועד: מקבל פי 2 ממספר הנקודות שעובד רגיל מקבל, ונוסף על כך מקבל 2 נקודות עבור כל שנה שהוא חבר בוועד. (דוגמה: 5 שנות ותק, 3 שנות חברות בוועד → 29+23=24.)
- טכנאי: מקבל נקודות כמו עובד רגיל, ונוסף על כך מקבל נקודה עבור כל מחשב שבאחריותו. (דוגמה: 5 שנות ותק, 4 מחשבים → 9+4=13.)
- אחראי פרויקט: מקבל נקודות כמו עובד רגיל, ונוסף על כך מקבל מספר נקודות השווה לסך הנקודות של כל 15 העובדים שעליהם הוא אחראי. (דוגמה: 5 שנות ותק, סך נקודות ה-15 עובדים = 80 → 9+80=89.) הועלתה הצעה לשנות את שם החברה ל"תקשורת עתידית". עובדים רגילים וטכנאים תומכים בהצעה; חברי ועד ואחראי פרויקטים מתנגדים לה. ההצעה מתקבלת רק אם סך הנקודות בעד ההצעה גדול (ממש) מסך הנקודות נגדה.
סרטט תרשים היררכייה בין המחלקות בהתאם לתיאור. יש לסמן ירושה ממחלקה באמצעות החץ ← והכלה (קומפוזיציה) באמצעות הסימן ◆.
עבור כל אחת מן המחלקות Employee, UnionMember, Technician, Supervisor כתוב את התכונות שלה ואת הפעולה getScore() המחזירה את ניקודה, בהתאם לתיאור. הנחיה: אין צורך לכתוב פעולות get/set או פעולות בונה. הנחיה נוספת: הנתונים הקבועים של מספר הנקודות (למשל "4", "2") אינם חלק מתכונות המחלקה — יש להשתמש בהם רק בכתיבת הפעולה getScore().
public int GetScore () // בכל אחת מ-Employee, UnionMember, Technician, Supervisor
נתונה כותרת הפעולה המקבלת מערך של כל העובדים ומחזירה true אם ההצעה (שינוי שם החברה) מתקבלת, false אם לא: public static boolean isAccepted (Object[] arr). ממש את הפעולה — עובדים רגילים וטכנאים בעד; חברי ועד ואחראי פרויקטים נגד; ההצעה מתקבלת רק אם סך הנקודות בעד גדול ממש מסך הנקודות נגד.
public static bool IsAccepted (Object[] arr)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.