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

המחלקה "רכב חברה" (CompanyCar) ולה התכונות:

  • מספר הרישוי (licensePlate) – מחרוזת, string
  • היצרן (manufacturer) – מחרוזת, string
  • שם החברה שהרכב משויך אליה (company) – מחרוזת, string

המחלקה "מגבלת חברה" (CompanyLimit) ולה התכונות:

  • שם החברה (companyName) – מחרוזת, string
  • המגבלה המקסימלית (companyLimit) – מספר שלם, int

בכל מחלקה הוגדרה פעולה בונה המקבלת ערכים לכל התכונות והפעולות Get/Set ו-ToString.

(א)1. הגדירו מחלקה בשם "חניון חברות" (Parking) הכוללת את התכונות הבאות:
- מערך של רכבים (cars) – מערך של עצמים מסוג "רכב חברה" בגודל מקסימלי של 150.
- מערך של מקומות חניה (parkingSpots) – מערך של מחרוזות (string) באותו הגודל, המציין את מקום החניה של הרכב המתאים (לדוגמה: "Q21", "A4", "P10").
- מספר הרכבים הנוכחי בחניה (currentCars) – מספר שלם, int.
- מגבלות חניה (limits) – מערך של עצמים מסוג CompanyLimit, המכיל את המכסות לכל חברה.

2. כתבו במחלקה Parking פעולה בונה, המקבלת מערך limits מאותחל (עם החברות והמגבלות שלהן), ומייצרת חניון ללא רכבים, כלומר מאתחלת את מערכי הרכבים ומקומות החניה בגודל 150 ואת התכונה currentCars ל-0.
(ב)כתבו במחלקה "חניון חברות" פעולה המקבלת מקום בחניה (spot). הפעולה תבדוק אם מקום זה פנוי. אם כן – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false.
כותרת הפעולה:
`public bool CheckSpot(string spot)`
(ג)כתבו במחלקה "חניון חברות" פעולה המקבלת את פרטי הרכב ואת מקום החניה (spot) ומנסה לחנות אותו:
- אם החניה spot תפוסה על ידי רכב אחר, הפעולה תדפיס הודעה מתאימה ותחזיר false.
- אם החברה כבר ניצלה את המכסה שלה, הפעולה תדפיס הודעה מתאימה ותחזיר false.
- אם המכסה לא נוצלה במלואה, הפעולה תייצר רכב חדש (עצם מסוג CompanyCar) עם הפרטים שקיבלה, תוסיף את הרכב ותחזיר true.
כותרת הפעולה:
`public bool ParkCar(string license, string manufacturer, string company, string spot)`
אפשר להניח שיש מקומות פנויים בחניון, והרכב (עם מספר רישוי הנתון) כבר לא נמצא בחניון.

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

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

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

רוצים לתרגל אלפי שאלות נוספות?

המשיכו לתרגול מלא עם משוב אישי ←

מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות

המשיכו לתרגול מלא ←