סיכום – מנהל חשבונות בנק
חלק מהיחידה תכנות מונחה עצמים במסלול ה-C# של Coddy. שיעור 18 מתוך 70.
אתגר
קלבואו נבנה מערכת מלאה לניהול חשבונות בנק, המשלבת את כל מה שלמדת על ארכיטקטורת מחלקות. תיצור מחלקה 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}
}
}
כל השיעורים ביחידה תכנות מונחה עצמים
1יסודות התכנות מונחה העצמים
קבצים חיצונייםמרחבי שמות והנחיותמבוא למחלקות ולאובייקטיםמילת המפתח 'this'מתודות ופרמטריםשדות לעומת מאפייניםבנאיםאתחול אובייקטיםסיכום – מחשבון פשוט4ירושה
תחביר ירושה בסיסית (:)מילת המפתח 'base'מילות המפתח Virtual ו-Overrideמחלקות Sealedמחלקת הבסיס 'object'סיכום – היררכיית עובדים7תכונות מתקדמות
העמסת אופרטוריםאינדקסרים (this[])דריסת ToString()מתודות הרחבהסיכום – רשימה מותאמת אישית2מאפיינים וחברים סטטיים
מאפיינים במימוש אוטומטימאפיינים לקריאה בלבד ולכתיבה בלבדשדות ומתודות סטטייםמחלקות סטטיותחברים עם גוף ביטוי5פולימורפיזם וממשקים
פולימורפיזם בזמן קומפילציה לעומת בזמן ריצהממשק לעומת מחלקה מופשטתממשקים מרוביםממשקים מפורשיםהמרה כלפי מעלה והמרה כלפי מטהחזרה: מחשבון צורות8מושגים מתקדמים בתכנות מונחה עצמים
קומפוזיציה במקום ירושהGenerics (מחלקות ומתודות)נציגים ואירועיםמאפיינים ורפלקציהIDisposable והצהרת usingיסודות הזרקת תלויות3ארכיטקטורת מחלקות
נתוני מופע לעומת נתונים סטטייםמילות המפתח 'readonly' ו-'const'שדות גיבויסיכום – מנהל חשבונות בנקתרגלו בעצמכם: קומפיילר C# אונליין