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 :

Probleme au niveau affichage


Sujet :

Java

  1. #1
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut Probleme au niveau affichage
    bonjour,
    j'ai un exercice concernant une gestion de clients de Banque .le probleme que j'ai c'est que j'arrive pas à afficher un bilan pour chaque client.j'ai revisé mon code que je trouve correcte ,je sais pas si j'ai un probleme ou pas
    voila mon code:
    ma 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
    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
    class ExceptionCritique extends Exception
    {
    public 	ExceptionCritique(String chaine)
    	{
    		super(chaine);
    	}
    }
     
    class ExceptionInexistant extends Exception
    {
    public 	ExceptionInexistant(String chaine)
    	{
    		super(chaine);
    	}
    }
     
    class ExceptionDouteuse extends Exception
    {
    public 	ExceptionDouteuse(String chaine)
    	{
    		super(chaine);
    	}
    }
    class Compte
    {
     
     
     
    	private int numero;
    	private float solde;
    	public Compte(int numero,float solde)
    	{
     
    		this.numero=numero;
    		this.solde=solde;
    	}
    	public Compte(Compte E)
    	{
     
    		numero=E.numero;
    		solde=E.solde;
    	}
    	public Compte()
    	{
    		numero=0;
    		solde=0;
     
    	}
     
     
     
    	public void depot(float valeur) throws ExceptionDouteuse
    	{   if(valeur>1000)throw new ExceptionDouteuse("votre operation est douteuse!");
    		solde+=valeur;
     
    	}
    	public void retrait(float valeur)throws ExceptionCritique
    	{  
    		solde-=valeur;
    		if(solde<=0) throw new ExceptionCritique("attention votre solde est en etat critique,il vaut maintenant :"+solde);
     
    	}
    	public float getSolde()
    	{
    		return solde;
    	}
    	public int getNumeroCompte()
    	{
    		return numero;
     
    	}
    	public void afficherSolde()
    	{
    		System.out.println("le compte du numero:"+numero+"\n"+"a pour solde:"+solde);
    	}
     
    }
    ma classe Cllient
    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
    import java.util.*;
     
    class Client
    {   
    	private String nomClient;
    	private List<Compte> l;
    	public Client(String nom)
    	{   
    	    nomClient=nom;
    		l=new ArrayList<Compte>();
    	}
    	public void ajouterCompte(Compte c)
    	{
    		l.add(c);
     
        }
        public void afficherComptesClient()
        {
        	for(int i=0;i<l.size();i++)
        	{
        		System.out.println("le compte "+(i+1)+"pour le client"+nomClient+" a comme numero de compte"+l.get(i).getNumeroCompte());	
        	}
     
        }
      public String getNomClient()
      {
      	 return nomClient;
      }	
     
     
     
    }
    ma 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
    import java.util.*;
     
    class Banque
    {
     
    	private List<Client> l1;//je cree la collection de clients
    	public Banque()//constructeur banque
    	{
     
    		l1=new ArrayList<Client>();	
    	}
    	public void ajouterClient(String nomClient)//ajout de client
    	{
    		Client c=new Client(nomClient);
    		l1.add(c);
     
    	}
    	public void bilanClient(int numClient)//bilan pour un client donné
    	{
     
     
    		l1.get(numClient). afficherComptesClient();
     
    	}
    	public void afficherBilan()//bilan total
    	{
    		for(int i=0;i<l1.size();i++)
        	{
        		System.out.println(l1.get(i).getNomClient());
        		bilanClient(i);
        	}
    	}					
    }
    ma classe principale:
    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
    public class Principale
    {
     
     
    	public static void main(String[]args)
    	{  //je cree ma banque 
    	    Banque b=new Banque();
    	    //je cree mon client  jack
    	    Client c1   =new Client("jack");
    	    //je cree des comptes pour jack
    	    Compte comp1=new Compte(4,50);
    	    Compte comp2=new Compte(3,150);
    	    c1.ajouterCompte(comp1);
    	    c1.ajouterCompte(comp2);
    	    //je cree mon client  marou
    	    Client c2   =new Client("marou");
    	    //je cree des comptes pour marou
            Compte comp3=new Compte(1,500);
    	    Compte comp4=new Compte(5,250);
    	    c2.ajouterCompte(comp3);
    	    c2.ajouterCompte(comp4);
    	    //j'ajoute mes clients à ma banque
    	    b.ajouterClient(c1.getNomClient());
    	    b.ajouterClient(c2.getNomClient());
            b.bilanClient(0);//la j'essaie d'afficher les comptes pour mon premier Client mais ça s'affiche pas
     
     
     
     
     
    	}

    donc dans ma classe principale j'essaie de tester la methode BilanClient de ma classe banque mais ça s'affiche pas
    je vous remercie d'avance de vos commentaires

  2. #2
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut
    je sais pas si je me suis bien exprimée ou pas

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    C'est la méthode ajouterClient qui ne colle pas car tu reconstruis un nouvel objet client à chaque fois(perdant donc les ajouts de compte fais précédemment). Il faut passer en paramètre à la méthode un objet de type Client et ce sont les références de ta classe principale
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  4. #4
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par hegros Voir le message
    C'est la méthode ajouterClient qui ne colle pas car tu reconstruis un nouvel objet client à chaque fois(perdant donc les ajouts de compte fais précédemment). Il faut passer en paramètre à la méthode un objet de type Client et ce sont les références de ta classe principale
    entrer le nom de client comme argument au niveau de la methode ajouterClient m'est imposé ,je dois donc trouver une autre solution

  5. #5
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    C'est bizarre comme "imposition". Dans tout les cas il faut que tu trouve un moyen de passer à ton objet banque une référence vers ton objet Client.Sinon ce que tu peux faire c'est untiliser ta méthode ajouterClient dès le début pour y créer les clients puis utiliser une méthode getClient (String nom) pour récupérer le client depuis le main et lui affecter des comptes.
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par s-ehtp Voir le message
    entrer le nom de client comme argument au niveau de la methode ajouterClient m'est imposé ,je dois donc trouver une autre solution
    !?! enfin c'est quand même ce qu'il y a de plus naturel : une méthode ajouterclient prends en paramètre un client...

    cette conception me parait un peu bancal (sorry )

    Sinon dans ajouterClient il faudrait aussi associer les comptes au nouveau client pour que cela colle (comme dans la class prinicipale) Tu instancies un client c'est bien mais pas suffisant il faut aussi lier les comptes.
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  7. #7
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    Bonjour,

    Si on et obliger de n'avoir que le nom du client dans ajouterClient il faut donc que se soit la banque qui cree les clients dans cette method.
    Mais il faut soit une method ajouterCompte au niveau de la banque ou une methode getClient pour les compte soit lier au objet client stoquer par la banque.

    Cordialement

  8. #8
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    909
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 909
    Points : 1 360
    Points
    1 360
    Par défaut
    Bon, je ne connais pas l'énoncé exacte du problème, mais sur ce que j'en lis, voici ce que je vois comme problème et ce que je suggérerais:

    1) Abandonner ce travail avec le "numclient".
    2) C'est la Banque uniquement qui crée les clients.
    3) Utiliser un Set plutôt qu'un List, car un client n'est Client qu'une seule fois et cela permet de trouver les clients plus facilement

    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
    Classe Banque {
    	private Set<Client> l1;//je cree la collection de clients
    	public Banque()//constructeur banque
    	{
     
    		l1=new HashSet<Client>();	
    	}
    	public Client ajouterClient(String nomClient)//ajout de client
    	{
    		Client c=new Client(nomClient);
    		l1.add(c);
    		return c;
    	}
    	public void bilanClient(Client client)//bilan pour un client donné
    	{
    	       if (l1.contains(client)) client.afficherComptesClient();
                   else throw new Exception("Ce client n'est pas client de cette banque");
     
    	}
    	public void afficherBilan()//bilan total
    	{
    		for(Client client:l1)
                	{
                           System.out.println(client.getNomClient());
                           client.afficherComptesClient()
                     }
             }
    ...
           // sous-classe Client
          class Client
           {   
    	      private String nomClient=nu;
                  private List<Compte> l;
    	      Client(String nom)
    	       {   
    	      	      nomClient=nom;
    	              l=new ArrayList<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
    public class Principale
    {
     
     
    	public static void main(String[]args)
    	{  //je cree ma banque 
    	    Banque b=new Banque();
    	    //je cree mon client  jack
    	    Client c1   =b.ajouterClient("jack");
    	    //je cree des comptes pour jack
    	    Compte comp1=new Compte(4,50);
    	    Compte comp2=new Compte(3,150);
    	    c1.ajouterCompte(comp1);
    	    c1.ajouterCompte(comp2);
    	    //je cree mon client  marou
    	    Client c2   =b.ajouterClient("marou");
    	    //je cree des comptes pour marou
            Compte comp3=new Compte(1,500);
    	    Compte comp4=new Compte(5,250);
    	    c2.ajouterCompte(comp3);
    	    c2.ajouterCompte(comp4);
            b.bilanClient(c1);




    }

Discussions similaires

  1. [JMF] Problème au niveau de RTP
    Par Alienx dans le forum Multimédia
    Réponses: 2
    Dernier message: 05/03/2006, 15h50
  2. [Thread] petit problème au niveau du reveil d'un thread
    Par sagitarium dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 13/01/2006, 11h35
  3. [CSS] Probleme avec l'affichage de mon site :
    Par vampyrx dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 28/08/2005, 23h23
  4. PROBLEME haut niveau BACKUP
    Par Dev_Michael dans le forum Administration
    Réponses: 7
    Dernier message: 10/03/2005, 15h32
  5. Probleme bizarre d affichage sur une radeon 9200 SE
    Par venomelektro dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/12/2004, 10h11

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