static void Main(string[] args) { Personne p = new Personne("Norris", "Chuck", new DateTime(1904, 3, 10)); Courant c = new Courant("000001", 500, p); Courant c1 = new Courant("000002", 500, p); Courant c2 = new Courant("000003", 500, p); Epargne e = new Epargne("000004", p); //IBanker bank = new Courant("000005",750,p); // ICustomer customer = new Epargne("000006",p); try { e.Depot(500); e.Retrait(250); c.Depot(1000); c1.Retrait(300); c2.AppliquerInteret(); } catch (Exception ex) { Console.WriteLine(ex.GetType()); Console.WriteLine(ex.Message); } Banque b = new Banque("BNP PARIBAS"); b.Ajouter(c); b.Ajouter(c1); b.Ajouter(e); Console.WriteLine(e.Solde); e.AppliquerInteret(); Console.WriteLine(e.Solde); Console.WriteLine(c.Solde); c.AppliquerInteret(); Console.WriteLine(c.Solde); Console.WriteLine(c1.Solde); c1.AppliquerInteret(); Console.WriteLine(c1.Solde); }
static void Main(string[] args) { try { #region Test Exo01 Personne p = new Personne("Legrain", "Samuel", new DateTime(1987, 9, 27)); Courant c = new Courant("BE54736489001234", p, 200); c.Depot(5000000); c.Retrait(5000001); if (c.Titulaire == p) { Console.WriteLine("Ce sont les même!!!"); } #endregion #region Test Exo02 Banque b = new Banque(); b.Nom = "BanqueRoute"; b.Ajouter(c); Courant c2 = (Courant)b[c.Numero]; if (c == c2) { Console.WriteLine("Il s'agit du même compte!"); } b.Ajouter(c2); b.Supprimer(c2.Numero); #endregion #region Test Exo03 c = new Courant("BE5501", p); c.Depot(300); b.Ajouter(c); c = new Courant("BE5502", p, 200); c.Retrait(50); b.Ajouter(c); c = new Courant("BE5503", new Personne("Bastin", "Diego", new DateTime(1995, 03, 02)), 200); c.Depot(50); b.Ajouter(c); c.Retrait(100); Console.WriteLine($"Les avoirs de M.{p.Nom} sont de {b.AvoirDesComptes(p)}€."); Console.WriteLine($"Les avoirs de M.{c.Titulaire.Nom} sont de {b.AvoirDesComptes(c.Titulaire)}€."); #endregion #region Test Exo04 Epargne e = new Epargne("BE3301", p); e.Depot(50000); e.Retrait(60000); Console.WriteLine($"Le solde du compte {e.Numero}, appartenant à {e.Titulaire.Nom}, est de {e.Solde}"); Console.WriteLine($"Le dernier retrait date de {e.DateDernierRetrait}"); e.Retrait(30000); Console.WriteLine($"Le solde du compte {e.Numero}, appartenant à {e.Titulaire.Nom}, est de {e.Solde}"); Console.WriteLine($"Le dernier retrait date de {e.DateDernierRetrait}"); #endregion #region Test Exo05 b.Ajouter(e); Console.WriteLine($"Les avoirs de M.{p.Nom} sont de {b.AvoirDesComptes(p)}€."); Console.WriteLine($"Les avoirs de M.{c.Titulaire.Nom} sont de {b.AvoirDesComptes(c.Titulaire)}€."); #endregion #region Test Exo06 Console.WriteLine($"Le compte courant {c.Numero} a pour Solde {c.Solde}"); Console.WriteLine($"Le compte courant {e.Numero} a pour Solde {e.Solde}"); c.AppliquerInteret(); e.AppliquerInteret(); Console.WriteLine($"Le compte courant {c.Numero} a pour Solde {c.Solde}"); Console.WriteLine($"Le compte courant {e.Numero} a pour Solde {e.Solde}"); c.Retrait(65); Console.WriteLine($"Le compte courant {c.Numero} a pour Solde {c.Solde}"); c.AppliquerInteret(); Console.WriteLine($"Le compte courant {c.Numero} a pour Solde {c.Solde}"); #endregion #region Test Exo07 ICustomer customer = c; Console.WriteLine($"En tant que client du compte je peut voir mon Solde : {customer.Solde}"); customer.Depot(500); Console.WriteLine($"En tant que client du compte je peut voir mon Solde : {customer.Solde}"); IBanker banquier = c; Console.WriteLine($"En tant que banquier je peux voir le Solde : {banquier.Solde} ; le titulaire {banquier.Titulaire.Nom} ; et le numéro {banquier.Numero}"); banquier.AppliquerInteret(); Console.WriteLine($"En tant que banquier je peux voir le Solde : {banquier.Solde} ; le titulaire {banquier.Titulaire.Nom} ; et le numéro {banquier.Numero}"); #endregion } catch (InvalidOperationException e) { Console.WriteLine(e.Message); } catch (SoldeInsuffisantException e) { Console.WriteLine(e.Message); Console.WriteLine($"Vous auriez dû retiré {e.GetDifference()} en moins de votre montant {e.AskMontant}"); } catch (Exception e) { Console.WriteLine(e.Message); } }
static void Main() { Console.WriteLine("Gestion bancaire\n----------------"); #region test Personne Personne ClientA = new Personne() { Nom = "Haye", Prenom = "Gregory", DateNaiss = new DateTime(1979, 06, 14) }; Personne ClientB = new Personne() { Nom = "Hubert", Prenom = "Emmanuelle", DateNaiss = new DateTime(1975, 10, 25) }; Console.WriteLine($"Client A: {ClientA.Nom} {ClientA.Prenom} | {ClientA.DateNaiss } "); Console.WriteLine($"Client B: {ClientB.Nom} {ClientB.Prenom} | {ClientB.DateNaiss } "); #endregion #region test Courant/Epargne depot retrait Courant C1CA = new Courant { Numero = "1111", LigneDeCredit = 1000, Titulaire = ClientA }; Courant C1CB = new Courant { Numero = "3333", LigneDeCredit = 1000, Titulaire = ClientB }; Courant C2CA = new Courant { Numero = "2222", LigneDeCredit = 0, Titulaire = ClientA }; Epargne CE1CA = new Epargne { Numero = "9999", Titulaire = ClientA }; Epargne CE1CB = new Epargne { Numero = "8888", Titulaire = ClientB }; AffichageComptes(C1CA, C1CB, C2CA, CE1CA, CE1CB); C1CA.Depot(1000); C1CB.Depot(2000); C2CA.Depot(500); C1CA.Retrait(2000); CE1CA.Depot(777); CE1CB.Depot(555); CE1CA.Retrait(77); CE1CB.Retrait(55); AffichageComptes(C1CA, C1CB, C2CA, CE1CA, CE1CB); #endregion #region Test banque , indexeur Banque ING = new Banque() { Nom = "ING" }; ING.Ajouter(C1CA); ING.Ajouter(C1CA); ING.Ajouter(C2CA); ING.Ajouter(C1CB); ING.Ajouter(CE1CB); ING.Ajouter(CE1CA); AfficherComptes(ING); ING["2255"]?.Depot(1500); // ? pour ne pas executer la methode si l'indexeur renvoi null ING["2255"]?.Retrait(100); double soldeTmp = ING["1111"].Solde; // ING["1111"] = C2CA; // indexeur set a private sinon , on peut remplacer des comtpes :DD AfficherComptes(ING); #endregion #region test Surcharge operator ING["1111"].Depot(5000); ING["3333"].Retrait(2500); AfficherComptes(ING); Console.WriteLine($"Avoir des comptes de {ClientA.Prenom} : {ING.AvoirDesComptes(ClientA)}"); Console.WriteLine($"Avoir des comptes de {ClientB.Prenom} : {ING.AvoirDesComptes(ClientB)}"); #endregion #region test Abstraction, calcul interet ING["8888"].Retrait(500); foreach (Compte compte in ING.Comptes.Values) { compte.AppliquerInteret(); } AfficherComptes(ING); Console.WriteLine($"Avoir des comptes de {ClientA.Prenom} : {ING.AvoirDesComptes(ClientA)}"); Console.WriteLine($"Avoir des comptes de {ClientB.Prenom} : {ING.AvoirDesComptes(ClientB)}"); #endregion }