La classe Compte
Objectif :
- Définir les propriétés et méthodes d’une classe
- Définir des constructeurs
- Créer une instance de classe
- Accéder par les accesseurs aux propriétés en lecture et écriture d’un objet
- Appliquer des méthodes
- Définir des attributs et méthodes statiques
Travail à faire:
- Définir une classe Client avec les attributs suivants : CIN, Nom, Prénom, Tél.
- Définir à l’aide des propriétés les méthodes d’accès aux différents attributs de la classe.
- Définir un constructeur permettant d’initialiser tous les attributs.
- Définir un constructeur permettant d’initialiser le CIN, le nom et le prénom.
- Définir la méthode Afficher ( ) permettant d’afficher les informations du Client en cours.
- Créer Une classe Compte caractérisée par son solde et un code qui est incrémenté lors de sa création ainsi que son propriétaire qui représente un client.
- Définir à l’aide des propriétés les méthodes d’accès aux différents attributs de la classe (le numéro de compte et le solde sont en lecture seule)
- Définir un constructeur permettant de créer un compte en indiquant son propriétaire.
- Ajouter à la classe Compte les méthodes suivantes :
- Une méthode permettant de Crediter() le compte, prenant une somme en paramètre.
- Une méthode permettant de Crediter() le compte, prenant une somme et un compte en paramètres, créditant le compte et débitant le compte passé en paramètres.
- Une méthode permettant de Debiter() le compte, prenant une somme en paramètre
- Une méthode permettant de Débiter() le compte, prenant une somme et un compte bancaire en paramètres, débitant le compte et créditant le compte passé en paramètres
- Une méthode qui permet d’afficher le résumé d’un compte.
- Une méthode qui permet d’afficher le nombre des comptes crées.
- Créer un programme de test pour la classe Compte.
Compte 1:
Donner Le CIN: EE111222
Donner Le Nom: Salim
Donner Le Prénom: Omar
Donner Le numéro de télephone: 0611111
Détails du compte:
************************
Numéro de Compte: 1
Solde de compte: 0
Propriétaire du compte :
CIN: EE111222
NOM: Salim
Prénom: Omar
Tél : 06111111
*************************
Donner le montant à déposer: 5000
Opération bien effectuée
************************
Numéro de Compte: 1
Solde de compte: 5000
Propriétaire du compte :
CIN: EE111222
NOM: Salim
Prénom: Omar
Tél : 06111111
*************************
Donner le montant à retirer: 1000
Opération bien effectuée
************************
Numéro de Compte: 1
Solde de compte: 4000
Propriétaire du compte :
CIN: EE111222
NOM: Salim
Prénom: Omar
Tél : 06111111
*************************
Compte 2:
Donner Le CIN: EE333444
Donner Le Nom: Karimi
Donner Le Prénom: samir
Donner Le numéro de télephone: 0622222
Détails du compte:
************************
Numéro de Compte: 2
Solde de compte: 0
Propriétaire du compte :
CIN: EE333444
NOM: Karimi
Prénom: samir
Tél : 06222222
*************************
Crediter le compte 2 à partir du compt
Donner le montant à déposer: 3000
Opération bien effectuée
Débiter le compte 1 et créditer le com
Donner le montant à retirer: 1000
Opération bien effectuée
************************
Numéro de Compte: 1
Solde de compte: 0
Propriétaire du compte :
CIN: EE111222
NOM: Salim
Prénom: Omar
Tél : 06111111
*************************
************************
Numéro de Compte: 2
Solde de compte: 4000
Propriétaire du compte :
CIN: EE333444
NOM: Karimi
Prénom: samir
Tél : 06222222
*************************
Le nombre de comptes crées: 2
La classe Client:
//Auteur : CHAOULID //Copyright: Exelib.net class Client { private string cin; private string nom; private string prenom; private string tel; public string Cin //Cin en lecture seule { get { return cin; } } public string Nom { get { return nom; } set { nom = value; } } public string Prenom { get { return prenom; } set { prenom = value; } } public string Tel { get { return tel; } set { tel = value; } } public Client(string cin, string nom, string prenom, string tel) { this.cin = cin; this.nom = nom; this.prenom = prenom; this.tel = tel; } public Client(string cin, string nom, string prenom) { this.cin = cin; this.nom = nom; this.prenom = prenom; } public void Afficher() { Console.Out.WriteLine("CIN: " + cin); Console.Out.WriteLine("NOM: " + nom); Console.Out.WriteLine("Prénom: "+prenom); if(tel!="") Console.Out.WriteLine("Tél : "+tel); } }
La classe Compte:
//Auteur : CHAOULID //Copyright: Exelib.net class Compte { private int numero; private double solde; private Client proprietaire; private static int nombre_comptes = 0; public int Numero //Le numéro de compte est lecture seule { get { return numero; } } public double Solde //Le solde est en lecture seule { get { return solde; } } public Client Proprietaire { get { return proprietaire; } set { proprietaire = value; } } public Compte(Client proprietaire) { nombre_comptes++; numero = nombre_comptes; this.proprietaire = proprietaire; } public void Crediter(double somme) { solde += somme; Console.Out.WriteLine("Opération bien effectuée"); } public void Crediter(Compte c, double somme) //une deuxiéme méthode Crediter(..) avec des paramétres différents (surcharge des méthodes) { if (c.solde >= somme) { c.solde -= somme; solde += somme; Console.Out.WriteLine("Opération bien effectuée"); } else Console.Out.WriteLine("Solde de compte insuffisant"); } public void Debiter(double somme) { if (solde >= somme) { solde -= somme; Console.Out.WriteLine("Opération bien effectuée"); } else Console.Out.WriteLine("Solde insuffisant"); } public void Debiter(Compte c, double somme) //une deuxiéme méthode Debiter(..) avec des paramétres différents (surcharge des méthodes) { if (solde >= somme) { solde -= somme; c.solde += somme; Console.Out.WriteLine("Opération bien effectuée"); } else Console.Out.WriteLine("Solde insuffisant"); } public void Afficher() { Console.Out.WriteLine("************************"); Console.Out.WriteLine("Numéro de Compte: " + numero); Console.Out.WriteLine("Solde de compte: " + solde); Console.Out.WriteLine("Propriétaire du compte : "); proprietaire.Afficher(); Console.Out.WriteLine("*************************"); } public static void Nombre_Comptes() { Console.Out.WriteLine("\n\nLe nombre de comptes crées: " + nombre_comptes); } }
Le programme de test:
//Auteur : CHAOULID //Copyright: Exelib.net class Program { static void Main(string[] args) { Console.Out.WriteLine("Compte 1: "); string cin, nom, prenom, tel; Console.Out.Write("Donner Le CIN: "); cin = Console.In.ReadLine(); Console.Out.Write("Donner Le Nom: "); nom = Console.In.ReadLine(); Console.Out.Write("Donner Le Prénom: "); prenom = Console.In.ReadLine(); Console.Out.Write("Donner Le numéro de télephone: "); tel = Console.In.ReadLine(); Compte C1 = new Compte(new Client(cin, nom, prenom, tel)); Console.Out.WriteLine("Détails du compte: "); C1.Afficher(); double montant; Console.Out.Write("Donner le montant à déposer: "); montant = double.Parse(Console.In.ReadLine()); C1.Crediter(montant); C1.Afficher(); Console.Out.Write("Donner le montant à retirer: "); montant = double.Parse(Console.In.ReadLine()); C1.Debiter(montant); C1.Afficher(); Console.Out.WriteLine("\n\nCompte 2: "); Console.Out.Write("Donner Le CIN: "); cin = Console.In.ReadLine(); Console.Out.Write("Donner Le Nom: "); nom = Console.In.ReadLine(); Console.Out.Write("Donner Le Prénom: "); prenom = Console.In.ReadLine(); Console.Out.Write("Donner Le numéro de télephone: "); tel = Console.In.ReadLine(); Compte C2 = new Compte(new Client(cin, nom, prenom, tel)); Console.Out.WriteLine("Détails du compte: "); C2.Afficher(); Console.Out.WriteLine("Crediter le compte 2 à partir du compte 1"); Console.Out.Write("Donner le montant à déposer: "); montant = double.Parse(Console.In.ReadLine()); C2.Crediter(C1, montant); Console.Out.WriteLine("Débiter le compte 1 et créditer le compte 2"); Console.Out.Write("Donner le montant à retirer: "); montant = double.Parse(Console.In.ReadLine()); C1.Debiter(C2, montant); C1.Afficher(); C2.Afficher(); Compte.Nombre_Comptes(); Console.ReadKey(); } }