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

חומרי לימוד

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

חברה להשכרת רכב — ירושה ופולימורפיזם

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

חברה להשכרת רכב — ירושה ופולימורפיזם

בחברה להשכרת כלי רכב "סעו לשלום" פותחה מערכת ממוחשבת שבה המחלקות: 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 (בוליאני — אמת אם האופנוע הוא אופנוע שטח, אחרת שקר).

התעריפים: התעריף הבסיסי שהחברה גובה על השכרת כלי רכב (Vehicle) הוא 60 שקלים ליום השכרה ו-2 שקלים לכל קילומטר של נסיעה.

  • מחיר ההשכרה של מכונית (Car) הוא לפי התעריף הבסיסי.
  • מחיר ההשכרה של משאית (Truck) הוא לפי התעריף הבסיסי, ונוסף על כך סכום חד-פעמי של 500 שקלים.
  • מחיר ההשכרה של אופנוע (Motorcycle) הוא מחצית מן התעריף הבסיסי.

משימות

אמשימה אdiagram

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

במשימה בcode

כתבו את כותרות המחלקות ואת התכונות שלהן. הניחו שהפעולות get ו-set (ב-C#: Get ו-Set) קיימות בכל התכונות של המחלקות, ואין צורך לממש אותן.

גמשימה גcode

נתונה הפעולה הבונה של המחלקה Contract (אין צורך לממש אותה):

java
1public Contract (String name, int days, int kilo)

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

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

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

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

(ב-C#: string במקום String.)

דמשימה דcode

הפעולה payment (ב-C#: Payment) מחזירה מספר ממשי השווה לסכום שהלקוח נדרש לשלם בעבור כל אחד מסוגי כלי הרכב שהחברה משכירה (בהתאם לעצם שזימן את הפעולה, ולפי התעריפים המפורטים בתיאור המערכת).

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

הערה: אין להשתמש בפעולה instanceOf בסעיף זה ובפעולות של המחלקה Object, ואין לשנות את תכונות המחלקות.

שאלה 12מבני נתונים2024 קיץ מועד א

חברה להשכרת רכב — ירושה ופולימורפיזם

בחברה להשכרת כלי רכב "סעו לשלום" פותחה מערכת ממוחשבת שבה המחלקות: 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 (בוליאני — אמת אם האופנוע הוא אופנוע שטח, אחרת שקר).

התעריפים: התעריף הבסיסי שהחברה גובה על השכרת כלי רכב (Vehicle) הוא 60 שקלים ליום השכרה ו-2 שקלים לכל קילומטר של נסיעה.

  • מחיר ההשכרה של מכונית (Car) הוא לפי התעריף הבסיסי.
  • מחיר ההשכרה של משאית (Truck) הוא לפי התעריף הבסיסי, ונוסף על כך סכום חד-פעמי של 500 שקלים.
  • מחיר ההשכרה של אופנוע (Motorcycle) הוא מחצית מן התעריף הבסיסי.

משימות

אמשימה אdiagram

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

במשימה בcode

כתבו את כותרות המחלקות ואת התכונות שלהן. הניחו שהפעולות get ו-set (ב-C#: Get ו-Set) קיימות בכל התכונות של המחלקות, ואין צורך לממש אותן.

גמשימה גcode

נתונה הפעולה הבונה של המחלקה Contract (אין צורך לממש אותה):

java
1public Contract (String name, int days, int kilo)

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

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

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

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

(ב-C#: string במקום String.)

דמשימה דcode

הפעולה payment (ב-C#: Payment) מחזירה מספר ממשי השווה לסכום שהלקוח נדרש לשלם בעבור כל אחד מסוגי כלי הרכב שהחברה משכירה (בהתאם לעצם שזימן את הפעולה, ולפי התעריפים המפורטים בתיאור המערכת).

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

הערה: אין להשתמש בפעולה instanceOf בסעיף זה ובפעולות של המחלקה Object, ואין לשנות את תכונות המחלקות.