באקדמיה למוזיקה "שיר חדש" פותחה מערכת ממוחשבת ובה המחלקות האלה:
Instrum – כלי נגינה, Bow – כלי קשת, Wind – כלי נשיפה, Perc – כלי הקשה, Musician – נגן בתזמורת, Orchestra – תזמורת.
להלן פירוט תכונות המחלקות:
למחלקה Instrum (כלי נגינה) שתי תכונות: name – שם הכלי (מטיפוס מחרוזת), material – החומר שממנו עשוי הכלי (מטיפוס מחרוזת).
למחלקה Bow (כלי קשת) שלוש תכונות: name – שם הכלי (מטיפוס מחרוזת), material – החומר שממנו עשוי הכלי (מטיפוס מחרוזת), bowLength – אורך הקשת (מטיפוס שלם).
למחלקה Wind (כלי נשיפה) שלוש תכונות: name – שם הכלי (מטיפוס מחרוזת), material – החומר שממנו עשוי הכלי (מטיפוס מחרוזת), numberOfValves – מספר השסתומים בכלי (מטיפוס שלם).
למחלקה Perc (כלי הקשה) שלוש תכונות: name – שם הכלי (מטיפוס מחרוזת), material – החומר שממנו עשוי הכלי (מטיפוס מחרוזת), hasSticks – האם יש שימוש במקלות הקשה (מטיפוס בוליאני. אם יש שימוש במקלות – true, ואם לא – false).
למחלקה Musician (נגן בתזמורת) שתי תכונות: name – שם הנגן (מטיפוס מחרוזת), instrum – כלי הנגינה שלו (מטיפוס Instrum). כל נגן מנגן על כלי אחד בלבד.
למחלקה Orchestra (תזמורת) שתי תכונות: arrM – מערך של נגנים (מטיפוס Musician), count – כמות הנגנים השמורים במערך (מטיפוס שלם).
הנגנים מופיעים ברצף מתחילת המערך ללא null ביניהם, אך ייתכן שהמערך אינו מלא עד הסוף.
סרטטו תרשים היירכייה בין כל המחלקות. יש לסמן ירושה באמצעות החץ ◁—— (ראש משולש חלול), והכלה באמצעות הסימן ◆—— (מעוין מלא).
כתבו את כותרות המחלקות ואת התכונות שלהן. הניחו שבכל מחלקה הוגדרו פעולות get ו-set וכן פעולות בונות.
כתבו במחלקה Orchestra פעולה ששמה withSticks, המחזירה את מספר הנגנים בתזמורת המנגנים בכלי הקשה שיש בהם שימוש במקלות.
public int withSticks ()
מערך arrM "מסודר" הוא מערך שבו מופיעים קודם נגני כלי הקשת, אחר כך נגני כלי הנשיפה, ואחר כך נגני כלי ההקשה. כתבו במחלקה Orchestra פעולה ששמה insert, המקבלת נגן – musician שאינו מופיע במערך arrM. הניחו שלפני תחילת הפעולה המערך "מסודר", ושיש בתזמורת לפחות נגן אחד בכל סוג של כלי. אם אין מקום לנגן נוסף במערך, הפעולה תחזיר false. אחרת, הפעולה תכניס את הנגן למערך במקום המתאים באופן שבו המערך ימשיך להיות "מסודר" (והנגנים יופיעו ברצף בתחילת המערך), ותחזיר true. הערה: אפשר לשנות את סדר הנגנים, ובלבד שהמערך יהיה "מסודר" בסוף הפעולה.
public boolean insert (Musician musician)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.