IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Récupérer informations client


Sujet :

Java

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut Récupérer informations client
    Bonjour,

    Je développe une petite application de gestion de compte et j'ai un problème quand je suis dans ma classe DAB: je n'arrive pas à récupérer les comptes du client lorsqu'il choisit le choix: afficher le bilan de mes comptes.

    voici mes différentes classes:
    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
    package banque;
     
    public class Client {
     
    	protected String nom;
    	protected String prenom;
    	protected String adresse;
    	protected Compte compte[] = new Compte[3];
    	protected int i = 0;
     
    	public Client (String nom, String prenom, String adresse){
    		this.nom = nom;
    		this.prenom = prenom;
    		this.adresse = adresse;
    	}
     
    	public Client (String nom){
    		this.nom = nom;
    	}
     
    	public void ajouterCompte(Compte unCompte){
    		compte[i] = unCompte;
    		i++;
    	}
     
    	public void afficher(){
    		System.out.print("Bilan des comptes de M. ou Mme "+nom+"\n");
     
    		for(int j=0; j<i; j++){
    			compte[j].afficher();
    		}
    	}
     
    	public void afficherComptes()
    	{
    		for(int j = 0 ; j < i; j++)
    		{
    			System.out.println(j+1 +") Compte n°"+ compte[j].getNumero());
    		}
    	}
     
    	public String getNom(){
    		return nom;
    	}
     
    	public String getPrenom() {
    		return prenom;
    	}
     
    	public Compte[] getComptes() {
    		return compte;
    	}
    }
    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
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    package banque;
     
    public class Compte {
    	protected int numero = 0;
    	protected float solde;
    	protected float decouvertMax;
    	protected float debitMax;
     
    	public int getNumero(){
    		return numero;
    	}
     
    	public Compte (int n){
    		this.numero = n;
    		this.solde = 0;
    		this.decouvertMax = 800;
    		this.debitMax = 1000;
    	}
     
    	public Compte (int n, float s){
    		this.numero = n;
    		this.solde = s;
    		this.decouvertMax = 800;
    		this.debitMax = 1000;
    	}
     
    	public Compte (int numero, float solde, float decouvertMax){
    		this.numero = numero;
    		this.solde = solde;
    		this.decouvertMax = decouvertMax;
    		this.debitMax = 1000;
    	}
     
    	public Compte (float debitMax, int numero, float solde){
    		this.numero = numero;
    		this.solde = solde;
    		this.decouvertMax = 800;
    		this.debitMax = debitMax;
    	}
     
    	public Compte (int numero, float solde, float decouvertMax, float debitMax){
    		this.numero = numero;
    		this.solde = solde;
    		this.decouvertMax = decouvertMax;
    		this.debitMax = debitMax;
    	}
     
    	public void afficher(){
    		System.out.println("Compte numéro : "+numero+", Solde : "+solde);
    	}
     
    	public float getDecouvertMax(){
    		return decouvertMax;
    	}
     
    	public void setDecouvertMax(float nouvDecouvertMax){
    		decouvertMax = nouvDecouvertMax;
    	}
     
    	public float getDebitMax(){
    		return debitMax;
    	}
     
    	public void setDebitMax(float nouvDebitMax){
    		debitMax = nouvDebitMax;
    	}
     
    	public void depot(float montant){
    		solde = solde + montant;
    	}
     
    	public float getSolde(){
    		return solde;
    	}
     
    	public boolean retrait(float montant){
    		if(montant <= debitMax && montant <= solde+decouvertMax){
    			solde = solde - montant;
    			return true;
    		}else{
    			return false;
    		}
    	}
     
    	public void virement(float montantDep, Compte compteDest){
    		boolean debit= this.retrait( montantDep);
    		if (debit == true){
    			compteDest.depot(montantDep);
    		}
    	}
    }
    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
    package banque;
     
    public class Banque {
    	protected Client tabClients[]= new Client[10];
    	protected int i = 0;
     
    	public void ajouterClient(Client c)
    	{
    		tabClients[i]=c;
    		i++;
    	}
     
    	public void afficherClients()
    	{
    		for(int j = 0 ; j < i; j++)
    		{
    			System.out.println(j+1 +") " + tabClients[j].getNom());
    		}
    	}
     
    	public Client[] getTabClients(){
    		return tabClients;
    	}
    }
    DAB
    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
    package banque.dab;
     
    import java.util.Scanner;
     
    import banque.Banque;
    import banque.Client;
     
    public class DAB {
    	Banque banque;
     
    	public DAB(){
     
    	}
     
    	public void initialiser(Banque uneBanque){
    		this.banque = uneBanque;
    	}
     
    	public void demarrer(){
    		chargerClients();
    		Scanner sc = new Scanner(System.in);
    		int choixClient = sc.nextInt();
    		if(choixClient != 0){
    			Client nomClient = new Client(banque.getTabClients()[choixClient-1].getNom());
    			System.out.println("Bonjour M. ou Mme "+nomClient);
    			menuOperation();
    			int choixOperation = sc.nextInt();
    			switch(choixOperation){
    			case 0:
    				chargerClients();
    			case 1:
    				operationCompte();
    			case 2:
     
    			case 3:
    				nomClient.afficher(); // affiche les comptes du client
    			}
    		}
    	}
     
    	private void chargerClients(){
    		System.out.println("Quel est votre nom ?");
    		banque.afficherClients();
    		System.out.println("0) Quitter");
    	}
     
    	private void menuOperation(){
    		System.out.println("Quelle operation voulez-vous effectuer ?");
    		System.out.println("0) Revenir au menu principal");
    		System.out.println("1) Effectuer une opération sur un compte");
    		System.out.println("2) Faire un virement");
    		System.out.println("3) Afficher le bilan de vos comptes");
    	}
     
    	private void operationCompte(){
    		System.out.println("Quelle opération voulez-vous effectuer sur le compte ?");
    		System.out.println("0) Retour");
    		System.out.println("1) Faire un retrait");
    		System.out.println("2) Faire un dépot");
    		System.out.println("3) Afficher le solde");
    	}
    }
    TesterCompte
    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
    package banque.test;
     
    import banque.Banque;
    import banque.Client;
    import banque.Compte;
    import banque.dab.DAB;
     
    public class TesterCompte {
     
    	public static void main(String[] args) {
     
    		Compte compte1 = new Compte(1);
    		Compte compte2 = new Compte(2);
    		compte1.afficher();
    		compte2.afficher();
     
    		compte1.depot(5000);
    		compte1.afficher();
    		compte1.retrait(200);
    		compte1.afficher();
    		compte1.virement(600, compte2);
    		compte1.afficher();
    		compte2.afficher();
     
    		Client client1 = new Client ("toto", "toto", "CRETEIL");
    		client1.ajouterCompte(compte1);
    		client1.ajouterCompte(compte2);
    		client1.afficher();
    		client1.afficherComptes();
     
     
    		Banque banque1 = new Banque();
    		banque1.ajouterClient(client1);
    		banque1.afficherClients();
     
    		DAB dab = new DAB();
    		dab.initialiser(banque1);
    		dab.demarrer();
    	}
    }
    C'est ici que sa bloque:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    			case 3:
    				nomClient.afficher(); // affiche les comptes du client
    }
    Il m'affiche juste sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		System.out.print("Bilan des comptes de M. ou Mme "+nom+"\n");
    Merci de votre aide

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Par défaut
    Salut,

    Ton erreur est à la récupération du Client, tu crées une nouvelle instance au lieu de prendre directement l'objet.

    Classe DAB @ Line 24
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Client nomClient = new Client(banque.getTabClients()[choixClient-1].getNom());
    A remplacer par ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Client nomClient = banque.getTabClients()[choixClient - 1];
    Flo.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Merci beaucoup sa fonctionne

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Par contre j'ai un autre problème à cet endroit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    			case 1:
    				for(Compte unCompte : nomClient.getComptes() ){
    					System.out.println(unCompte.getNumero());
    				}
    Je souhaite récupérer les numéros des comptes et les afficher
    J'arrive bien a afficher les numéros mais sa me met sa comme message en dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception in thread "main" java.lang.NullPointerException
    	at banque.dab.DAB.demarrer(DAB.java:34)
    	at banque.test.TesterCompte.main(TesterCompte.java:38)

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Par défaut
    Dans ta classe Client, tu as défini un tableau de taille 3 pour les comptes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class Client {
     
    	protected Compte compte[] = new Compte[3];
    	protected int i = 0;
    Or, tu en instancies que 2 dans ton cas de test, le 3ème objet Compte est donc null.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Client client1 = new Client("toto", "toto", "CRETEIL");
    		client1.ajouterCompte(compte1);
    		client1.ajouterCompte(compte2);
    Ton foreach lui itère sur tout ton tableau (3 itérations), il faudrait donc un petit "if" pour éviter cette exception.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(Compte unCompte : nomClient.getComptes() ){
    		if(unCompte != null) {
    				System.out.println(unCompte.getNumero());
    		}
    }

Discussions similaires

  1. Récupérer information de sécurité d'un fichier
    Par cyrilc dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/01/2007, 19h07
  2. Récupérer IP client
    Par mat10000 dans le forum Apache
    Réponses: 2
    Dernier message: 17/10/2005, 11h16
  3. Plusieurs informations clients
    Par piloumoi dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/06/2005, 14h34
  4. Réponses: 9
    Dernier message: 17/08/2004, 16h16
  5. Récupérer informations IP, ...
    Par jpdelx dans le forum ASP
    Réponses: 6
    Dernier message: 16/11/2003, 05h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo