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