Vous êtes sur la page 1sur 2

TP N° 1 (c) Classes et objets

Partie I :

Soit la structure Personne représentant une personne par son nom est son prénom.

struct Client{ char nom[20]; char prenom[20]; };

Créer une classe Compte qui modélise un compte en banque. Cette classe doit avoir les
informations suivantes : numéro du compte (de type long sachant que le premier objet compte
crée portera le numéro 1001, le suivant le numéro 1002, et ainsi de suite…), le solde du
compte (de type long) et le propriétaire du compte (de type Client). (NB : Utiliser une
donnée membre statique (compteurNumero de type long) pour initialiser les numéros des
comptes en la démarrant à partir de 1001 et l’incrémenter dans chaque création de compte).

Cette classe doit posséder les méthodes publiques suivantes :

- Compte() : constructeur par défaut initialisant les données d’un objet Compte à null.
- Compte(long som, Personne prop) : constructeur permettant de créer un
compte avec la somme som pour le propriétaire prop (le numéro de compte sera
initialiser à partir de la donnée membre statique compteurNumero incémenté à chaque
création de nouveau Compte).
- Les méthodes qui retournent respectivement le solde, le numéro du compte et le
propriétaire du compte : long avoirSolde(), long avoirNumero(), et
Personne avoirProprietaire().
- bool retirerTest(long som) : qui teste en retournant un booléen si c’est
possible de retirer la somme som du compte.
- Les méthodes void crediter(long som) et void debiter(long som) qui
permettent, respectivement, d’ajouter et retirer si possible une somme som du solde d’un
compte.
Ainsi, si C1 est un objet Compte et s1 et s2 deux somme entière, les instructions
C1.crediter(s1) ; et C1.debiter(s2) ; permettent respectivement
d’ajouter s1 au solde du compte C1 et retirer si possible s2 du compte C1.
COMMENT PEUT-ON MODIFIER CES DEUX METHODES AFIN D’ECRIRE :
C1.crediter(s1).debiter(s2).crediter(s2-s1);

1
- void afficher() pour afficher les informations d’un objet Compte comme suit :
"Ahmed Alami, Compte numero: 121, Solde : 15000 dh"
- void virer(long som, Compte& dest) ; qui permet de virer la somme som
du compte courant vers le compte dest.
Par exemple si C1 et C2 deux objets comptes de la classe Compte, l’instruction
C1.virer(1000, C2); permet de déposer la somme 1000 dh sur le compte C2
et la retirer du compte C1 si la somme 1000 dh est disponible sur le compte C1.
- bool egale(Compte C) qui retourne un booléen pour tester si deux comptes sont
égaux (s’ils ont le même numéro de compte).

Ecrire un programme pour tester la classe Compte. Ce programme doit crée deux comptes C1 et
C2 pour un propriétaire P1 initialisé respectivement avec les sommes 20000 dhs et 15000 dhs.
Effectuer successivement les opérations suivantes : déposer 5000 dhs sur le compte C1, afficher
le solde, retirer 200 dhs sur le compte C2 et virer la somme 2000 dhs depuis le compte C2 vers
le compte C1. Afficher le solde de C1 et C2.

Modifier la méthode virer en passant l’objet Compte dest par valeur. Exécuter le
programme à nouveau et justifier le passage de dest par référence.

Partie II :

L’objectif de la deuxième partie est la gestion des Comptes dans une classe Banque (Une
Banque gère plusieurs comptes : tableau de comptes). La classe Banque disposera d’un nom,
d’un tableau d’objet Compte alloué dynamiquement lors de la création d’un objet Banque, un
entier représentant le nombre maximal de comptes gérés par la banque et un entier initier à zéro
représentant le nombre de compte effectivement ajouter à la banque. Une banque peut croître
(ajout d'un compte à la liste de compte à gérer). Un client peut quitter la banque (suppression
d'un compte à partir de son numéro), Un agent de banque vérifie des informations des comptes
(Obtenir un compte à partir de son numéro). Deux banques peuvent être fusionnées en une seule
banque.

Suivant ces règles proposer les différentes interfaces (méthodes) pour faire cette gestion.

Vous aimerez peut-être aussi