אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2025 · אביב מועד א · שאלה 11כל שאלות המבחן ←
תכנות מונחה עצמיםמחלקות ואובייקטים

המרכז הרפואי "כל הבריאות" מפעיל שירות של אישור תורים אוטומטי. המערכת מזכירה לכל אדם שקבע תור למכון כלשהו את פרטי התור ומקבלת ממנו אישור הגעה או ביטול התור. פרטי התור כוללים את שם המכון, תאריך התור, שעת התור. לכל לקוח מתקשרים פעם אחת בשבוע. על הלקוח לאשר את הגעתו באמצעות הקשה על הספרה 1, או לבטל את התור באמצעות הקשה על הספרה 2. אם אין מענה, הלקוח עובר לרשימת התזכורת של שבוע הבא. המערכת מחדשת את פרטי תזכורות התורים מדי שבוע.

המחלקה Reminder מייצגת תזכורת:

תכונות המחלקה:

  • private String cust; // שם הלקוח
  • private String tel; // טלפון הלקוח
  • private String inst; // שם המכון
  • private String date; // תאריך התור
  • private int hour; // שעת התור
  • private int status; // 0 – אין מענה, 1 – אישור, 2 – ביטול

במחלקה הוגדרו פעולה בונה המקבלת את השם ומספר הטלפון של הלקוח, שם המכון, התאריך והשעה של התור. סטטוס התזכורת מאותחל ב-0 (אין מענה). במחלקה הוגדרו הפעולות set/get לכל התכונות.

המחלקה DailyReminder מייצגת רשימת תזכורות ביום מסוים.

המחלקה WeeklyReminder מייצגת מערכת שבועית של תזכורות. במחלקה יש תכונה אחת – מערך של תזכורות בכל יום בשבוע (1–6). תא ה-0 מיועד לתזכורות שלא קיבלו מענה:

private DailyReminder [] arr = new DailyReminder[7];
סעיף א

כתבו את כותרת המחלקה DailyReminder ואת התכונות שלה. לייצוג אוסף (רשימה) אפשר להשתמש במחלקות Stack, Queue, Node. אפשר להוסיף תכונות נוספות. חובה לתעד את התכונות.

סעיף ב

כתבו במחלקה WeeklyReminder פעולה המקבלת את הפרטים של הלקוח ושל התור ואת יום התזכורת dayReminder (1–6) ומוסיפה את התזכורת לרשימת התזכורות המתאימה.

כותרת הפעולה:

public void addReminder(String cust, String tel, String inst,
                         String date, int hour, int dayReminder)
סעיף ג

כתבו במחלקה WeeklyReminder פעולה המקבלת את שם הלקוח cust, שם המכון inst, יום התזכורת dayReminder (1–6) וקוד אישור ההגעה answer (0/1/2). אם ערך קוד האישור הוא 1 או 2, הפעולה תעדכן את הסטטוס בהתאם. אם אין מענה, הפעולה תעביר את התזכורת לרשימת תזכורות בתא 0 כדי לטפל בה בשבוע הבא.

public void updateReminder(String cust, String inst,
                            int dayReminder, int answer)
סעיף ד

כתבו במחלקה WeeklyReminder פעולה המקבלת מערך מכונים של המרכז הרפואי "כל הבריאות". הפעולה תדפיס עבור כל מכון את פרטי התורים שהתפנו עקב ביטול מצד המטופל.

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי