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

מערכת מחשוב של בנק "SimpleBank" כוללת שתי מחלקות הבאות: Account ו-Branch.

למחלקה Account (חשבון) ארבע תכונות:

  • מספר חשבון – num, מטיפוס מספר שלם – int
  • תעודת הזהות של הלקוח – id, מטיפוס מחרוזת – String
  • יתרה בחשבון – balance, מטיפוס מספר ממשי – double
  • מצב חשבון – isActive, מטיפוס boolean (true – חשבון פעיל, ו-false – חשבון לא פעיל) בעת פתיחת חשבון לקוח מקבל מתנה ₪100 ליתרת חשבון.

למחלקה Branch (סניף) תכונות הבאות:

  • מספר סניף – branchNum, מטיפוס שלם – int
  • מערך חשבונות – accounts – מערך הפניות לעצמים מסוג Account
  • מספר חשבונות בפועל – current, מטיפוס מספר שלם – int

בעת פתיחת סניף חדש יש ליצור מערך בגודל maxAccount (מספר החשבונות המקסימלי בסניף המתקבל כפרמטר) ללא חשבונות בפועל.

סעיף א

כתבו במחלקות Account ו-Branch פעולות בונות (constructors):

public Account(int num, String id)
public Branch(int branchNum, int maxAccount)

בסעיפים הבאים אפשר להניח שקיימות פעולות get/set לכל התכונות בשתי המחלקות. במחלקה Branch קיימת פעולה פנימית ליצירת מספר חשבון, המבטיחה שמספר חשבון יהיה ייחודי בסניף. אפשר להשתמש בפעולה זו ולא צריך לממש אותה. כותרת הפעולה:

public int generateNum()
סעיף ב

כדי למשוך לקוחות חדשים החליטה הנהלת הבנק על מבצע הבא: כל לקוח חדש (זה שאין לו חשבון בסניף) מקבל מתנה של ₪500 בעת פתיחת חשבון (אם ללקוח יש כבר חשבון הוא מקבל מתנה "רגילה" של ₪100). כתבו במחלקה Branch פעולה להוספת חשבון חדש:

public void addAccount(String id)

אפשר להניח שבמערך יש מקום לחשבון חדש.

סעיף ג

כאשר לקוח רוצה לעבור מסניף br1 לסניף br2 כל החשבונות שלו בסניף br1 נסגרים (הופכים להיות "לא פעילים") ובסניף br2 נפתח חשבון חדש עם יתרה השווה לסכום היתרות שהיו לו בסניף הקודם. אין צורך במחיקה חשבונות שנסגרו. כתבו פעולה חיצונית המבצעת מעבר לקוח מסניף לסניף. כותרת הפעולה:

public static void moveClient(String id, Branch br1, Branch br2)

שימו לב: לקוח העובר מסניף לסניף הוא לא לקוח חדש ולא מגיעה לו מתנה (גם לא מתנה רגילה).

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

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

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

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