אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — מבני נתונים (שאלון 899271)מבחן 2024 · קיץ מועד א · שאלה 12כל שאלות המבחן ←
תכנות מונחה עצמיםירושה

בחברה להשכרת כלי רכב "סעו לשלום" פותחה מערכת ממוחשבת עם המחלקות Contract (חוזה: שם לקוח, ימי השכרה, ק"מ שנסע), Vehicle (כלי רכב: מזהה, חוזה), ו-Car / Truck / Motorcycle שיורשות מ-Vehicle ומוסיפות בהתאמה: מספר מקומות ישיבה, משקל מקסימלי להעמסה, והאם אופנוע-שטח.

public Contract (String name, int days, int kilo)   // given, no need to implement
סעיף א(1)

סרטטו תרשים היררכייה המתאר את הקשר בין המחלקות של המערכת הממוחשבת. יש לסמן ירושה באמצעות החץ (חץ עם ראש משולש חלול) והכלה באמצעות הסימן (מעוין מלא).

סעיף א(2)

כתבו את כותרות המחלקות ואת התכונות שלהן. הניחו שהפעולות get ו-set קיימות בכל התכונות של המחלקות, ואין צורך לממש אותן.

סעיף ב(1)

נתונה הפעולה הבונה של המחלקה Contract: public Contract (String name, int days, int kilo) אין צורך לממש את הפעולה. (1) לפניכם כותרת הפעולה הבונה של המחלקה Vehicle. הפעולה מקבלת שם לקוח, מספר ימי השכרה, מספר קילומטרים שנסע הלקוח ומזהה כלי הרכב. ממשו את הפעולה הבונה.

public Vehicle (String name, int days, int kilo, String id)

סעיף ב(2)

(2) לפניכם כותרת הפעולה הבונה של המחלקה Car. הפעולה מקבלת שם לקוח, מספר ימי השכרה, מספר קילומטרים שנסע הלקוח, מזהה כלי הרכב ומספר מקומות ישיבה. ממשו את הפעולה הבונה.

public Car (String name, int days, int kilo, String id, int seats)

סעיף ג(1)

התעריף הבסיסי שהחברה גובה על השכרת כלי רכב – Vehicle הוא 60 שקלים ליום השכרה ו-2 שקלים לכל קילומטר של נסיעה. מחיר ההשכרה של מכונית (Car) הוא לפי התעריף הבסיסי. מחיר ההשכרה של משאית (Truck) הוא לפי התעריף הבסיסי ונוסף על כך סכום חד-פעמי של 500 שקלים. מחיר ההשכרה של אופנוע (Motorcycle) הוא מחצית מן התעריף הבסיסי. הפעולה payment מחזירה מספר ממשי השווה לסכום שהלקוח נדרש לשלם בעבור כל אחד מסוגי כלי הרכב שהחברה משכירה (בהתאם לעצם שזימן את הפעולה). (1) כתבו את הפעולה payment במחלקה Vehicle (כאמור לעיל, הסכום לתשלום הוא לפי התעריף הבסיסי).

public double payment ()

סעיף ג(2)

(2) הוסיפו את הפעולה payment במחלקה/ות האחרות כדי לבצע את הנדרש (רק במחלקות שיש בהן צורך), לפי העקרונות של תכנות מונחה עצמים. הערה: אין להשתמש בפעולה instanceOf ובפעולות של המחלקה Object ואין לשנות את תכונות המחלקות. פתרון הכולל שימושים כאלה לא יזוכה בנקודות.

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

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

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

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