Menu
Coddy logo textTech

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

חלק מהיחידה תכנות מונחה עצמים במסלול ה-C# של Coddy. שיעור 18 מתוך 70.

challenge icon

אתגר

קל

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

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

  • BankAccount.cs: הגדר מחלקה BankAccount במרחב השמות Banking. החשבון שלך צריך לכלול:
    • שדה const בשם MinimumBalance שמוגדר לערך 100 — יתרת המינימום שכל החשבונות חייבים לשמור
    • שדה static בשם InterestRate (מטיפוס decimal) שמתחיל בערך 0.03m — משותף לכל החשבונות
    • שדה static בשם TotalAccounts (מטיפוס int) שעוקב אחר מספר החשבונות הקיימים
    • שדה readonly בשם AccountNumber (מטיפוס string) — נקבע פעם אחת בזמן היצירה ולעולם לא משתנה
    • שדה פרטי _ownerName המשמש לאחסון הערך, עם מאפיין OwnerName שמסיר רווחים לבנים בעת קביעת הערך
    • שדה פרטי _balance המשמש לאחסון הערך, עם מאפיין Balance שמונע מהיתרה לרדת מתחת ל-MinimumBalance (אם מנסים לקבוע ערך נמוך יותר, השאר את היתרה על MinimumBalance)
    • בנאי שמקבל מספר חשבון, שם בעל החשבון ויתרה התחלתית, ומגדיל את TotalAccounts
    • מתודה סטטית SetInterestRate(decimal rate) לעדכון שיעור הריבית המשותף
    • מתודה CalculateInterest() שמחזירה את היתרה כפול שיעור הריבית
  • Program.cs: בקובץ הראשי שלך, צור שני חשבונות בנק באמצעות ערכי קלט, עדכן את שיעור הריבית והצג את פרטי החשבונות לצד הנתונים המשותפים של הבנק.

תקבל שבעה ערכי קלט:

  • מספר החשבון הראשון
  • שם בעל החשבון הראשון
  • היתרה ההתחלתית של החשבון הראשון
  • מספר החשבון השני
  • שם בעל החשבון השני
  • היתרה ההתחלתית של החשבון השני
  • שיעור ריבית חדש (כמספר עשרוני, למשל 0.05)

הדפס את הפלט בפורמט הבא:

--- Bank Summary ---
Interest Rate: {InterestRate}
Minimum Balance: {MinimumBalance}
Total Accounts: {TotalAccounts}

Account: {AccountNumber}
Owner: {OwnerName}
Balance: {Balance}
Interest Earned: {interest}

Account: {AccountNumber}
Owner: {OwnerName}
Balance: {Balance}
Interest Earned: {interest}

לדוגמה, אם ערכי הקלט הם ACC001, Alice Smith , 500, ACC002, Bob Jones, 50 ו-0.05, הפלט צריך להיות:

--- Bank Summary ---
Interest Rate: 0.05
Minimum Balance: 100
Total Accounts: 2

Account: ACC001
Owner: Alice Smith
Balance: 500
Interest Earned: 25.0

Account: ACC002
Owner: Bob Jones
Balance: 100
Interest Earned: 5.0

שים לב שהרווחים המיותרים בשם של Alice מוסרים, ושהיתרה של Bob, שהיא 50, עולה ליתרת המינימום 100. הריבית מחושבת לפי השיעור המעודכן 0.05, שנקבע לאחר יצירת החשבונות.

נסו בעצמכם

using System;
using Banking;

class Program
{
    public static void Main(string[] args)
    {
        // קרא את הקלט עבור החשבון הראשון
        string accountNumber1 = Console.ReadLine();
        string ownerName1 = Console.ReadLine();
        decimal balance1 = Convert.ToDecimal(Console.ReadLine());
        
        // קרא את הקלט עבור החשבון השני
        string accountNumber2 = Console.ReadLine();
        string ownerName2 = Console.ReadLine();
        decimal balance2 = Convert.ToDecimal(Console.ReadLine());
        
        // קרא את שיעור הריבית החדש
        decimal newRate = Convert.ToDecimal(Console.ReadLine());
        
        // TODO: צור שני אובייקטים מסוג BankAccount באמצעות ערכי הקלט
        
        // TODO: עדכן את שיעור הריבית באמצעות המתודה הסטטית
        
        // TODO: הדפס את סיכום הבנק בפורמט הנדרש
        // --- Bank Summary ---
        // Interest Rate: {InterestRate}
        // Minimum Balance: {MinimumBalance}
        // Total Accounts: {TotalAccounts}
        // (שורה ריקה)
        // חשבון: {AccountNumber}
        // בעלים: {OwnerName}
        // יתרה: {Balance}
        // Interest Earned: {interest}
        // (שורה ריקה)
        // חשבון: {AccountNumber}
        // בעלים: {OwnerName}
        // יתרה: {Balance}
        // Interest Earned: {interest}
    }
}

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

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