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

החברה "Rent4Me" עוסקת בהשכרת רכב ללקוחות פרטיים. לצורך מחשוב הוגדרו המחלקות Date, Car, Rent. המחלקה Date מייצגת תאריך לפי יום, חודש ושנה, ומכילה בין היתר את הפעולה difference(other) — מחשבת ומחזירה את ההפרש בימים בין this ל-other (Date נתונה ואפשר להשתמש בפעולותיה, אין צורך לממש). המחלקה Car מייצגת מכונית: id (מחרוזת, מספר רישוי), type (char, דירוג A/B/C/D), brand (מחרוזת, יצרן), isManual (boolean — true=ידנית, false=אוטומטית). במחלקה Car הוגדרו בנאי, get/set ו-toString (אין צורך לממש).

סעיף א

כתבו במחלקה Car פעולה better המקבלת כפרמטר מכונית אחרת ומחזירה true אם המכונית שעליה מופעלת הפעולה "טובה" יותר מאשר המכונית האחרת, ואם לא – הפעולה תחזיר false. מכונית תיחשב לטובה יותר ממכונית אחרת אם הדירוג שלה גבוה יותר (לדוגמה, דירוג B גבוה יותר מדירוג A). אם לשתיהן אותו הדירוג, אז מכונית אוטומטית תיחשב טובה יותר מידנית.

public boolean better(Car other)

סעיף ב

המחלקה Rent מייצגת השכרה של רכב: name (מחרוזת, שם לקוח), car (Car, המכונית המושכרת), pickDate (Date, תאריך קבלה), returnDate (Date, תאריך החזרה). במחלקה Rent הוגדרו בנאי, get/set ו-toString (אין צורך לממש). לכל אחת מדרגות הרכב מוגדר מחיר ליום: דרגה A – 100₪, דרגה B – 150₪, דרגה C – 180₪, דרגה D – 240₪. כתבו במחלקה Rent את הפעולה getPrice המחשבת את המחיר הכולל של תקופת ההשכרה (ימי ההשכרה = pickDate.difference(returnDate), מוכפל במחיר היומי של דירוג הרכב המושכר).

public int getPrice()

סעיף ג

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

public static void clientsReport(Rent[] rents, String[] names)

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

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

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

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