Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

منطق الإيداع

جزء من قسم البرمجة كائنية التوجه في رحلة C على Coddy. الدرس 24 من 61.

challenge icon

التحدي

سهل

حان وقت إضافة أول عملية مصرفية حقيقية إلى وحدة Account لديك: إمكانية إيداع الأموال! تحتاج دالة deposit إلى أن تكون ذكية: يجب أن تقبل المبالغ الموجبة فقط، مما يحمي account من المعاملات غير الصالحة.

استنادًا إلى مشروع Bank Account الحالي لديك، ستوسّع الوحدة بإضافة وظيفة الإيداع. يجب أن تتحقق دالة deposit من الإدخال قبل تعديل الرصيد المخفي. هذا هو مبدأ التغليف وهو يعمل على حماية سلامة بياناتك.

ستعمل على ثلاثة ملفات:

  • account.h: وسّع الترويسة الحالية بإضافة نموذج أولي لدالة جديدة: deposit. يجب أن تأخذ هذه الدالة مؤشرًا إلى Account ومبلغًا من النوع double، وأن تُرجع قيمة من النوع int (‏1 عند النجاح، و‏0 إذا كان المبلغ غير صالح). احتفظ بتعريفاتك الحالية للدالتين create_account وdestroy_account.
  • account.c: نفّذ دالة deposit إلى جانب الباني ومُدمّر الكائن الحاليين. يجب أن تنجح عملية الإيداع فقط إذا كان المبلغ موجبًا (أكبر من الصفر). إذا كان صالحًا، أضف المبلغ إلى الرصيد المخفي وأرجع 1. وإذا كان المبلغ صفرًا أو سالبًا، فارفضه بإرجاع 0 من دون تغيير الرصيد.
  • main.c: اعرض وظيفة الإيداع من خلال إنشاء حساب وتنفيذ عمليات إيداع متعددة، بعضها صالح وبعضها غير صالح، لإظهار أن عملية التحقق تعمل بشكل صحيح.

ستتلقى ثلاثة مدخلات: معرّف account (عدد صحيح)، ومبلغ إيداع صالح (رقم موجب)، ومبلغ إيداع غير صالح (صفر أو رقم سالب).

في ملفك الرئيسي، أنشئ حسابًا باستخدام المعرّف المُعطى واطبع رسالة تأكيد. ثم حاول إيداع المبلغ غير الصالح أولًا: اطبع ما إذا كانت العملية قد نجحت، ولاحظ أن الرصيد يجب أن يبقى دون تغيير. بعد ذلك، أودِع المبلغ الصالح: اطبع نتيجة النجاح. وأخيرًا، دمّر الحساب وأكّد إتمام التنظيف.

اطبع الناتج بهذا التنسيق:

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

حيث إن 1001 هو معرّف account، و-50.00 هو المبلغ غير الصالح، و200.00 هو المبلغ الصالح. نسّق جميع المبالغ باستخدام منزلتين عشريتين عبر %.2f.

تعمل دالة deposit كحارس بوابة. فهي تضمن أن المعاملات الصالحة فقط يمكنها تعديل الرصيد المخفي للحساب. وعلى الرغم من أنك لا تستطيع رؤية الرصيد بعد (سنضيف دالة 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 عبر الإنترنت