Menu
Coddy logo textTech

Logique de dépôt

Fait partie de la section Programmation Orientée Objet du Journey C de Coddy. Leçon 24 sur 61.

challenge icon

Défi

Facile

Il est temps d’ajouter la première véritable opération bancaire à votre module Account : la possibilité de déposer des fonds ! Une fonction de dépôt doit être intelligente : elle ne doit accepter que les montants positifs, afin de protéger votre compte contre les transactions invalides.

En vous appuyant sur votre projet Bank Account existant, vous allez étendre le module avec une fonctionnalité de dépôt. Votre fonction de dépôt doit valider l’entrée avant de modifier le solde caché. C’est l’encapsulation qui protège l’intégrité de vos données.

Vous travaillerez avec trois fichiers :

  • account.h : étendez votre en-tête existant en ajoutant un nouveau prototype de fonction : deposit. Cette fonction doit recevoir un pointeur vers Account et un montant double, et retourner un int (1 en cas de succès, 0 si le montant est invalide). Conservez vos déclarations existantes pour create_account et destroy_account.
  • account.c : implémentez la fonction deposit aux côtés de votre constructeur et de votre destructeur existants. Le dépôt ne doit réussir que si le montant est positif (supérieur à zéro). S’il est valide, ajoutez le montant au solde caché et retournez 1. Si le montant est nul ou négatif, refusez-le en retournant 0 sans modifier le solde.
  • main.c : démontrez votre fonctionnalité de dépôt en créant un compte et en effectuant plusieurs opérations de dépôt, certaines valides et d’autres invalides, afin de montrer que votre validation fonctionne correctement.

Vous recevrez trois entrées : l’identifiant du compte (un entier), un montant de dépôt valide (un nombre positif) et un montant de dépôt invalide (nul ou négatif).

Dans votre fichier main, créez un compte avec l’identifiant donné et affichez une confirmation. Tentez ensuite d’abord de déposer le montant invalide : affichez si l’opération a réussi et indiquez que le solde doit rester inchangé. Déposez ensuite le montant valide : affichez le résultat de la réussite. Enfin, détruisez le compte et confirmez le nettoyage.

Affichez la sortie dans ce format :

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

1001 est l’identifiant du compte, -50.00 est le montant invalide et 200.00 est le montant valide. Formatez tous les montants avec deux décimales à l’aide de %.2f.

Votre fonction de dépôt agit comme un gardien. Elle garantit que seules les transactions valides peuvent modifier le solde caché du compte. Même si vous ne pouvez pas encore voir le solde (nous ajouterons un accesseur dans une leçon ultérieure), vous pouvez être certain que les dépôts invalides sont correctement refusés.

Essayez vous-même

#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;
}

Toutes les leçons de Programmation Orientée Objet

Entraînez-vous par vous-même : Compilateur C en ligne