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

עיריית "נווה שלום" החליטה להקים מתחם קניות חדש ומודרני. המתחם יכלול חנויות, מסעדות, בתי קפה ובתי עסק אחרים. במתחם יש מקום ל-120 עסקים שונים.

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

למערכת שתי מחלקות:

המחלקה Business מייצגת עסק במתחם. למחלקה התכונות הבאות:

  • שם העסק – name, מטיפוס מחרוזת, string
  • סוג העסק – type, מטיפוס מחרוזת, string (סוג העסק: חנות, מסעדה, בית קפה וכו')
  • שטח העסק – area, מטיפוס מספר שלם, int
  • שם בעל העסק – owner, מטיפוס מחרוזת, string

המחלקה ShoppingCenter מייצגת מתחם קניות. למחלקה ארבע תכונות:

  • שם המתחם – name, מטיפוס מחרוזת, string
  • רשימת עסקים – busArr, מטיפוס מערך עצמים מסוג Business
  • שטח פנוי במתחם – freeArea, מסוג מספר שלם, int
  • מספר עסקים בפועל – current, מסוג מספר שלם, int

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

סעיף א

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

  • עבור מסעדה – 150 ש"ח למ"ר
  • עבור בית קפה – 120 ש"ח למ"ר
  • עבור חנות מוצרי מזון – 100 ש"ח למ"ר
  • עבור כל סוג עסק אחר – 80 ש"ח למ"ר

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

סעיף ב

כתבו במחלקה ShoppingCenter פעולה בונה המייצרת מתחם קניות ללא בתי העסק. כותרת הפעולה:

public ShoppingCenter(string name, int totalArea)
סעיף ג

בעל עסק שרוצה לקבל מקום במתחם מוסר להנהלת המתחם את פרטי העסק. הנהלת המתחם בודקת שיש שטח פנוי גדול מספיק לפתיחת העסק ושאין עוד עסק עם שם זהה. כתבו במחלקה ShoppingCenter פעולה המקבלת את פרטי העסק. הפעולה תבדוק אם אפשר לפתוח עסק במתחם. אם כן – הפעולה תוסיף את העסק לרשימת העסקים, תעדכן תכונות רלוונטיות ותחזיר ערך true. אם לא – הפעולה תחזיר ערך false. כותרת הפעולה:

public bool AddBusiness(string name, string type, int area,
                       string owner)

שימו לב: לא ניתן להוסיף עסק אם רשימת העסקים מלאה.

סעיף ד

כתבו פעולה המקבלת מערך שמות של בעלי עסקים owners ומדפיסה לכל בעל עסק את סך כל תשלומי הארנונה שעליו לשלם (עבור כל העסקים שבבעלותו). כותרת הפעולה:

public void PrintRent(string[] owner)
שאלות ותגובות על השאלה

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

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

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