import java.util.*; public class Banque { List comptes; int nbComptes =0; public Banque(){ comptes = new ArrayList(); this.nbComptes = 0 ; } public int ouvrirCompte(){ comptes.add(new Compte()); nbComptes ++; return this.nbComptes; } public int ouvrirCompteEpargne(double credit, double interet){ comptes.add(new CompteEpargne(credit,interet)); nbComptes ++; return nbComptes; } public Compte getCompte(int i) throws CompteInexistantException{ if(i > nbComptes && i>0){ throw new CompteInexistantException(); }else{ return this.comptes.get(i-1); } } public void crediter(int i, double x)throws CompteInexistantException{ if(i > nbComptes && i>0){ throw new CompteInexistantException(); }else{ getCompte(i).crediter(x); } } public void debiter(int i, double x)throws CompteInexistantException{ if(i > nbComptes && i>0){ throw new CompteInexistantException(); }else{ getCompte(i).debiter(x); } } public double totalSolde(){ double totalSolde = 0; if(!comptes.isEmpty()){ for(Compte compte : comptes){ totalSolde += compte.solde(); }} return totalSolde; } public String etat(int i) throws CompteInexistantException{ if(i > nbComptes){ throw new CompteInexistantException(); }else{ return getCompte(i).toString(); } } public void etat() { System.out.println("Vos comptes: "); int indice=0; for(Compte compte : comptes){ indice++; System.out.println("Pour le compte: " + indice + " et "+ compte.toString()); } } public void virement(int numSrc, int numDest, double x)throws CompteInexistantException{ if((numSrc > nbComptes)||(numDest > nbComptes)){ throw new CompteInexistantException(); }else{ getCompte(numSrc).virerVers(x, getCompte(numDest)); } } public double interets(int i)throws CompteInexistantException{ if(i > nbComptes){ throw new CompteInexistantException(); }else{ try{ CompteEpargne ce = (CompteEpargne)getCompte(i); return ce.interets(); } catch (ClassCastException e){ } } return 0; } public void echeance(int i)throws CompteInexistantException{ if(i > nbComptes){ throw new CompteInexistantException(); }else{ try{ CompteEpargne ce = (CompteEpargne)getCompte(i); ce.echeance(); } catch (ClassCastException e){ } } } }