Exercice 1 public class Compte{ //Attributs private int numero; private String titulaire; private double solde; //Constructeurs public Compte(int numero,String titulaire,double solde){ this.numero=numero; this.titulaire=titulaire; this.solde=solde; } public Compte(String titulaire,double solde){ this(0,titulaire,solde); } public Compte(){ this(0,"",0); } //Methodes public void depot(double versement){ if(versement<=0)System.out.println("Il y a erreur sur la demande!! Le versement est négatif ou nul! C'est un débit!"); else solde+=versement; } public void consulterCompte(){ System.out.println("NUMERO COMPTE: "+numero); System.out.println("TITULAIRE: "+titulaire); System.out.println("SOLDE: "+solde); } public boolean autorisationRetrait(double retrait){ if(retrait>solde){ System.out.println("Vous n'avez pas assez d'argent sur le compte"); return false; } else return true; } public void retrait(double retrait){ if(retrait<=0)System.out.println("Erreur de retrait! Négatif ou Nul!! C'est un versement!"); else if(this.autorisationRetrait(retrait)) solde-=retrait; } public void setNumero(int numero){ this.numero=numero; } } import java.util.Vector; public class Banque{ //Attributs private String nom; private String adresse; private Vector clients; //Constructeurs public Banque(String nom,String adresse,Vector clients){ this.nom=nom; this.adresse=adresse; this.clients=clients; } public Banque(String nom,String adresse){ this(nom,adresse,new Vector()); } public Banque(){ this("","",new Vector()); } //Methodes public boolean estDansBanque(Compte c){ if(clients.contains(c))return true; else return false; } public void transfert(double montant,Compte debiteur,Compte crediteur){ if( this.estDansBanque(debiteur) && this.estDansBanque(crediteur)){ if(debiteur.autorisationRetrait(montant)){ debiteur.retrait(montant); crediteur.depot(montant); System.out.println("Transfert réalisé!!!"); } else System.out.println("Erreur transfert!!"); } else System.out.println("Ce transfert est impossible!!\nUn des comptes n'appartient pas à la banque!!"); } public void infos(){ System.out.println("BANQUE: "+nom); System.out.println("ADRESSE: "+adresse); } public void ajouterClient(String titulaire,double solde){ Compte c=new Compte(titulaire,solde); clients.add(c); c.setNumero(clients.size()); } public void ajouterClient(Compte c){ clients.add(c); c.setNumero(clients.size()); } } class TestBanque{ //Methode main public static void main(String[] args){ Compte c1=new Compte(1,"Paul",48951.32); Compte c2=new Compte(2,"Jacques",3041.51); Banque b=new Banque("GIVE ME YOUR MONEY","place de la Banque Mondiale\nGenève\nSUISSE"); c1.consulterCompte(); System.out.println(""); c2.consulterCompte(); System.out.println("\nTentative de retrait de 49000 sur le compte de Paul"); c1.retrait(49000); System.out.println("\nTentative de dépôt de -1458 sur le compte de Jacques"); c2.depot(-1458); System.out.println("\nVoici les infos des comptes"); c1.consulterCompte(); System.out.println(""); c2.consulterCompte(); System.out.println("\nLes 2 comptes n'appartiennent pas à la banque!\nNous allons tester un transfert symbolique"); b.transfert(1, c2, c1); System.out.println("\nNouvelle tentative de transfert avec un seul compte dans la banque"); b.ajouterClient(c1); b.transfert(1,c2,c1); System.out.println("\nLes 2 comptes sont maintenant dans la banque!!!\n\n"); System.out.println("\nTentative de transfert de 4000 du compte de Jacques sur celui de Paul"); b.ajouterClient(c2); b.transfert(4000,c2,c1); System.out.println("\nEvolution des comptes"); c1.consulterCompte(); System.out.println(""); c2.consulterCompte(); System.out.println("\nTentative de transfert de 1000 du compte de Paul sur celui de Jacques"); b.transfert(1000,c1,c2); System.out.println("\nEvolution des comptes"); c1.consulterCompte(); System.out.println(""); c2.consulterCompte(); System.out.println("\nTous ces rapports proviennent de la magnifique banque:"); b.infos(); } }