Menu
Coddy logo textTech

סיכום – מנהל חשבונות בנק

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Dart של Coddy. שיעור 22 מתוך 110.

challenge icon

אתגר

קל

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

תארגן את הקוד שלך בשני קבצים:

  • bank_account.dart: הגדר מחלקה בשם BankAccount שמנהלת חשבונות בודדים ועוקבת אחר הסטטיסטיקות הכלליות של הבנק. המחלקה שלך צריכה לכלול:
    • final String accountNumber שלא ניתן לשנות לאחר יצירתו
    • String holderName עבור שם בעל החשבון
    • שדה פרטי מסוג double _balance שמתחיל ב-0.0
    • static int totalAccounts שמתחיל ב-0 ועוקב אחר מספר החשבונות הקיימים
    • static double totalDeposits שמתחיל ב-0.0 ועוקב אחר כל ההפקדות שבוצעו בבנק
    • בנאי שמקבל את accountNumber ואת holderName, ומגדיל את totalAccounts
    • getter בשם balance שמחזיר את היתרה הנוכחית
    • מתודה deposit(double amount) שמוסיפה ליתרה רק אם הסכום חיובי, וגם מוסיפה ל-totalDeposits כשההפקדה מצליחה
    • מתודה withdraw(double amount) שמחסירה מהיתרה רק אם הסכום חיובי ואינו עולה על היתרה הנוכחית
    • מתודה displayInfo() שמדפיסה את פרטי החשבון
    • מתודה סטטית getBankStats() שמחזירה מחרוזת עם הסטטיסטיקות הכלליות של הבנק
  • main.dart: ייבא את מחלקת חשבון הבנק שלך והדגם את פעולת המערכת:
    • צור חשבון עם המספר 'ACC001' עבור 'Alice'
    • צור חשבון עם המספר 'ACC002' עבור 'Bob'
    • הפקד 500.0 לחשבון של Alice
    • הפקד 300.0 לחשבון של Bob
    • משוך 150.0 מחשבון של Alice
    • נסה למשוך 1000.0 מחשבון של Bob (הפעולה אמורה להתעלם — אין מספיק כסף)
    • נסה להפקיד -50.0 לחשבון של Alice (הפעולה אמורה להתעלם — סכום שלילי)
    • קרא למתודה displayInfo() בחשבון של Alice, ולאחר מכן בחשבון של Bob
    • הדפס את הסטטיסטיקות של הבנק באמצעות BankAccount.getBankStats()

המתודה displayInfo() אמורה להדפיס בפורמט הזה:

Account [accountNumber] | Holder: [holderName] | Balance: $[balance]

המתודה getBankStats() אמורה להחזיר:

Bank Stats - Total Accounts: [totalAccounts] | Total Deposits: $[totalDeposits]

פלט צפוי:

Account ACC001 | Holder: Alice | Balance: $350.0
Account ACC002 | Holder: Bob | Balance: $300.0
Bank Stats - Total Accounts: 2 | Total Deposits: $800.0

נסו בעצמכם

import 'bank_account.dart';

void main() {
  // TODO: צרו חשבון עם המספר 'ACC001' עבור 'Alice'
  
  // TODO: צרו חשבון עם המספר 'ACC002' עבור 'Bob'
  
  // TODO: הפקידו 500.0 בחשבון של Alice
  
  // TODO: הפקידו 300.0 בחשבון של Bob
  
  // TODO: משכו 150.0 מהחשבון של Alice
  
  // TODO: נסו למשוך 1000.0 מהחשבון של Bob (יש להתעלם מהפעולה)
  
  // TODO: נסו להפקיד -50.0 בחשבון של Alice (יש להתעלם מהפעולה)
  
  // TODO: קראו ל-displayInfo() על החשבון של Alice
  
  // TODO: קראו ל-displayInfo() על החשבון של Bob
  
  // TODO: הדפיסו את נתוני הבנק באמצעות BankAccount.getBankStats()
}

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר Dart אונליין