Bonjour,

J'ai beau chercher et modifier certaines parties du code mais je n'arrive pas à trouver ce qui ne va pas, mon programme plante.

Voici mon code

Classe Compte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Compte {
 
private float solde;
private int numero;
 
void depot(float valeur)
{ solde =solde+valeur;
    }
void retrait(float valeur)
{   if (solde>0)
    solde=solde-valeur;
    }
float getsolde()
{ return solde;}
 
 void affichesolde()
 {
     System.out.println("votre solde est de "+solde);
 }
 void virer(float valeur, Compte destinataire)
 { destinataire.depot(valeur);
 
 }
 int getnumero()
 {
     return numero;
 }
}
Classe Client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import java.util.Scanner;
 
public class Client {
 
 private Compte [] comptes=new Compte[100];
private String nom ;
private int nbcompte=0;
 
public Client(String nomc)
{nom=nomc;// on donne un nom au client
ajoutercompte();
    }
void ajoutercompte()
{   nbcompte++;
    comptes[nbcompte]=new Compte();
}
 
String getnom()
{return nom;
    }
 
float totalsolde()// retourne le somme des solde des compte d'un client
{float somme=0;
    for(int i=0;i<nbcompte;i++)
{somme =somme+comptes[i].getsolde();
    }
return somme;
 
    }
 
public Compte getCompte(int numero) {
    return comptes[numero];
    }
 
 void affichesolde()
 { System.out.println("le solde total de client est"+totalsolde());
 }
 
public void afficherbilanc()
{System.out.println("afficher le bilan du client!!!"+nom);
for(int i=0;i<nbcompte;i++)
    System.out.println("le solde du compte numero "+i+"est de "+comptes[i].getsolde());}
 
void interactioncli()
{Scanner  sc =new Scanner(System.in);
int choix=0;
Boolean test=true;
while(test==true)
    {System.out.println("**********MENU CLIENT********");
System.out.println("quelle operation voulez vous effectuer sur le client?"+nom);
System.out.println(" 1) Faire un dépot");
System.out.println(" 2) Faire un retrait");
System.out.println(" 3) Faire un virement");
System.out.println(" 4) Créer un compte");
System.out.println(" 5) Afficher le bilan des comptes");
System.out.println(" 6) Revenir au menu princial");
 choix =sc.nextInt();
  switch(choix){
  case 1: {
 
  }
    }
}
}
}
Classe Banque
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import java.util.Scanner;
 
public class Banque {
 
    private Client [] clients=new Client[100];
    private int nbclients=0;
 
    void ajouterClient(String nom)
     {nbclients++;
        clients[nbclients]=new Client(nom);
 
      }
    int getnbclients()
    {return nbclients ;}
 
     void afficherbilan()
     { for(int i=0;i<=nbclients;i++)
     clients[i].afficherbilanc();    
}
     public void interaction()
     {boolean test=true;
     Scanner  sc =new Scanner(System.in);
     int choix;
     String nomm;
 while(test)
 { System.out.println(" **********MENU   BANQUE***********");
         System.out.println("quelle operation vous les vous effectuer?");
         System.out.println("1-Ajouter un client");
         System.out.println("2-effectuer une operation sur un client");
         System.out.println("3-afficher un bilan genrale");
         System.out.println("4-sortir!!!");
         choix =sc.nextInt();
         switch(choix)
         { case 1: {System.out.println(" entrez le nom du client");
                     Scanner  scc =new Scanner(System.in);
                     String nom =scc.nextLine();
                      ajouterClient(nom);
                      System.out.println("le nb de clients est "+this.getnbclients());
 
                     System.out.println("le client   "+this.clients[getnbclients()].getnom()+" a bien été ajouté");
                     }
         break ;
         case 2:{       System.out.println("sur quel client?");
                         Scanner  src = new Scanner(System.in);
                         String nom = src.nextLine();
                         System.out.println("22222");
                         for(int i=0;i<=nbclients;i++)
                         {       System.out.println("wa33333333333"); 
                             nomm=clients[i].getnom();
 
                             if( nom.equals(nomm))
                             {System.out.println("2222222222222222222");
                                   clients[i].interactioncli();}
                              else  
                                   System.out.println("le client n'existe pas desolé  :/");    
                         }
         }
         break  ;
         case 3:{//System.out.println(" :/");    
                   // afficherbilan();}// y'a un pb
              for( int i=0;i<nbclients;i++)
              {System.out.println("le nom du client est "+clients[i].getnom());
 
              }
         }
         break;
         case 4: { System.out.println(" ravie de vous a voir aidé :D");
                   test=false;}
         break ;
         }
 
     }
     }
}
Classe Test
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
public class Test {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        Banque banquefe=new Banque();
        banquefe.interaction();
    }
}
L'opération 1-Ajouter un client fonctionne, cependant lorsque je tente l'opération 2-effectuer une operation sur un client mon programme plante au niveau de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
nomm=clients[i].getnom();
Pourquoi je ne sais pas.
J'ai beau chercher, je n'ai rien trouvé.

Pour information, les System.out.println m'aident à localiser l’arrêt, ce qui explique les suites de 22222 et de 333.

Quelqu'un saurait-il m'indiquer ce qui pose problème ?

Merci d'avance pour votre aide.