Erreur dans mon programme
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:
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:
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:
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:
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:
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.