Menu
Coddy logo textTech

מימוש החשבון

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

challenge icon

אתגר

קל

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

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

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

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

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

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

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

Account 1001 created
Account destroyed

כאשר 1001 מוחלף במזהה שהתקבל בפועל כקלט.

זכור: קובץ main.c שלך לא יכול לגשת ישירות אל account->id או אל account->balance. האיברים האלה מוסתרים לחלוטין בתוך account.c. בשלב זה, פשוט תשתמש במזהה מהקלט בהודעת הפלט שלך. בשיעורים הבאים תוסיף פונקציות getter כדי לאחזר את הנתונים המוסתרים כראוי.

נסו בעצמכם

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

int main() {
    int account_id;
    // TODO: קראו את account_id מהקלט
    scanf("%d", &account_id);

    // TODO: צרו חשבון באמצעות create_account() והדפיסו "Account <id> created"

    // TODO: השמידו את החשבון באמצעות destroy_account() והדפיסו "Account destroyed"

    return 0;
}

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

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