/** * Contructeur * * On cree les NB_MAX_COMPTE compte de la banque de maniere aleatoire (le nom du proprietaire, le solde initiale et * le type de compte ) * */ public Banque() { rnd = new Random(); for (int i = 0; i < NB_MAX_COMPTE; i++) { int solde = rnd.Next() % (SOLDE_MAX_ATTRIBUE - SOLDE_MIN_ATTRIBUE) + SOLDE_MIN_ATTRIBUE; string nom=string.Empty; for (int j = 0; j < TAILLE_NOM_ALEATOIRE; j++) { int chiffre = rnd.Next() % 26; string l = chiffre.ToString() + 'a'; nom += l; } int type_compte = rnd.Next() % 4; switch (type_compte) { case (int)TypeDeCompte.COMPTE: _tab_compte[i] = new Compte(nom, solde); break; case (int)TypeDeCompte.COMPTE_CHEQUE: _tab_compte[i] = new CompteCheque(nom, solde); break; case (int)TypeDeCompte.LIVRET: _tab_compte[i] = new Livret(nom, solde); break; case (int)TypeDeCompte.PEL: _tab_compte[i] = new PEL(nom, solde); break; } } }
/* * Permet de tester les Classe Compte, CompteCheque, Livret, Pel, Moneo et banque */ static void Main(string[] args) { int n = -1; bool test = true; Compte c = new Compte(); CompteCheque cc; Livret l; PEL p1, p2; Banque bank; while (test) { Console.WriteLine("\n1 Tester la saisie et l'affichage d'un compte"); Console.WriteLine("2 Tester les constructeurs"); Console.WriteLine("3 Tester les get"); Console.WriteLine("4 Tester retirer et deposer"); Console.WriteLine("5 Tester la saisie et l'affichage d'un compte cheque"); Console.WriteLine("6 Tester retirer et deposer pour un compte cheque"); Console.WriteLine("7 Tester la classe livret"); Console.WriteLine("8 Tester la classe PEL"); Console.WriteLine("9 Tester la carte moneo"); Console.WriteLine("10 Tester effectuer un virement"); Console.WriteLine("11 Tester la banque"); Console.WriteLine("12 Quitter"); do { n = int.Parse(Console.ReadLine()); } while (n < 1 || 12 <n); switch (n) { case 1: c.saisir(); break; case 2: Compte c1 = new Compte("toto", 100); Compte c2 = new Compte("toto2", 2); Compte c3 = new Compte("toto3"); Console.WriteLine(c1.ToString()); Console.WriteLine(c2.ToString()); Console.WriteLine(c3.ToString()); break; case 3: c.saisir(); Console.WriteLine(string.Format("get_nom: {0}\nget_solde : {1}\nget_num_compte : {2}",c.get_nom,c.get_solde,c.get_num_compte)); break; case 4: int i; c.saisir(); Console.WriteLine("Somme à verser ?"); i = Convert.ToInt32(Console.ReadLine()); c.deposer(i); Console.WriteLine("Somme à retirer ?"); i = Convert.ToInt32(Console.ReadLine()); c.retirer(i); break; case 5: cc = new CompteCheque(); Console.WriteLine("Nom du propriétaire:"); cc.get_nom = Console.ReadLine(); Console.WriteLine("Solde:"); cc.get_solde = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Découvert max:"); cc.decouvertMax = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(cc.ToString()); break; case 6: cc = new CompteCheque(); Console.WriteLine("Nom du propriétaire:"); cc.get_nom = Console.ReadLine(); Console.WriteLine("Solde:"); cc.get_solde = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Découvert max:"); cc.decouvertMax = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Somme à verser ?"); i = Convert.ToInt32(Console.ReadLine()); cc.deposer(i); Console.WriteLine("Somme à retirer ?"); i = Convert.ToInt32(Console.ReadLine()); cc.retirer(i); Console.WriteLine(cc.ToString()); break; case 7: l = new Livret(); Console.WriteLine("Nom du propriétaire:"); l.get_nom = Console.ReadLine(); Console.WriteLine("Solde:"); l.get_solde = Convert.ToInt32(Console.ReadLine()); if (l.get_solde < 0) { l.get_solde = 0; Console.WriteLine("Le solde du compte doit être positif, il vaut donc maintenant 0"); } l.soldeMinimum = l.get_solde; Console.WriteLine("Taux d'intérêt:"); l.TauxInteret= Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Somme à verser?"); i = Convert.ToInt32(Console.ReadLine()); l.deposer(i); Console.WriteLine("Somme à retirer ?"); i = Convert.ToInt32(Console.ReadLine()); l.retirer(i); Console.WriteLine(string.Format("Calcul des intérêts : {0} ", l.calcul_interet())); Console.WriteLine("Somme à retirer ?"); i = Convert.ToInt32(Console.ReadLine()); l.retirer(i); Console.WriteLine(string.Format("Calcul des intérêts : {0} ", l.calcul_interet())); l.verser_interet(); Console.WriteLine(l.ToString()); break; case 8: int f; p1= new PEL(); p2 = new PEL(); Console.WriteLine(""); Console.WriteLine("Nom du propriétaire:"); p1.get_nom = Console.ReadLine(); Console.WriteLine("Solde:"); p1.get_solde = Convert.ToInt32(Console.ReadLine()); if (p1.get_solde < 0) { p1.get_solde = 0; Console.WriteLine("Le solde du compte doit être positif, il vaut donc maintenant 0"); } p1.soldeMinimum = p1.get_solde; Console.WriteLine(""); Console.WriteLine("Nom du propriétaire:"); p2.get_nom = Console.ReadLine(); Console.WriteLine("Solde:"); p2.get_solde = Convert.ToInt32(Console.ReadLine()); if (p2.get_solde < 0) { p2.get_solde = 0; Console.WriteLine("Le solde du compte doit être positif, il vaut donc maintenant 0"); } p2.soldeMinimum = p2.get_solde; Console.WriteLine(""); Console.WriteLine(p1.ToString()); Console.WriteLine(""); Console.WriteLine(p2.ToString()); Console.WriteLine(""); p1.verser_interet(); Console.WriteLine(""); Console.WriteLine("Entrer le nouveau taux pour le pel :"); f = Convert.ToInt32(Console.ReadLine()); p1.TauxInteretPEL = f; Console.WriteLine(""); Console.WriteLine(p1.ToString()); Console.WriteLine(""); Console.WriteLine(p2.ToString()); Console.WriteLine(""); break; case 9: cc = new CompteCheque(); Console.WriteLine("\nSaisie du compte cheque qui sera associé aux cartes moneo\n"); cc.saisir(); Moneo c_moneo_1 = new Moneo(ref cc); Moneo c_moneo_2 = new Moneo(ref cc, 200); Moneo c_moneo_3 = new Moneo(ref cc); Moneo c_moneo_4 = new Moneo(ref cc); Moneo c_moneo_5 = new Moneo(ref cc); Moneo c_moneo_6 = new Moneo(ref cc); Moneo c_moneo_7 = new Moneo(ref cc); Moneo c_moneo_8 = new Moneo(ref cc); Moneo c_moneo_9 = new Moneo(ref cc); Moneo c_moneo_10 = new Moneo(ref cc); Moneo c_moneo_11 = new Moneo(ref cc); c_moneo_1.recharger(); c_moneo_1.retirer(20); c_moneo_1.recharger(); Console.WriteLine("\nEtat du compte chèque:\n"); Console.WriteLine(cc.ToString()); break; case 10: CompteCheque compte_c = new CompteCheque(); Compte compte = new Compte(); Console.WriteLine(""); compte_c.saisir(); Console.WriteLine(""); compte.saisir(); Console.WriteLine(""); compte_c.effectuer_virement(ref compte, 100); Console.WriteLine(""); Console.WriteLine(compte_c.ToString()); Console.WriteLine(""); Console.WriteLine(compte.ToString()); Console.WriteLine(""); break; case 11: bank = new Banque(); Console.WriteLine(String.Format("\nSomme totale des soldes des comptes de la banque :{0}\n", bank.calculer_somme_solde_compte())); bank.effectuer_virements(10000); Console.WriteLine(""); break; case 12: Console.WriteLine("\nFin du programme de test\n"); test = false; break; } } }
/** * Effectue un virement vers un autre compte * * @return "true" si l'operation a ete effectuee et "false" sinon */ public bool effectuer_virement(ref Compte c, float somme) { if (this.retirer(somme)) { c.deposer(somme); Console.WriteLine(String.Format("\nVirement de {0} effectué du compte {1} vers le compte {2}\n", somme, _num_compte, c._num_compte)); return true; } else { Console.WriteLine(String.Format("\nVirement impossible entre le compte {0} et le compte {1}\n", _num_compte, c._num_compte)); return false; } }