Vous êtes sur la page 1sur 6

C++ - Classes, instances, objets [oo]

Exercices résolus

Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner

Unisciel algoprog Version 27 avril 2015

Table des matières


1 Compte bancaire OO 2
1.1 Classe CBancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Procédure de traitement . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Programme de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Compte client OO 5
2.1 Classe CClient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Programme de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1
Unisciel algoprog – oo00acxres-texte, April 27, 2015 2

1 Compte bancaire OO
Cet exercice résolu applique les principes de la conception objet afin de réaliser une
version OO « pure » de la gestion d’un compte bancaire.

1.1 Classe CBancaire

Un compte bancaire (simplifié) est défini par le solde disponible sur le compte. Les
opérations de manipulation minimales seront :
– Initialiser un compte bancaire
– Accéder au solde d’un compte bancaire
– Créditer un compte bancaire
– Débiter un compte bancaire
On étendra également l’interface avec :
– Un constructeur permettant d’initialiser le solde.
– Une méthode afficher qui affiche l’objet.
– Une méthode virerVers qui effectue un virement d’un compte vers un autre compte
bancaire.

Écrivez une classe CBancaire qui inclut un attribut solde (réel). (Veillez à respecter la
Règle 2.)

Écrivez un constructeur par défaut. (Application Règle 3.)

Écrivez un constructeur à un paramètre x (réel) initialisant son attribut.

Écrivez un accesseur getSolde du solde du compte. (Application Règle 1.)

Écrivez une méthode crediter(x) qui crédite le compte du montant x (réel). Supposez
x positif.

Écrivez une méthode debiter(x) qui débite le compte du montant x (réel). Supposez x
positif.

Écrivez une méthode afficher qui affiche le solde.

Écrivez une méthode virerVers(cb,montant) qui effectue un virement de montant


(réel) vers un CBancaire cb.

Validez votre classe et vos méthodes avec la solution.


Unisciel algoprog – oo00acxres-texte, April 27, 2015 3

Solution simple
C++ @[oocbancaireC1.hpp] @[ooCBancaireC1a.cpp] @[ooCBancaireC1b.cpp]

1.2 Procédure de traitement

Écrivez l’en-tête d’une procédure traiterCompte(cb) qui traite un CBancaire cb.

Demandez à l’utilisateur un montant (réel). Affichez :


Tapez vos montants successifs (0 pour finir)
Votre montant (0==fin)?

Complétez votre procédure comme suit :


TantQue le montant n’est pas nul :
1. Selon qu’il est positif ou négatif, elle crédite ou débite le CBancaire cb de montant.
2. Ensuite elle affiche l’état du nouveau compte.
3. Puis si le solde de cb est négatif, elle avertit l’utilisateur afin qu’il le réapprovisionne.
4. Finalement elle demande à nouveau le montant afin de pouvoir quitter la boucle
TantQue.

Validez votre procédure avec la solution.


C++ @[traiterCompteA1.cpp]

1.3 Programme de test

Écrivez un programme qui instancie un CBancaire cb puis le manipule par la procédure


traiterCompte. Après avoir manipulé le compte, si le solde est positif :
– Demandez et saisissez le montant du virement
– Effectuez le virement sur un autre compte, puis
– Affichez l’état des deux comptes.

Testez. Exemple d’exécution.


Tapez vos montants successifs (0 pour finir)
Votre montant (0==fin)? 200
Etat du compte: 200 euros
Votre montant (0==fin)? -350
Etat du compte: -150 euros
OUPS... cb en négatif -- veuillez alimenter
Votre montant (0==fin)? 170
Etat du compte: 20 euros
Votre montant (0==fin)? 0
Unisciel algoprog – oo00acxres-texte, April 27, 2015 4

Validez votre programme avec la solution.

Solution simple
C++ @[pg-oocbancaireC1.cpp]
Unisciel algoprog – oo00acxres-texte, April 27, 2015 5

2 Compte client OO
Cet exercice résolu définit un compte client OO. Il utilise la classe CBancaire.

2.1 Classe CClient

Un client a :
– Un nom (chaı̂ne de caractères).
– Une ville (chaı̂ne de caractères).
– Un numéro de compte numero (entier).
– Un compte courant cpt1 (type CBancaire).
– Et un compte d’épargne cpt2 (type CBancaire).

Écrivez une classe CClient contenant les attributs spécifiés.

Validez votre définition avec la solution.

Solution simple
C++ @[ooCClientC0.hpp]

Écrivez le constructeur par défaut.

Écrivez un constructeur normal qui initialise tous les attributs.

Écrivez un accesseur getNum du numéro du compte.

Écrivez une méthode afficher qui affiche les données du compte comme suit :
Client: [nom] de [ville] #compte [numero]
compte courant: [cpt1]
compte epargne: [cpt2]

Orientation
– Utilisez au maximum les accesseurs (pour numero).
– Appelez la méthode d’affichage de CBancaire (pour cpt1 et cpt2).

Écrivez une méthode boucler(taux) qui :


1. Cumule les intérêts mensuels du compte épargne cpt2 pour un taux annuel de taux
(réel).
2. Si le compte courant cpt1 est à découvert (c.-à-d. négatif), elle l’approvisionne
depuis le compte épargne pour le ramener à zéro.
Unisciel algoprog – oo00acxres-texte, April 27, 2015 6

Validez votre classe et vos méthodes avec la solution.

Solution simple
C++ @[ooCClientC1.hpp] @[ooCClientC1a.cpp] @[ooCClientC1b.cpp]

2.2 Programme de test

Écrivez un programme qui définit une constante TAUX de valeur 0.06 puis instancie un
CClient cc de nom "Pedro", habitant à "Colmar", de numéro 1234, de -500e sur le CC
et de 2000e sur le CE.

Affichez les données du client avant et après le bouclage (en fin de mois).

Testez. Résultat d’exécution.


Etat du compte avant bouclage:
Client: Pedro de Colmar #compte 1234
compte courant: -500 euros
compte epargne: 2000 euros
Etat du compte après bouclage:
Client: Pedro de Colmar #compte 1234
compte courant: 0 euros
compte epargne: 1510 euros

Validez votre programme avec la solution.

Solution simple
C++ @[pg-oocclientC1.cpp]

Vous aimerez peut-être aussi