בי מאסטר (Bmaster)מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
תפריט

חומרי לימוד

מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
חזרה למאגר2021 קיץ מועד א

מערכת ניהול אירועים - יומן

כולל סעיף סרטוט — בקרוב
שאלה קודמתשאלה הבאה
שאלה 16מבני נתונים2021 קיץ מועד א

מערכת ניהול אירועים - יומן

כדי לנהל את האירועים שלה בנתה חברת "המחר" את המחלקה Date — תאריך, שלה שלוש תכונות מטיפוס שלם: day — יום, month — חודש, year — שנה.

נוסף על כך, לצורך ניהול האירועים נבנתה המחלקה Event — אירוע. לחברה יש שלושה סוגי אירועים: פגישות, שיחות טלפון ומשימות. כדי לשמור את המידע שבכל סוג אירוע, בנתה החברה את המחלקות האלה: פגישה — Meeting, שיחת טלפון — PhoneCall, משימה — Task.

התכונות של המחלקות הן בהתאם לדרישות המידע שלפניכם:

המידע ששומרים על פגישה — Meeting:

  • date — מטיפוס Date
  • hour — שעת ההתחלה, מטיפוס שלם
  • arrNames — שמות המשתתפים בפגישה, במערך מטיפוס מחרוזת (גודל המערך הוא לפי מספר המשתתפים)
  • duration — משך הפגישה בדקות, מטיפוס שלם
  • location — מקום הפגישה, מטיפוס מחרוזת

המידע ששומרים על שיחת טלפון — PhoneCall:

  • date — מטיפוס Date
  • hour — שעת ההתחלה, מטיפוס שלם
  • phoneNumber — מספר הטלפון שמחייגים, מטיפוס מחרוזת
  • name — שם האדם שאליו מתקשרים, מטיפוס מחרוזת

המידע ששומרים על משימה — Task:

  • date — מטיפוס Date
  • hour — שעת ההתחלה, מטיפוס שלם
  • title — כותרת המשימה, מטיפוס מחרוזת

המידע ששומרים על אירוע — Event: אותן דרישות המידע המפורטות בסוגי האירועים שלעיל ושצריכות להישמר במחלקה Event בהתאם לעקרונות תכנות מונחה עצמים.

נוסף על המחלקות האמורות, נבנתה המחלקה Diary — יומן, השומרת עד 1,000 אירועים, Event, במערך arr בגודל 1,000 מטיפוס Event.

לפניכם תרשים חלקי של המחלקות (מתואר במלל):

  • המחלקה Diary מכילה (◆——) את Event.
  • המחלקות Meeting, PhoneCall ו-Task יורשות (◁———) מן המחלקה Event.
מחלקת DateDate
נתונה. מחזירה true אם התאריך הנוכחי זהה ל-other, אחרת מחזירה false. אפשר להשתמש בפעולה בלי לממש אותה.
Javapublic boolean same(Date other)
C#public bool Same(Date other)
מחלקת EventEvent
כותרת הפעולה הפנימית שיש לממש בסעיף ד.
Javapublic boolean match(String name)
C#public virtual bool Match(string name)

משימות

אמשימה אdiagram

העתיקו את התרשים החלקי של המחלקות והוסיפו לו את המחלקה Date. יש לסמן ירושה באמצעות החץ (◁———) והכלה באמצעות הסימן (◆——).

במשימה בcode

כתבו את כותרת המחלקה אירוע — Event — ואת התכונות שלה.

הניחו שבשאר המחלקות כתובות התכונות המתאימות, ושבכל המחלקות יש פעולות בונות ופעולות Get ו-Set.

גמשימה גcode

כתבו במחלקה Diary פעולה ששמה AllCalls — המקבלת עצם date מטיפוס Date, ומחזירה מערך מטיפוס PhoneCall בגודל 100, המכיל את כל שיחות הטלפון בתאריך date.

שימו לב:

  • הניחו שקיימת במחלקה Date הפעולה Same המתוארת בפירוט הפעולות.
  • הניחו שיש בדיוק 100 שיחות טלפון בתאריך date.
  • הניחו כי בעת הקריאה לפעולה זו, מערך האירועים arr במחלקה Diary מלא בעצמים (ללא null).
דמשימה דcode

לפניכם כותרת הפעולה הפנימית Match במחלקה Event (ראו פירוט הפעולות).

זימון הפעולה יחזיר true אם האירוע (Event) הוא פגישה (Meeting) שבה משתתף אדם ששמו זהה ל-name, או אם האירוע הוא שיחת טלפון (PhoneCall) עם אדם ששמו זהה ל-name, אחרת יוחזר false.

ממשו את הפעולה, והוסיפו פעולות למחלקות המתאימות כדי לבצע את הנדרש. ציינו בעבור כל פעולה באיזו מחלקה היא מוספת.

הערה: בסעיף זה אין להשתמש בפעולות is ו-as (ב-Java: instanceof) ובפעולות של המחלקה Object.

שאלה 16מבני נתונים2021 קיץ מועד א

מערכת ניהול אירועים - יומן

כדי לנהל את האירועים שלה בנתה חברת "המחר" את המחלקה Date — תאריך, שלה שלוש תכונות מטיפוס שלם: day — יום, month — חודש, year — שנה.

נוסף על כך, לצורך ניהול האירועים נבנתה המחלקה Event — אירוע. לחברה יש שלושה סוגי אירועים: פגישות, שיחות טלפון ומשימות. כדי לשמור את המידע שבכל סוג אירוע, בנתה החברה את המחלקות האלה: פגישה — Meeting, שיחת טלפון — PhoneCall, משימה — Task.

התכונות של המחלקות הן בהתאם לדרישות המידע שלפניכם:

המידע ששומרים על פגישה — Meeting:

  • date — מטיפוס Date
  • hour — שעת ההתחלה, מטיפוס שלם
  • arrNames — שמות המשתתפים בפגישה, במערך מטיפוס מחרוזת (גודל המערך הוא לפי מספר המשתתפים)
  • duration — משך הפגישה בדקות, מטיפוס שלם
  • location — מקום הפגישה, מטיפוס מחרוזת

המידע ששומרים על שיחת טלפון — PhoneCall:

  • date — מטיפוס Date
  • hour — שעת ההתחלה, מטיפוס שלם
  • phoneNumber — מספר הטלפון שמחייגים, מטיפוס מחרוזת
  • name — שם האדם שאליו מתקשרים, מטיפוס מחרוזת

המידע ששומרים על משימה — Task:

  • date — מטיפוס Date
  • hour — שעת ההתחלה, מטיפוס שלם
  • title — כותרת המשימה, מטיפוס מחרוזת

המידע ששומרים על אירוע — Event: אותן דרישות המידע המפורטות בסוגי האירועים שלעיל ושצריכות להישמר במחלקה Event בהתאם לעקרונות תכנות מונחה עצמים.

נוסף על המחלקות האמורות, נבנתה המחלקה Diary — יומן, השומרת עד 1,000 אירועים, Event, במערך arr בגודל 1,000 מטיפוס Event.

לפניכם תרשים חלקי של המחלקות (מתואר במלל):

  • המחלקה Diary מכילה (◆——) את Event.
  • המחלקות Meeting, PhoneCall ו-Task יורשות (◁———) מן המחלקה Event.
מחלקת DateDate
נתונה. מחזירה true אם התאריך הנוכחי זהה ל-other, אחרת מחזירה false. אפשר להשתמש בפעולה בלי לממש אותה.
Javapublic boolean same(Date other)
C#public bool Same(Date other)
מחלקת EventEvent
כותרת הפעולה הפנימית שיש לממש בסעיף ד.
Javapublic boolean match(String name)
C#public virtual bool Match(string name)

משימות

אמשימה אdiagram

העתיקו את התרשים החלקי של המחלקות והוסיפו לו את המחלקה Date. יש לסמן ירושה באמצעות החץ (◁———) והכלה באמצעות הסימן (◆——).

במשימה בcode

כתבו את כותרת המחלקה אירוע — Event — ואת התכונות שלה.

הניחו שבשאר המחלקות כתובות התכונות המתאימות, ושבכל המחלקות יש פעולות בונות ופעולות Get ו-Set.

גמשימה גcode

כתבו במחלקה Diary פעולה ששמה AllCalls — המקבלת עצם date מטיפוס Date, ומחזירה מערך מטיפוס PhoneCall בגודל 100, המכיל את כל שיחות הטלפון בתאריך date.

שימו לב:

  • הניחו שקיימת במחלקה Date הפעולה Same המתוארת בפירוט הפעולות.
  • הניחו שיש בדיוק 100 שיחות טלפון בתאריך date.
  • הניחו כי בעת הקריאה לפעולה זו, מערך האירועים arr במחלקה Diary מלא בעצמים (ללא null).
דמשימה דcode

לפניכם כותרת הפעולה הפנימית Match במחלקה Event (ראו פירוט הפעולות).

זימון הפעולה יחזיר true אם האירוע (Event) הוא פגישה (Meeting) שבה משתתף אדם ששמו זהה ל-name, או אם האירוע הוא שיחת טלפון (PhoneCall) עם אדם ששמו זהה ל-name, אחרת יוחזר false.

ממשו את הפעולה, והוסיפו פעולות למחלקות המתאימות כדי לבצע את הנדרש. ציינו בעבור כל פעולה באיזו מחלקה היא מוספת.

הערה: בסעיף זה אין להשתמש בפעולות is ו-as (ב-Java: instanceof) ובפעולות של המחלקה Object.