Menu
Coddy logo textTech

Finalisation du projet : Boucle principale

Fait partie de la section Object Oriented Programming du Journey C de Coddy — leçon 27 sur 61.

challenge icon

Défi

Facile

Félicitations — vous avez construit une bibliothèque complète de compte bancaire ! Il est maintenant temps de changer de rôle. Au lieu d'être le créateur de la bibliothèque, vous allez devenir l'utilisateur de la bibliothèque. Votre tâche consiste à écrire un programme principal qui met votre module Account à l'épreuve.

Considérez cela comme un client entrant dans une banque et effectuant une série de transactions. Vous allez créer un compte, effectuer des dépôts et des retraits, vérifier le solde en cours de route, et enfin fermer le compte lorsque vous aurez terminé.

Vous travaillerez avec trois fichiers :

  • account.h : Votre fichier d'en-tête complet avec le type opaque Account et tous les prototypes de fonctions : create_account, destroy_account, deposit, withdraw, et get_balance.
  • account.c : Votre implémentation complète avec la structure cachée contenant id et balance, plus toutes les implémentations de fonctions que vous avez construites tout au long de ce projet.
  • main.c : C'est ici que vous intervenez ! Écrivez un programme qui démontre le cycle de vie complet d'un compte bancaire à travers une séquence réaliste de transactions.

Vous recevrez cinq entrées : l'ID du compte (un entier), un premier dépôt, un retrait, un deuxième dépôt, et une tentative de découvert (un retrait qui devrait échouer en raison de fonds insuffisants).

Votre programme principal doit raconter l'histoire de la vie de ce compte :

  1. Créer le compte et l'annoncer
  2. Afficher le solde de départ
  3. Effectuer le premier dépôt et afficher le nouveau solde
  4. Retirer des fonds et afficher le solde mis à jour
  5. Effectuer un autre dépôt et afficher le solde
  6. Tenter un retrait qui dépasse le solde — cela devrait échouer
  7. Afficher le solde final (inchangé après l'échec du retrait)
  8. Fermer le compte

Affichez la sortie dans ce format :

Account 2001 created
Balance: 0.00
Deposited 1000.00
Balance: 1000.00
Withdrew 250.00
Balance: 750.00
Deposited 500.00
Balance: 1250.00
Withdrawal failed: insufficient funds
Balance: 1250.00
Account 2001 closed

2001 est l'ID du compte, et les montants reflètent vos entrées. Formatez toutes les valeurs monétaires avec deux décimales en utilisant %.2f. Le message d'échec du retrait doit s'afficher lorsque withdraw renvoie 0.

Ce final démontre tout ce que vous avez appris sur l'encapsulation — votre programme principal interagit avec le Account uniquement via son interface publique, sans jamais toucher directement aux données internes cachées.

Essayez vous-même

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

int main() {
    // TODO: Lire account_id, deposit1, withdraw_amount, deposit2, et overdraft depuis l'entrée

    // TODO: Créer le compte et afficher "Account <id> created"

    // TODO: Afficher le solde initial

    // TODO: Effectuer le premier dépôt, afficher "Deposited <amount>" et le nouveau solde

    // TODO: Retirer des fonds, afficher "Withdrew <amount>" et le solde mis à jour

    // TODO: Effectuer le deuxième dépôt, afficher "Deposited <amount>" et le nouveau solde

    // TODO: Tenter le retrait à découvert ; s'il échoue, afficher "Withdrawal failed: insufficient funds"
    // TODO: Afficher le solde final

    // TODO: Afficher "Account <id> closed" et détruire le compte

    return 0;
}

Toutes les leçons de Object Oriented Programming