Vous êtes sur la page 1sur 9

Objectif :

Crer une classe drive.

Ajouter des mthodes une classe drive.

Redfinir des mthodes dans une classe drive.

nonce:

Un compte bancaire possde tout moment une donne : son solde.


Ce solde peut tre positif (compte crditeur) ou ngatif (compte dbiteur).

Chaque compte est caractris par un code incrment


automatiquement.

le code et le solde d'un compte sont accessibles en lecture


seulement.

A sa cration, un compte bancaire a un solde nul et un code


incrment.

Il est aussi possible de crer un compte en prcisant son solde


initial.

Utiliser son compte consiste pouvoir y faire des dpts et des


retraits. Pour ces deux oprations, il faut connatre le montant de
l'opration.

L'utilisateur peut aussi consulter le solde de son compte par la


mthode ToString().

Un compte Epargne est un compte bancaire qui possde en plus un


champ Taux Intrt=6 et une mthode calculIntrt() qui permet de
mettre jour le solde en tenant compte des intrts.

Un ComptePayant est un compte bancaire pour lequel chaque


opration de retrait et de versement est payante et vaut 5 DH.

Questions :
1.

Dfinir la classe Compte.

2.

Dfinir la classe CompteEpargne.

3.

Dfinir la classe ComptePayant.

4.

Crer un programme permettant de tester ces classes avec les


actions suivantes:
Crer une instance de la classe Compte , une autre de la classe
CompteEpargne et une instance de la classe ComptePayant

Faire appel la mthode dposer() de chaque instance pour dposer


une somme quelconque dans ces comptes.

Faire appel la mthode retirer() de chaque instance pour retirer


une somme quelconque de ces comptes.

Faire appel la mthode calculIntert() du compte Epargne.

Afficher le solde des 3 comptes.

//Auteur :CHAOULID
//Copyright: Exelib.net

class Compte
{
private int code;
private double solde;
private static int nb_comptes=0;

public int Code

{
get { return code; }
}

public double Solde


{
get { return solde; }
}

public static int Nb_Comptes


{
get { return nb_comptes; }
}

public Compte()
{
nb_comptes++;
code = nb_comptes;
}

public Compte(double solde)

{
nb_comptes++;
code = nb_comptes;
this.solde = solde;
}

public virtual void deposer(double somme)


//mthode virtuelle qui peut tre redfinie dans une classe drive
{
solde += somme;
}

public virtual void retirer(double sommme)


////mthode virtuelle qui peut tre redfinie dans une classe drive
{
solde -= sommme;
}

public override string ToString()


{
return "Code: " + code + " Solde: " + solde;
}

La classe Compte Epargne:


class CompteEpargne : Compte
{
private double tauxinteret=6;

public double Tauxinteret


{
get { return tauxinteret; }
}

public CompteEpargne() : base() { }


//constructeur par dfaut

public CompteEpargne(double solde) : base(solde) { }


//constructeur d'initialisation

public void CalculerInteret()


nouvelle mthode qui utilise une mthode hrite
{
deposer((Solde * tauxinteret)/ 100);
}

//une

public override string ToString()


//redfinition de la mthode ToString()
{
return "Compte Epargne: "+ base.ToString() +" Taux intert:
"+tauxinteret ;
}
}

La classe Compte Payant:


class ComptePayant : Compte
{
public ComptePayant() : base() { }
//Constructeur par dfaut
public ComptePayant(double solde) : base(solde) { }
//Constructeur d'initialisation
public override string ToString()
//ToString redfinie
{
return "Compte Payant: "+ base.ToString();
}

public override void deposer(double somme)


mthode "deposer" redfinie
{

//La

base.deposer(somme);
base.retirer(5);
}

public override void retirer(double somme)


mthode "retier" reffinie
{
base.retirer(somme);
base.retirer(5);
}
}

Le programme de test:
class Program
{
static void Main(string[] args)
{
Compte C1 = new Compte();
CompteEpargne C2 = new CompteEpargne();
ComptePayant C3 = new ComptePayant();
C1.deposer(10000);
C2.deposer(2000);

//La

C3.deposer(3000);
C1.retirer(2000);
C2.retirer(500);
C3.retirer(400);
C2.CalculerInteret();
Console.Out.WriteLine(C1);
Console.Out.WriteLine(C2);
Console.Out.WriteLine(C3);
Console.ReadKey();
}
}
//Source : www.exelib.net