Menu
Coddy logo textTech

Obtenir le solde

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

challenge icon

Défi

Facile

Votre compte bancaire est presque terminé ! Vous avez créé la possibilité de créer des comptes, de déposer des fonds et de retirer de l'argent, mais il manque encore un élément crucial. Pour le moment, le code externe n'a aucun moyen de voir le solde actuel. Corrigeons cela en ajoutant une fonction getter.

Un getter est la manière appropriée d'exposer des données cachées dans un module encapsulé. Au lieu de rendre le champ du solde public (ce qui romprait l'encapsulation), vous fournissez une fonction en lecture seule qui renvoie la valeur. Cela permet de protéger les données tout en autorisant un accès contrôlé.

Vous continuerez à travailler avec vos trois fichiers :

  • account.h : Ajoutez un nouveau prototype de fonction : get_balance. Cette fonction prend un const Account * (puisqu'elle lit uniquement les données et ne les modifie jamais) et renvoie un double représentant le solde actuel. Conservez toutes vos déclarations existantes.
  • account.c : Implémentez la fonction get_balance. Elle renvoie simplement le champ de solde caché du compte. Remarquez que cette fonction peut accéder aux données internes parce qu'elle est définie dans le même fichier que la structure : le code externe ne peut toujours pas y accéder directement.
  • main.c : Vous pouvez maintenant enfin voir ce qui se passe à l'intérieur de vos comptes ! Créez un compte, effectuez quelques transactions et utilisez votre nouveau getter pour afficher le solde à chaque étape.

Vous recevrez quatre entrées : l'ID du compte (un entier), un montant de dépôt, un montant de retrait et un second montant de dépôt.

Dans votre fichier main, créez un compte et affichez son solde initial (qui doit être de 0.00). Déposez le premier montant et affichez le nouveau solde. Retirez le montant indiqué et affichez à nouveau le solde. Enfin, effectuez le second dépôt et affichez le solde final. Détruisez ensuite le compte.

Affichez la sortie dans ce format :

Account 1001 created
Balance: 0.00
Balance: 500.00
Balance: 200.00
Balance: 350.00
Account destroyed

1001 est l'ID du compte, et où les soldes correspondent aux valeurs suivantes : initiale (0.00), après le dépôt de 500.00, après le retrait de 300.00 et après le dépôt supplémentaire de 150.00. Formatez toutes les valeurs de solde avec deux décimales à l'aide de %.2f.

Grâce à ce getter, votre module de compte bancaire fournit désormais un accès complet et contrôlé aux données du compte : les utilisateurs peuvent voir le solde, mais ne peuvent le modifier qu'au moyen de vos fonctions validées de dépôt et de retrait.

Essayez vous-même

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

int main() {
    int account_id;
    scanf("%d", &account_id);
    
    double deposit1;
    scanf("%lf", &deposit1);
    
    double withdraw_amount;
    scanf("%lf", &withdraw_amount);
    
    double deposit2;
    scanf("%lf", &deposit2);
    
    Account* account = create_account(account_id);
    printf("Account %d created\n", account_id);
    
    // TODO: Afficher le solde initial en utilisant get_balance
    
    deposit(account, deposit1);
    // TODO: Afficher le solde après le premier dépôt
    
    withdraw(account, withdraw_amount);
    // TODO: Afficher le solde après le retrait
    
    deposit(account, deposit2);
    // TODO: Afficher le solde après le second dépôt
    
    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