המחלקה MyTime מייצגת זמן, ולה שתי תכונות:
המחלקה MyTime מייצגת זמן, ולה שתי תכונות:
- myMinute – מספר שלם חיובי בין 0 ל-59 (כולל), המייצג דקה
- myHour – מספר שלם חיובי בין 7 ל-23 (כולל), המייצג שעה
הניחו שקיימות פעולות get/Get ו-set/Set עבור תכונות המחלקה, ופעולה בונה המקבלת ערכים עבור תכונות המחלקה.
לפניכם ממשק המחלקה (אפשר להשתמש בפעולות המחלקה בלי לממש אותן):
- before/Before(MyTime other): מחזירה true אם זמן העצם הנוכחי מוקדם מזמן העצם other, אחרת (הזמן שווה לו או מאוחר ממנו) מחזירה false.
- diff/Diff(MyTime other): מחזירה את ההפרש בדקות בערך מוחלט בין זמן העצם הנוכחי ובין זמן העצם other.
המחלקה Parking מציגה מידע על מכונית שחנתה בחניון, ולה שלוש תכונות:
- id – מספר לוחית רישוי של המכונית, מטיפוס מחרוזת
- in – זמן כניסת המכונית לחניון, מטיפוס MyTime
- out – זמן יציאת המכונית מן החניון, מטיפוס MyTime
הניחו שקיימות פעולות get/Get ו-set/Set עבור תכונות המחלקה, ושתכונות המחלקה אינן null.
נתון מערך חד-ממדי cars מטיפוס Parking המכיל מידע על כל המכוניות שחנו בחניון ביממה מסוימת (החניון נפתח ב-07:00 ונסגר ב-23:59). המערך אינו ממוין ואינו מכיל ערכי null.
כתבו פעולה חיצונית ששמה first בשפת Java או First בשפת C#, המקבלת את המערך cars, ומדפיסה את מספר לוחית הרישוי של המכונית שנכנסה ראשונה לחניון. הניחו שאין שתי מכוניות שנכנסו לחניון בדיוק באותו הזמן.
public static void first (Parking[] cars)
המחיר בחניון נקבע על פי משך החניה. בשעתיים הראשונות (120 דקות) החניה חינם והחל מהדקה ה-121 התעריף הוא שקל אחד לכל דקת חניה. כתבו פעולה פנימית במחלקה Parking ששמה total בשפת Java או Total בשפת C#, המחזירה את סך כל מספר הדקות שהמכונית חנתה בחניון.
public int total ()
כתבו פעולה חיצונית ששמה sumMoney בשפת Java או SumMoney בשפת C#, המקבלת את המערך cars, ומחזירה את הסכום הכולל ששילמו כל בעלי המכוניות. אפשר להשתמש בפעולה שכתבתם בסעיף ב(1).
public static int sumMoney (Parking[] cars)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.