סיום הפרויקט: לולאה ראשית
חלק מהיחידה תכנות מונחה עצמים במסלול ה-C של Coddy. שיעור 27 מתוך 61.
אתגר
קלכל הכבוד: בנית ספריית חשבונות בנק שלמה! עכשיו הגיע הזמן להחליף תפקידים. במקום להיות יוצרי הספרייה, תהפכו למשתמשי הספרייה. המשימה שלכם היא לכתוב תוכנית ראשית שתעמיד את מודול Account במבחן.
חשבו על זה כלקוח שנכנס לבנק ומבצע סדרת פעולות. תיצרו חשבון, תפקידו ותמשכו כסף, תבדקו את היתרה לאורך הדרך, ולבסוף תסגרו את החשבון כשתסיימו.
תעבדו עם שלושה קבצים:
account.h: קובץ הכותרת המלא שלכם, עם הטיפוס האטוםAccountוכל אבות הטיפוס של הפונקציות:create_account,destroy_account,deposit,withdrawו-get_balance.account.c: המימוש המלא שלכם עם המבנה המוסתר שמכיל אתidואתbalance, וכן את כל מימושי הפונקציות שבניתם במהלך הפרויקט הזה.main.c: כאן תוכלו להצטיין! כתבו תוכנית שמדגימה את מחזור החיים המלא של חשבון בנק באמצעות רצף מציאותי של פעולות.
תקבלו חמש קלטים: מזהה החשבון (מספר שלם), ההפקדה הראשונה, משיכה, הפקדה שנייה וניסיון למשיכת יתר (משיכה שאמורה להיכשל בגלל חוסר ביתרה).
התוכנית הראשית שלכם צריכה לספר את סיפור חייו של החשבון הזה:
- צרו את החשבון והודיעו על כך
- הציגו את היתרה ההתחלתית
- בצעו את ההפקדה הראשונה והציגו את היתרה החדשה
- משכו כסף והציגו את היתרה המעודכנת
- בצעו הפקדה נוספת והציגו את היתרה
- נסו למשוך סכום שעולה על היתרה. הפעולה אמורה להיכשל
- הציגו את היתרה הסופית (שלא השתנתה לאחר שהמשיכה נכשלה)
- סגרו את החשבון
הדפיסו את הפלט בפורמט הזה:
Account 2001 created
Balance: 0.00
Deposited 1000.00
Balance: 1000.00
Withdrew 250.00
Balance: 750.00
Deposited 500.00
Balance: 1250.00
Withdrawal failed: insufficient funds
Balance: 1250.00
Account 2001 closedכאשר 2001 הוא מזהה החשבון, והסכומים משקפים את הקלטים שלכם. עצבו את כל הערכים הכספיים עם שתי ספרות אחרי הנקודה העשרונית באמצעות %.2f. יש להדפיס את הודעת המשיכה שנכשלה כאשר withdraw מחזירה 0.
סיום זה מדגים את כל מה שלמדתם על כימוס. התוכנית הראשית שלכם מתקשרת עם Account אך ורק דרך הממשק הציבורי שלו, ואינה נוגעת ישירות בנתונים הפנימיים המוסתרים.
נסו בעצמכם
#include <stdio.h>
#include "account.h"
int main() {
// TODO: קרא את account_id, deposit1, withdraw_amount, deposit2 ו-overdraft מהקלט
// TODO: צור את החשבון והדפס "Account <id> created"
// TODO: הדפס את היתרה ההתחלתית
// TODO: בצע את ההפקדה הראשונה, הדפס "Deposited <amount>" ואת היתרה החדשה
// TODO: משוך כספים, הדפס "Withdrew <amount>" ואת היתרה המעודכנת
// TODO: בצע את ההפקדה השנייה, הדפס "Deposited <amount>" ואת היתרה החדשה
// TODO: נסה לבצע משיכת יתר; אם הפעולה נכשלת, הדפס "Withdrawal failed: insufficient funds"
// TODO: הדפס את היתרה הסופית
// TODO: הדפס "Account <id> closed" והשמד את החשבון
return 0;
}
כל השיעורים ביחידה תכנות מונחה עצמים
4כימוס
המושג של מצביעים אטומיםהגדרת מבנים אטומיםפונקציות Get ו-Setאימות ב-Settersסיכום: הקופסה הסודית2אובייקטים ומתודות
מבנים כאובייקטיםמצביע 'Self'נכונות constמצביע לעומת ערךמתודות עזרחזרה: מנהל נקודות5פרויקט: חשבון בנק פשוט
הגדרת הפרויקטמימוש החשבוןתרגלו בעצמכם: קומפיילר C אונליין