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

Langage Java Discussion :

[Débutant] Saisie avec objet


Sujet :

Langage Java

  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Par défaut [Débutant] Saisie avec objet
    Bonsoir,

    je bosse sur un sujet basique de gestion de banque. Et je veux demander à l'utilisateur de créer un compte.

    Je n'arrive pas à lui faire remplir et ensuite l'afficher.

    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
    public void init()
    	{
    		if (tbanque.isEmpty())
    			Utilitaire.ecrireLigne(" vide");
    		else Utilitaire.ecrireLigne(" non vide");
     
    		Client personne_tmp;
    		Compte compte_tmp;
    		int indice=0;
    		Utilitaire.ecrire("Entrez le nombre de client à saisir");
    		nb_personnes=Utilitaire.lireEntier();
     
    		while (indice<nb_personnes)
    		{
    			Utilitaire.ecrire(" Qui détient ce compte ? ");
    			compte_tmp=new Compte();
    			personne_tmp=new Client();
    			personne_tmp.saisirclient();
    			Utilitaire.ecrire(" Quel est le solde ? ");
    			compte_tmp.solde=Utilitaire.lireEntier();
    			tbanque.add(compte_tmp.n_compte, personne_tmp,compte_tmp.solde);
    			n_compte=n_compte+1;
    			}
    		}
    Voici Compte :
    private int n_compte;
    private Client tTitulaire;
    private double solde;

    Et voici Client
    private String nom;
    private String prenom;
    private String adresse;

    J'espère avoir donné tous les détails dont vous avez besoin pour m'aider.

    Déjà le "lireEntier" sur un "double" cela ne doit certainement pas marché mais s'il n'y avait que cela ....

    Merci beaucoup d'avance parce que là, sa me soul

  2. #2
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Par défaut
    je ne comprends pas ta question!!!

    Petite info: les noms de varaible en Java ne contiennent pas de "_"

  3. #3
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Commences par nous dire ce que tu entends par "je n'arrive pas ..." ?

    As tu des exceptions, quel est le comportement de ton appli ?

    Ce code vient d'un tuto, d'un bouquin ?? ya pas mal de truc un peu bizarre non ?

    Tu devrais refaire le code mais par étape ... juste le nom du compte d'abord par exemple. Tu t'embrouillerais moins à ne résoudre qu'un pb à la fois.

  4. #4
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    Citation Envoyé par menuge (dans un autre post)
    je ne comprends pas la question.

    Info: selon la convention Java, pas de majuscule aux noms des méthodes!!!
    Citation Envoyé par menuge
    je ne comprends pas ta question!!!

    Petite info: les noms de varaible en Java ne contiennent pas de "_"

    Vive les questions précises et les conventions, hein menuge !
    Au passage, un "_" est correct pour les constantes.

    <<<< POST INUTILE >>>>

  5. #5
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Par défaut
    Au passage, un "_" est correct pour les constantes.
    C'est tout à fait vrai!

  6. #6
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Par défaut
    bonjour,

    la plupart du code sort d'un exo que mon prof m'a donné avant celui de la banque. Mais c'est quasiment pareil sauf que là, j'ai tTitulaire qui est de type client et que je veux remplir en même temps que compte.

    Ce que je n'arrive pas c'est à trouver le code pour créer un compte, donc n_compte, puis tTitulaire de type Client et ensuite solde.

    Je crois que la fonction add ne permet d'apeller que 2 arguments et non trois

  7. #7
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Citation Envoyé par gregory.bts

    Ce que je n'arrive pas c'est à trouver le code pour créer un compte, donc n_compte, puis tTitulaire de type Client et ensuite solde.
    ben un titulaire est un client, je vois pas trop ce que tu trouve pas

    Citation Envoyé par gregory.bts
    Je crois que la fonction add ne permet d'apeller que 2 arguments et non trois
    ben faudrait en être sûr . Tu l'as pas sous les yeux cette méthode ? tBanque c'est un objet de type hashtable ou hashmap ? Dans ce cas, oui tu as seulement 2 arguments.

    Pourquoi vouloir 3 arguments.

    En fait, c'est vraiment pas clair. Que veux tu faire exactement ? Ce bout de code présenté il marche pour l'exo d'avant ? Ce que tu veux c'est juste adapter à un nouveau problème ?

    Faut être plus explicite, sinon on ira pas loin ...

  8. #8
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Par défaut
    je suis désolé mais je suis débutant et je ne capte même pas tout ce que tu me dis.

    Le bout de code marche comme sa :

    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.ArrayList;
     
    public class tablo {
    	private ArrayList tab;
    	private int nb_personnes;
     
    	tablo()
    	{
    		tab=new ArrayList();
    		nb_personnes=0;
    	}
     
    	public void init()
    	{
    		if (tab.isEmpty())
    			Utilitaire.ecrireLigne(" vide");
    		else Utilitaire.ecrireLigne(" non vide");
     
    		perso personne_tmp;
    		int indice=0;
    		Utilitaire.ecrireLigne("Entrez le nombre de personnes à saisir");
    		nb_personnes=Utilitaire.lireEntier();
     
    		while (indice<nb_personnes)
    		{
    			personne_tmp=new perso();
    			personne_tmp.saisirPersonne();
     
    			tab.add(indice,personne_tmp);
    			indice=indice+1;
    		}
    	}
    Voila, sa sa marche, cela ajoute une nouvelle personne. Maintenant tu me demande ce que je veux exactement. Dans le menu de ma banque, il va y avoir "ajouter compte" et je veux que dans cette méthode, je génère un n_compte (sa c bon) qui serve d'indice dans un tableau. Ce numéro de compte doit être associé à un titulaire de type client et un solde. Déjà je n'arrive pas à relier les 3 ensemble.

    Donc en fait, la méthode génère le n_comtpte, ensuite le ttitulaire est renseigné de ses 3 champs (nom prenom adresse) et le solde renseigné par un double.

    Je n'arrive pas à faire sa. Je ne sais pas comment faire pour ajouter 2 variables (1 int et 1 double) et 1 objet (ttitulaire) dans un tableau et pouvoir y accèder après.

    Pour l'instant notre prof nous fait utilisé import "java.util.ArrayList;" mais il ne nous a pas dit ce que l'on pouvait faire avec. Tout ce que je sais, c'est que dans l'exo d'avant, cela avait stocké 1 indice et 1 variable.

    La c'est ppareil sauf qu'il y a une variable en plus.

    Qu'on se comprenne bien je veux pas que cela stocke ma première variable en i0 puis l'autre en i1 etc... je voudrais que le n_compte soit en i0.n_compte, le ttitulaire soit en i0.ttitulaire etc.... Chaque i sera égal à un client différent.

    J'espère avoir été claire cette fois ci.

  9. #9
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    Il faut créer une classe objet Compte contenant le numéro, le Client et son solde.
    ArrayList pourra être utilisé ensuite pour contenir ta liste de compte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ArrayList<Compte> list = new ArrayList<Compte>();
    N'oublie pas que la JavaDoc est ta meilleure amie (=> ArrayList).

  10. #10
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Par défaut
    Pour relier les 3 ensembles (numéro de compte, numéro du titulaire et solde) il te suffit d'instancier un objet de type Compte à chaque fois que tu créeras un compte et de valoriser ses attributs (n_compte, tTitulaire, solde).

    Après l'instanciation et la valorisation des attributs de ton compte, il te suffit d'ajouter ton nouveau compte à ton ArrayList.

    Dans l'explication ci-dessous, je suppose que tbanque est ton ArrayList de Compte.

    1. Demander le nombre de comptes à créer
    2. Faire
    Instancier un nouvel objet de type Compte
    Instancier un nouvel objet de type Client
    Valoriser l'attribut n_compte de l'objet Compte
    Valoriser l'attribut nom de l'objet Client
    Valoriser l'attribut prenom de l'objet Client
    Valoriser l'attribut adresse de l'objet Client
    Valoriser l'attribut tTitulaire de l'objet Compte
    Valoriser l'attribut solde de l'objet Compte
    Ajouter l'objet Compte à ton ArrayList
    Tant que nombre de comptes créés < nombre de compte à créer

    Dans ton code, il semble que tu demandes à l'utilisateur de valoriser ces variables (affichage de la demande) mais que tu ne géres pas sa réponse (saisie clavier ou formulaire d'une interface).

  11. #11
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    Citation Envoyé par bigben99
    1. Demander le nombre de comptes à créer
    2. Faire
    Instancier un nouvel objet de type Compte
    Instancier un nouvel objet de type Client
    Valoriser l'attribut n_compte de l'objet Compte
    Valoriser l'attribut nom de l'objet Client
    Valoriser l'attribut prenom de l'objet Client
    Valoriser l'attribut adresse de l'objet Client
    Valoriser l'attribut tTitulaire de l'objet Compte
    Valoriser l'attribut solde de l'objet Compte

    Ajouter l'objet Compte à ton ArrayList
    Tant que nombre de comptes créés < nombre de compte à créer
    Ou :
    Créer un nouveau Client(nom,prenom)
    Valoriser "adresse" du Cient.
    Créer un nouvel objet de type Compte(numero,client,solde)

    Tout dépend de ses constructeurs. Cependant, mieux vaut créer le Compte une fois que l'on a toutes ses données (cas d'une erreur de champs, par ex.)

  12. #12
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Par défaut
    instancier ??? valoriser ????

    Créer la classe objet compte : je crois l'avoir fait :

    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
    import java.util.ArrayList;
     
    public class Compte {
    	private ArrayList tbanque;
    	private int nb_personnes;
    	private int n_compte;
    	private Client tTitulaire;
    	private double solde;
     
    	Compte()
    	{
    		n_compte=0;
    		tTitulaire=new Client();
    		solde=0;
    		tbanque=new ArrayList();
    	}
    non ?

    Ensuite ce bout de code doit être bon car il est identique à l'autre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	public void init()
    	{
    		if (tbanque.isEmpty())
    			Utilitaire.ecrireLigne(" vide");
    		else Utilitaire.ecrireLigne(" non vide");
     
    		Client client_tmp;
    		int indice=0;
    		Utilitaire.ecrireLigne("Entrez le nombre de personnes à saisir");
    		nb_personnes=Utilitaire.lireEntier();
     
    		while (indice<nb_personnes)
    		{
    Mais c'est ce qui va dans ce while qui me pose problème.

  13. #13
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Par défaut
    Citation Envoyé par BlackWood
    Ou :
    Créer un nouveau Client(nom,prenom)
    Valoriser "adresse" du Cient.
    Créer un nouvel objet de type Compte(numero,client,solde)

    Tout dépend de ses constructeurs. Cependant, mieux vaut créer le Compte une fois que l'on a toutes ses données (cas d'une erreur de champs, par ex.)
    J'avais commencé en envisageant toutes les possibilités, mais je pense qu'il faut y aller étape par étape, déjà réussir à créer chaque objet, puis valoriser ses attributs et enfin les ajouter dans l'ArrayList, ensuite, on pourra toujours perfectionner pour gérer les anomalies et même différents constructeurs en fonction des informations disponibles lors de la création d'un compte...

  14. #14
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Par défaut
    le constructeur je vois ce que c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Compte()
    	{
    		n_compte=0;
    		tTitulaire=new Client();
    		solde=0;
    		tbanque=new ArrayList();
    	}
    Mais la valorisation et l'instanciation ??????????????,

  15. #15
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    bon je dirais :

    soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // dans le while
    String nom = Utilitaire.lireString();
    String prenom = ...
     
    Compte cpt = new Compte(nom,prenom ...) // Attention, il faut modifier le constructeur pour prendre en compte les arguments et du coup le constructeur de Client aussi
    tBanque.add(cpt);
    soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // dans le while
    Compte cpt = new Compte();
    tBanque.add(cpt);
     
    // et dans constructeur de Compte
    String nom = Utilitaire.lireString();
    ...
    tTitulaire = new Client(nom ...); //Constructuer de client à modifier
    ...
    dis moi si tu captes rien, qu'on reprenne au début

  16. #16
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    As-tu étudié les Accesseurs/Mutateurs ? C'est par exemple :
    (accesseur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public int getNumero() {
       return numero;
    }
    (mutateur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void setNumero(int numero) {
       this.numero = numero;
    }
    Par "valorisation", bigben voulait entendre "un appel à un set()".
    edit : ou tout simplement attribuer une valeur à la variable (instancier est proche, mais signifie plutot "créer l'objet").

    Un autre constructeur pour ton Compte pourrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public Compte(int numero, Client client, double solde) {
       this.numero = numero;
       this.client = client;
       this.solde = solde;
    }

  17. #17
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Par défaut
    lol je capte rien

    si tu veux déjà on a pas vu encore les arguments dans la création d'objet.

    le plus simple cela serait que je mette à disposition les 3 fichiers du truc qu'on a fait avant. C'est à dire création suppression ajout et modification de l'age de "personnes"

    A partir de là, le seul truc qui change c'est que dans Compte on a un champ qui est de type d'une autre class.

    C'est la seule chose qui change vraiment tout le reste c'est juste du changement de nom de variable pour transformer perso en client et tablo en compte.

    je rar le tout ici

    d'ailleurs à chaque fois le prof nous fait importer le truc java.io mais il est souligné par eclipse pour signaler qu'on ne s'en sert pas. Je trouve sa bizar.

    et pendant que j'y suis je mets aussi utilitaire ici parce qu'il n'y a pas de Utilitaire.lireString()

    ne croyez pas que je veux que vous me le fassiez, je veux comprendre surtout que j'ai un devoir Lundi lol

  18. #18
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    Bon, j'ai pas encore regarder tes sources mais déjà, ton prof craint : il vous parle d'ArrayList et de java.io alors que vous n'avez même pas vu les arguments !!??
    Ben bon courage...

  19. #19
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Par défaut
    t'inquiète j'avais déjà remarquer qu'il craignait. Il prend ses cours sur le site lol. On a vu les arguments à passer dans les méthodes mais en aucun cas dans un constructeur.

    Et on a pas vu ta manière de coder ton constructeur avec les this.

    je suis pas dans la merde lol

    edit : je n'ai pas étudié les assenceurs et mutateurs

  20. #20
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Par défaut
    Donc en gros, tu connais le nom java et c'est tout!!!

    Félicitations pour ton Prof....

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. débutant ruby : problème de saisie avec aptana
    Par zvarog dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 02/07/2007, 15h28
  2. [débutant]probleme avec makefile-module objet non créé
    Par Invité dans le forum Systèmes de compilation
    Réponses: 5
    Dernier message: 13/06/2007, 18h22
  3. [Débutant] =Maintenant() avec un masque de saisie date
    Par 512banque dans le forum Access
    Réponses: 4
    Dernier message: 05/07/2006, 16h38
  4. [débutant] suivre un objet 3D avec gluLookAt
    Par Socr@tes dans le forum OpenGL
    Réponses: 8
    Dernier message: 12/06/2006, 17h09
  5. Réponses: 3
    Dernier message: 11/01/2005, 08h20

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