Menu
Coddy logo textTech

Logique de dépôt

Fait partie de la section Object Oriented Programming 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 des montants positifs, protégeant ainsi 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 travaille pour protéger 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 prendre un pointeur Account et un montant de type double, en retournant un int (1 pour le 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 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, rejetez-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, d'autres invalides — pour montrer que votre validation fonctionne correctement.

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

Dans votre fichier principal, créez un compte avec l'ID donné et affichez une confirmation. Tentez ensuite de déposer le montant invalide en premier — affichez s'il a réussi et notez que le solde doit rester inchangé. Ensuite, déposez le montant valide — affichez le résultat de succès. 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'ID du compte, -50.00 est le montant invalide et 200.00 est le montant valide. Formatez tous les montants avec deux décimales en utilisant %.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 sûr que les dépôts invalides sont correctement rejeté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 Object Oriented Programming