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

avec Java Discussion :

programmation liste chainee (en java)


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut programmation liste chainee (en java)
    bonjour a tout le monde!

    en effet je suis en train de faire un exercice ( programmation en java en utilisant les liste chainée )

    je vous propose un corrige si vous pouvez me dire si c'est bon ou pas sinon merci de donner des conseille .


    Listes chainees :

    1 caddie de ménagère est constitue de produits
    La classe produits est composée de

    -nom produit (nom_produit)
    -code barre (code_barre)
    -prix (prix_ttc) (a noter: pas de différence entre prix ht et ttc)

    Elle est implémentée par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Class Produit
    {
    string nom_produit ;
    int code_barre ;
    double prix_ttc ;
     
    PublicProduit (string prod, int code, double prix)                     
           {
    this.nom_produit = prod ;
    this.code_barre = code ;
    this.prix_ttc = prix ;
           }
    }
    1)Un caddie est constitue d'une liste de produit.
    Definir le type caddie en utilisant les listes chainees (on ecrira
    la liste et son constructeur)

    2)Ecrire PrixCaddie une methode d'instance de la classe caddie qui retourne le
    prix total d'un caddie (balayage boucle) puis addition prix.


    Ma proposition:


    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
    public class Caddie 
    { int produit;
    Elementlist suivant;
    Elementlist (int produit ,Elementliste suivant)
    {
    this.produit=produit;
    this.suivant=suivant;
    }
    public void Ecrire PrixCaddie (prix p)
    {
     for (int i=0,i<n;i++)
        produit1=new produit
        prixtotal=produit++
       retutn prixtotal
    }
    }

    merci d'avance

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    Ton code ne compile pas ...
    Je te conseille d'utiliser un éditeur (par exemple eclipse) qui pourra t'aider dans un premier temps à faire un code qui compile

  3. #3
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    Quand on te demande d'écrire la méthode Prix Caddy il ne faut pas écrire public void Ecrire PrixCaddy mais public int PrixCaddy car déja tu retournes une valeur alors que tu mets void dans ta signature de méthode.
    De plus Ecrire PrixCaddy n'a pas de sens vu que tu mets void avant!

    Installe Eclipse ou Netbeans pour qu'il te mette du rouge partout!
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 321
    Points : 265
    Points
    265
    Par défaut
    Voici ce que je te propose pour la classe Cadie :

    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
    public class Caddie extends ArrayList
    { 
    private int total = 0;
     
    public Caddie() {
    this = new ArrayList<Produit>();
    }
     
    public int PrixCaddie()
    {
     for (int i=0,i<this.length();i++)
     {
        this.total = this.total + this.get(i).prix_ttc
     }
       retutn this.total
    }
    }
    Ca fait assez longtemps que je n'ai pas fais de java alors j'espere ne pas avoir dis trop de betises...

  5. #5
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Salut,

    ton code ne compile toujours pas...
    Installe Eclipse ou Netbeans pour qu'il te mette du rouge partout!
    Sinon, ton implémentation actuelle ne répond pas à l'énoncé de l'exercice: aucune notion de liste chainée.

    Sinon qqs remarques en vrac:

    - Hériter d'ArrayList ne sert à rien.
    - la méthode length() n'existe pas sur les listes
    - this = new ArrayList<Produit>(); est interdit -> super()
    - si la classe Produit tel que tu nous la donne fait partie de l'énoncé, je ne comprends pas ce que ton prof entend par liste chainée.

  6. #6
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 109
    Points : 99
    Points
    99
    Par défaut
    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
    Listes chainees :
     
    1 caddie de ménagère est constitue de produits
    La classe produits est composée de
     
    -nom produit (nom_produit)
    -code barre (code_barre)
    -prix (prix_ttc) (a noter: pas de différence entre prix ht et ttc)
     
    Elle est implémentée par :
     
    Code :
     
    Public Class Produit
    {
    string nom_produit ;
    int code_barre ;
    double prix_ttc ;
     
    PublicProduit (string prod, int code, double prix)                     
           {
    this.nom_produit = prod ;
    this.code_barre = code ;
    this.prix_ttc = prix ;
           }
    }
     
    1)Un caddie est constitue d'une liste de produit.
    Definir le type caddie en utilisant les listes chainees (on ecrira
    la liste et son constructeur)
     
    2)Ecrire PrixCaddie une methode d'instance de la classe caddie qui retourne le
    prix total d'un caddie (balayage boucle) puis addition prix.
    salut a toi .
    la façon donc ta fais la classe caddie est celle du langage C .
    en effet comme en C il n'y pas de notion de Liste on définie une structure pour simuler une liste; (c'est ce que t'a fais)

    en java c 'est pas du tout pareil on pense plus objet et en java les listes existe :ArrayList<E>

    pour la classe produit :

    public class Produit {

    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
     
    	String nomProduit;
    	int codeBarre;
    	float prix;
     
     
    	//constructor
     
    	public Produit(){
     
    	}
     
    	// 2end constructor
    	public Produit(String nomProduit,int codeBarre ,float prix){
    		this.nomProduit = nomProduit;
    		this.codeBarre  = codeBarre;
    		this.prix =prix;
    	}
     
    public float getPrix(){
         return this.prix;
    }
    en ce qui concerne la classe caddie

    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
     
    public class Caddies {
     
    	//liste des produits
    	ArrayList ListProduit = new ArrayList();
     
     
    	//constructor
     
    	public Caddies(){
     
    	}
     
     
    float PrixCaddie(List listProduit){
     
    	float prixTotal = 0;
    	float prixTmp;
     
    	for (i = 0; i< listProduit.size(); i++){
     
    		prixTmp = listProuit.get(i).getPrix(); 
    		prixTotal =  prixTotal + prixTmp;
     
    	}
    	return prixTotal;
    } 
     
    }
    voila j'espère que ça va t'aider.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Yop !

    1)Un caddie est constitue d'une liste de produit.
    Definir le type caddie en utilisant les listes chainees (on ecrira
    la liste et son constructeur)

    2)Ecrire PrixCaddie une methode d'instance de la classe caddie qui retourne le
    prix total d'un caddie (balayage boucle) puis addition prix.
    Quelque part si on lui demande d'écrire une liste chainée, c'est parce que c'est un exercice instructif, il n'y a aucun intérêt à l'usage. Donc utiliser ArrayList ou n'importe quoi du genre n'a aucun intérêt dans le cadre de l'exercice.

    Petit début de piste :

    la classe Caddie n'est qu'une base de liste dont les maillons sont des emplacements.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class Caddie{
        Emplacement premier;
    }
    les emplacements sont destinés à servir de conteneur pour le produit et faire le lien vers l'emplacement suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class Emplacement{
        Produit leProduit;
        Emplacement suivant;
    }
    y'a plus qu'à définir les méthodes d'ajout et de comptage.
    Pourfendeur de singletons en croisade

  8. #8
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par tongo Voir le message
    en java c 'est pas du tout pareil on pense plus objet et en java les listes existe :ArrayList<E>
    Pourquoi juste ArrayList ? List n'est qu'une interface avec plusieurs autres implémentations : LinkedList (liste chaînée au passage), ArrayList

    Soit le but de l'exercice est de recoder un LinkedList (pour apprendre à faire une liste chaînée), soit d'utiliser LinkedList.

    Citation Envoyé par tongo Voir le message
    float PrixCaddie(List listProduit){
    ...
    for (i = 0; i< listProduit.size(); i++){
    prixTmp = listProuit.get(i).getPrix();
    ...
    Alors, ça c'est très mal de faire un get sur une liste dont on ne connait pas l'implémentation. Surtout si c'est une liste chaînée, l'accès à un élément via get en liste chaînée est linéaires par rapport à la position.
    Ce qui donne un parcours en n² par rapport à la taille de la liste
    Je ne répondrai à aucune question technique en privé

Discussions similaires

  1. [LG]probleme d'ajout dans une liste chainée...
    Par misteryann dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2004, 20h28
  2. [LG]Listes chainées avec pointeur
    Par PaowZ dans le forum Langage
    Réponses: 2
    Dernier message: 17/02/2004, 19h49
  3. [LG]liste chainee + pointeur + affichage
    Par k_ro dans le forum Langage
    Réponses: 6
    Dernier message: 17/01/2004, 13h58
  4. [LG]Tri par insertion dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2003, 22h34
  5. [LG]suppression dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 9
    Dernier message: 16/12/2003, 21h20

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