Menu
Coddy logo textTech

לוגיקת הפקדה

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

challenge icon

אתגר

קל

הגיע הזמן להוסיף את הפעולה הבנקאית האמיתית הראשונה למודול Account שלך: היכולת להפקיד כספים! פונקציית הפקדה צריכה להיות חכמה: עליה לקבל רק סכומים חיוביים, כדי להגן על החשבון שלך מפני עסקאות לא תקינות.

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

תעבוד עם שלושה קבצים:

  • account.h: הרחב את קובץ הכותרת הקיים שלך והוסף אבטיפוס של פונקציה חדשה: deposit. הפונקציה תקבל מצביע ל-Account וסכום מסוג double, ותחזיר int (1 במקרה של הצלחה, 0 אם הסכום אינו תקין). השאר את ההצהרות הקיימות שלך עבור create_account ו-destroy_account.
  • account.c: ממש את הפונקציה deposit לצד הבנאי וההורס הקיימים שלך. ההפקדה תצליח רק אם הסכום חיובי (גדול מאפס). אם הוא תקין, הוסף את הסכום ליתרה המוסתרת והחזר 1. אם הסכום הוא אפס או שלילי, דחה אותו על ידי החזרת 0, בלי לשנות את היתרה.
  • main.c: הדגם את פונקציונליות ההפקדה שלך על ידי יצירת חשבון וביצוע כמה פעולות הפקדה, חלקן תקינות וחלקן לא, כדי להראות שהאימות פועל כראוי.

תקבל שלושה קלטים: מזהה החשבון (מספר שלם), סכום הפקדה תקין (מספר חיובי) ו-סכום הפקדה לא תקין (אפס או מספר שלילי).

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

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

Account 1001 created
Deposit -50.00: 0
Deposit 200.00: 1
Account destroyed

כאשר 1001 הוא מזהה החשבון, -50.00 הוא הסכום הלא תקין, ו-200.00 הוא הסכום התקין. עצב את כל הסכומים עם שתי ספרות אחרי הנקודה העשרונית באמצעות %.2f.

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

נסו בעצמכם

#include <stdio.h>
#include "account.h"

int main() {
    int account_id;
    scanf("%d", &account_id);
    
    Account* account = create_account(account_id);
    printf("Account %d created\n", account_id);
    
    destroy_account(account);
    printf("Account destroyed\n");
    
    return 0;
}

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

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