בחברה להשכרת כלי רכב "סעו לשלום" פותחה מערכת ממוחשבת שבה המחלקות האלה: Contract – חוזה, Vehicle – כלי רכב, Car – מכונית, Truck – משאית, Motorcycle – אופנוע.
בחברה להשכרת כלי רכב "סעו לשלום" פותחה מערכת ממוחשבת שבה המחלקות האלה: Contract – חוזה, Vehicle – כלי רכב, Car – מכונית, Truck – משאית, Motorcycle – אופנוע.
להלן פירוט תכונות המחלקות:
- למחלקה חוזה (Contract) שלוש תכונות: name – שם לקוח (מחרוזת), days – מספר ימי השכרה (מטיפוס שלם), kilo – מספר הקילומטרים שנסע הלקוח (מטיפוס שלם).
- למחלקה כלי רכב (Vehicle) שתי תכונות: id – מזהה כלי רכב (מחרוזת), contract – חוזה (Contract).
- למחלקה מכונית (Car) שלוש תכונות: id – מזהה כלי רכב (מחרוזת), contract – חוזה (Contract), seats – מספר מקומות ישיבה (מטיפוס שלם).
- למחלקה משאית (Truck) שלוש תכונות: id – מזהה כלי רכב (מחרוזת), contract – חוזה (Contract), max – משקל מקסימלי להעמסה (מטיפוס שלם).
- למחלקה אופנוע (Motorcycle) שלוש תכונות: id – מזהה כלי רכב (מחרוזת), contract – חוזה (Contract), offRoad – אופנוע שטח (בוליאני. אם האופנוע הוא אופנוע שטח התכונה היא אמת ואם לא, היא שקר).
public Contract (string name, int days, int kilo) // נתונה, אין צורך לממש
סרטטו תרשים היררכייה המתאר את הקשר בין המחלקות של המערכת הממוחשבת. יש לסמן ירושה באמצעות החץ (חץ עם ראש משולש חלול) והכלה באמצעות הסימן (מעוין מלא).
כתבו את כותרות המחלקות ואת התכונות שלהן. הניחו שהפעולות Get ו-Set קיימות בכל התכונות של המחלקות, ואין צורך לממש אותן.
נתונה הפעולה הבונה של המחלקה Contract: public Contract (string name, int days, int kilo) אין צורך לממש את הפעולה. (1) לפניכם כותרת הפעולה הבונה של המחלקה Vehicle. הפעולה מקבלת שם לקוח, מספר ימי השכרה, מספר קילומטרים שנסע הלקוח ומזהה כלי הרכב. ממשו את הפעולה הבונה.
public Vehicle (string name, int days, int kilo, string id)
(2) לפניכם כותרת הפעולה הבונה של המחלקה Car. הפעולה מקבלת שם לקוח, מספר ימי השכרה, מספר קילומטרים שנסע הלקוח, מזהה כלי הרכב ומספר מקומות ישיבה. ממשו את הפעולה הבונה.
public Car (string name, int days, int kilo, string id, int seats)
התעריף הבסיסי שהחברה גובה על השכרת כלי רכב – Vehicle הוא 60 שקלים ליום השכרה ו-2 שקלים לכל קילומטר של נסיעה. מחיר ההשכרה של מכונית (Car) הוא לפי התעריף הבסיסי. מחיר ההשכרה של משאית (Truck) הוא לפי התעריף הבסיסי ונוסף על כך סכום חד-פעמי של 500 שקלים. מחיר ההשכרה של אופנוע (Motorcycle) הוא מחצית מן התעריף הבסיסי. הפעולה Payment מחזירה מספר ממשי השווה לסכום שהלקוח נדרש לשלם בעבור כל אחד מסוגי כלי הרכב שהחברה משכירה (בהתאם לעצם שזימן את הפעולה). (1) כתבו את הפעולה Payment במחלקה Vehicle (כאמור לעיל, הסכום לתשלום הוא לפי התעריף הבסיסי).
public virtual double Payment ()
(2) הוסיפו את הפעולה Payment במחלקה/ות האחרות כדי לבצע את הנדרש (רק במחלקות שיש בהן צורך), לפי העקרונות של תכנות מונחה עצמים. הערה: אין להשתמש בפעולות is ו-as ובפעולות של המחלקה Object ואין לשנות את תכונות המחלקות. פתרון הכולל שימושים כאלה לא יזוכה בנקודות.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.