כדי לנהל את האירועים שלה בנתה חברת "המחר" את המחלקה Date — תאריך, שלה שלוש תכונות מטיפוס שלם: day — יום, month — חודש, year — שנה.
נוסף על כך, לצורך ניהול האירועים נבנתה המחלקה Event — אירוע. לחברה יש שלושה סוגי אירועים: פגישות, שיחות טלפון ומשימות. כדי לשמור את המידע שבכל סוג אירוע, בנתה החברה את המחלקות האלה: פגישה — Meeting, שיחת טלפון — PhoneCall, משימה — Task.
התכונות של המחלקות הן בהתאם לדרישות המידע שלפניכם:
המידע ששומרים על פגישה — Meeting:
date — מטיפוס Datehour — שעת ההתחלה, מטיפוס שלםarrNames — שמות המשתתפים בפגישה, במערך מטיפוס מחרוזת (גודל המערך הוא לפי מספר המשתתפים)duration — משך הפגישה בדקות, מטיפוס שלםlocation — מקום הפגישה, מטיפוס מחרוזתהמידע ששומרים על שיחת טלפון — PhoneCall:
date — מטיפוס Datehour — שעת ההתחלה, מטיפוס שלםphoneNumber — מספר הטלפון שמחייגים, מטיפוס מחרוזתname — שם האדם שאליו מתקשרים, מטיפוס מחרוזתהמידע ששומרים על משימה — Task:
date — מטיפוס Datehour — שעת ההתחלה, מטיפוס שלםtitle — כותרת המשימה, מטיפוס מחרוזתהמידע ששומרים על אירוע — Event: אותן דרישות המידע המפורטות בסוגי האירועים שלעיל ושצריכות להישמר במחלקה Event בהתאם לעקרונות תכנות מונחה עצמים.
נוסף על המחלקות האמורות, נבנתה המחלקה Diary — יומן, השומרת עד 1,000 אירועים, Event, במערך arr בגודל 1,000 מטיפוס Event.
לפניכם תרשים חלקי של המחלקות (מתואר במלל):
Diary מכילה (◆——) את Event.Meeting, PhoneCall ו-Task יורשות (◁———) מן המחלקה Event.Datepublic boolean same(Date other)public bool Same(Date other)Eventpublic boolean match(String name)public virtual bool Match(string name)העתיקו את התרשים החלקי של המחלקות והוסיפו לו את המחלקה Date. יש לסמן ירושה באמצעות החץ (◁———) והכלה באמצעות הסימן (◆——).
כתבו את כותרת המחלקה אירוע — Event — ואת התכונות שלה.
הניחו שבשאר המחלקות כתובות התכונות המתאימות, ושבכל המחלקות יש פעולות בונות ופעולות Get ו-Set.
כתבו במחלקה Diary פעולה ששמה AllCalls — המקבלת עצם date מטיפוס Date, ומחזירה מערך מטיפוס PhoneCall בגודל 100, המכיל את כל שיחות הטלפון בתאריך date.
שימו לב:
Date הפעולה Same המתוארת בפירוט הפעולות.date.arr במחלקה Diary מלא בעצמים (ללא null).לפניכם כותרת הפעולה הפנימית Match במחלקה Event (ראו פירוט הפעולות).
זימון הפעולה יחזיר true אם האירוע (Event) הוא פגישה (Meeting) שבה משתתף אדם ששמו זהה ל-name, או אם האירוע הוא שיחת טלפון (PhoneCall) עם אדם ששמו זהה ל-name, אחרת יוחזר false.
ממשו את הפעולה, והוסיפו פעולות למחלקות המתאימות כדי לבצע את הנדרש. ציינו בעבור כל פעולה באיזו מחלקה היא מוספת.
הערה: בסעיף זה אין להשתמש בפעולות is ו-as (ב-Java: instanceof) ובפעולות של המחלקה Object.
כדי לנהל את האירועים שלה בנתה חברת "המחר" את המחלקה Date — תאריך, שלה שלוש תכונות מטיפוס שלם: day — יום, month — חודש, year — שנה.
נוסף על כך, לצורך ניהול האירועים נבנתה המחלקה Event — אירוע. לחברה יש שלושה סוגי אירועים: פגישות, שיחות טלפון ומשימות. כדי לשמור את המידע שבכל סוג אירוע, בנתה החברה את המחלקות האלה: פגישה — Meeting, שיחת טלפון — PhoneCall, משימה — Task.
התכונות של המחלקות הן בהתאם לדרישות המידע שלפניכם:
המידע ששומרים על פגישה — Meeting:
date — מטיפוס Datehour — שעת ההתחלה, מטיפוס שלםarrNames — שמות המשתתפים בפגישה, במערך מטיפוס מחרוזת (גודל המערך הוא לפי מספר המשתתפים)duration — משך הפגישה בדקות, מטיפוס שלםlocation — מקום הפגישה, מטיפוס מחרוזתהמידע ששומרים על שיחת טלפון — PhoneCall:
date — מטיפוס Datehour — שעת ההתחלה, מטיפוס שלםphoneNumber — מספר הטלפון שמחייגים, מטיפוס מחרוזתname — שם האדם שאליו מתקשרים, מטיפוס מחרוזתהמידע ששומרים על משימה — Task:
date — מטיפוס Datehour — שעת ההתחלה, מטיפוס שלםtitle — כותרת המשימה, מטיפוס מחרוזתהמידע ששומרים על אירוע — Event: אותן דרישות המידע המפורטות בסוגי האירועים שלעיל ושצריכות להישמר במחלקה Event בהתאם לעקרונות תכנות מונחה עצמים.
נוסף על המחלקות האמורות, נבנתה המחלקה Diary — יומן, השומרת עד 1,000 אירועים, Event, במערך arr בגודל 1,000 מטיפוס Event.
לפניכם תרשים חלקי של המחלקות (מתואר במלל):
Diary מכילה (◆——) את Event.Meeting, PhoneCall ו-Task יורשות (◁———) מן המחלקה Event.Datepublic boolean same(Date other)public bool Same(Date other)Eventpublic boolean match(String name)public virtual bool Match(string name)העתיקו את התרשים החלקי של המחלקות והוסיפו לו את המחלקה Date. יש לסמן ירושה באמצעות החץ (◁———) והכלה באמצעות הסימן (◆——).
כתבו את כותרת המחלקה אירוע — Event — ואת התכונות שלה.
הניחו שבשאר המחלקות כתובות התכונות המתאימות, ושבכל המחלקות יש פעולות בונות ופעולות Get ו-Set.
כתבו במחלקה Diary פעולה ששמה AllCalls — המקבלת עצם date מטיפוס Date, ומחזירה מערך מטיפוס PhoneCall בגודל 100, המכיל את כל שיחות הטלפון בתאריך date.
שימו לב:
Date הפעולה Same המתוארת בפירוט הפעולות.date.arr במחלקה Diary מלא בעצמים (ללא null).לפניכם כותרת הפעולה הפנימית Match במחלקה Event (ראו פירוט הפעולות).
זימון הפעולה יחזיר true אם האירוע (Event) הוא פגישה (Meeting) שבה משתתף אדם ששמו זהה ל-name, או אם האירוע הוא שיחת טלפון (PhoneCall) עם אדם ששמו זהה ל-name, אחרת יוחזר false.
ממשו את הפעולה, והוסיפו פעולות למחלקות המתאימות כדי לבצע את הנדרש. ציינו בעבור כל פעולה באיזו מחלקה היא מוספת.
הערה: בסעיף זה אין להשתמש בפעולות is ו-as (ב-Java: instanceof) ובפעולות של המחלקה Object.