TP Comptes bancaires.

1°) Contexte

Un compte bancaire (simplifié) est caractérisé par :

- un numéro unique

- le nom de son propriétaire

- son solde (montant restant sur le compte): il peut être négatif

- le montant du découvert autorisé (chiffre négatif) : le solde ne peut descendre en dessous.

Travail à faire

Dessiner le diagramme partiel de la classe Compte en respectant les règles de nommage du langage C# et en faisant figurer les niveaux de visibilité.

Solution

2°) Responsabilités

Nous attribuons à cette classe un certain nombre de responsabilités, ceci permettra de déterminer son comportement.

Responsabilités :

- créditer d'un montant fourni

- débiter le solde d'un montant fourni, mais attention un "drapeau" (booleen) indiquera si l'opération a pu se réaliser

- transférer un montant, du compte courant vers un autre compte; même remarque que pour le paragraphe précédent.

- comparer le solde de l'objet courant avec le solde d'un autre compte fourni, le résultat sera un booléen

Travail à faire

Enrichir le diagramme de la classe Compte en ajoutant les méthodes nécessaires avec leurs signatures précises et les niveaux de visibilité.

Solution

3°) Ecriture de la classe

Vous aller utiliser Visual Studio 2005 pour déclarer votre classe. regarder la prise en main de VS2005 pour le projet Compte.

La classe AppCompte servira à tester votre classe Compte par l'intermédiaire de la méthode Main.

Travail à faire.

Ecrire la déclaration de votre classe Compte. Pour cela vous utiliserez le diagramme de classe qui indique les attributs et méthodes. Chaque procédure ne contiendra qu'un corps vide {}. Afin de ne pas avoir d'erreur de compilation sur les fonctions, vous préciserez une valeur de retour dans le corps de la méthode, exemple :

public bool Debiter(float montant){return true;}

Compiler.

4°) Ecriture du corps des constructeurs et des accesseurs.

Travail à faire

Ecrire deux constructeurs :

- l'un sans paramètre qui ne fera que mettre à blanc ou à 0 les champs

- l'autre avec 4 paramètres, un pour chaque attribut

Ecrire les 4 accesseurs : GetNumero(), GetNom(), GetSolde(), GetDecouvertAutorise()

Compiler

5°) Gestion de l'affichage

Afin de ne pas mélanger ce qui concerne les comptes et leurs opérations d'une part et l'affichage d'autre part on vous propose de créer une classe Ecran qui assurera cette responsabilité d'affichage. Cette classe ne contiendra qu'une seule méthode statique Affiche(Compte unCompte). Cette méthode affichera les valeurs des attributs d'un compte.

Travail à faire.

- Enrichir le diagramme de classe en conséquence

Solution

- Ecrire la méthode Afficher, la tester ainsi :

using System;

class AppCompte{
                static void Main(){
                         Compte c = new Compte();
                         Compte c1 = new Compte(12345,"toto",1000,-500);
                          Ecran.Afficher(c);
                          Ecran.Afficher(c1);
                          }
 }

6°) Ecriture des méthodes restantes

Travail à faire

              a) Méthodes Crediter(), Debiter(): tester avec

static void Main()

{
         Compte c1 = new Compte(12345,"toto",1000,-500);
         c1.Crediter(2000);
         c1.Debiter(5300);
         Ecran.Afficher(c1);
      }

qui devra produire :

                      b) Méthode Transferer() : Tester avec

premier test :

Compte c1 = new Compte(12345,"toto",1000,-500);
Compte c2 = new Compte(45657, "titi",2000,-1000);
c1.Transferer(1300,c2);
Ecran.Afficher(c1);
Ecran.Afficher(c2);

qui devra produire :

deuxième test :

Compte c1 = new Compte(12345,"toto",1000,-500);
Compte c2 = new Compte(45657, "titi",2000,-1000);
c1.Transferer(3300,c2);
Ecran.Afficher(c1);
Ecran.Afficher(c2);

qui devra produire :

                  c) Méthode Superieur()

Tester avec :

Compte c1 = new Compte(12345,"toto",1000,-500);
Compte c2 = new Compte(45657, "titi",2000,-1000);
if(c1.Superieur(c2))
       Console.WriteLine("superieur");
else
        Console.WriteLine("inférieur");

qui devra afficher inférieur.