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é.
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é.
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
- 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.