Menu
Coddy logo textTech

Finalisation du projet : Boucle principale

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

challenge icon

Défi

Facile

Félicitations : vous avez créé une bibliothèque complète de comptes bancaires ! 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.

Imaginez un client qui entre dans une banque et effectue une série de transactions. Vous allez créer un compte, effectuer des dépôts et des retraits, vérifier le solde au passage, puis finalement clôturer le compte lorsque vous aurez terminé.

Vous allez travailler 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, ainsi que toutes les implémentations de fonctions que vous avez créées tout au long de ce projet.
  • main.c : c’est ici que vous allez montrer ce dont vous êtes capable ! Écrivez un programme qui présente le cycle de vie complet d’un compte bancaire au moyen d’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 doit é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 initial
  3. Effectuer le premier dépôt et afficher le nouveau solde
  4. Effectuer un retrait 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. Cette opération doit échouer
  7. Afficher le solde final (inchangé après le retrait échoué)
  8. Clôturer 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 correspondent à vos entrées. Formatez toutes les valeurs monétaires avec deux décimales à l’aide de %.2f. Le message de retrait échoué doit être affiché lorsque withdraw renvoie 0.

Cette conclusion démontre tout ce que vous avez appris sur l’encapsulation. Votre programme principal interagit avec Account uniquement par l’intermédiaire de son interface publique, sans jamais accéder 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 second dépôt, afficher "Deposited <amount>" et le nouveau solde

    // TODO: Attempt the overdraft withdrawal; if it fails, print "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 Programmation Orientée Objet

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