Finalisation du projet : Boucle principale
Fait partie de la section Object Oriented Programming du Journey C de Coddy — leçon 27 sur 61.
Défi
FacileFé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 opaqueAccountet tous les prototypes de fonctions :create_account,destroy_account,deposit,withdraw, etget_balance.account.c: Votre implémentation complète avec la structure cachée contenantidetbalance, 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 :
- Créer le compte et l'annoncer
- Afficher le solde de départ
- Effectuer le premier dépôt et afficher le nouveau solde
- Retirer des fonds et afficher le solde mis à jour
- Effectuer un autre dépôt et afficher le solde
- Tenter un retrait qui dépasse le solde — cela devrait échouer
- Afficher le solde final (inchangé après l'échec du retrait)
- 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 closedOù 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
1Bases de la programmation modulaire
Fichiers d'en-têteGardes d'inclusionFichiers sourcesFonctions statiquesRécapitulatif : Calculatrice modulaire4Encapsulation
Concept des pointeurs opaquesDéfinir des structures opaquesGetters et settersValidation dans les settersRécapitulatif : La boîte secrète2Objets et méthodes
Structs comme objetsLe pointeur 'Self'Rigueur du mot-clé constPointeur vs ValeurMéthodes utilitairesRécapitulatif : Point Manager5Projet : Compte bancaire simple
Configuration du projetImplémentation du compte8Polymorphisme
Pointeurs de fonctions dans les structuresSimulation de méthodesLe concept d'interfaceImplémentation d'interfacesItération polymorphiqueRécapitulatif : Greeter11Patrons de conception en C
Patron SingletonPatron FabriquePatron ItérateurRécapitulatif : Logger Factory3Cycle de vie des objets
Pattern de constructeurPattern de destructeurInitialisation sur la pileCopie profondeRécapitulatif : String Wrapper6Héritage par composition
Imbrication de structLa règle du premier membreAccès aux membres parentsUpcastingRécapitulatif : Hiérarchie des formes9Projet : Dessinateur de formes
Aperçu du projetImplémentation du cercle