示例#1
0
        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);
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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
        }