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 :

liste chainnéé qui veut pa ajouter des nouveaux element


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 22
    Par défaut liste chainnéé qui veut pa ajouter des nouveaux element
    salut a tous voila mon probleme
    quand j' ajouter des élément pour ma liste lors de la ffichage il me dit qui a rien
    voila le code

    class livre

    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
    public class livre {
        protected String auteur;
        protected String titre;
        protected String edition;
        protected String categorie;
        protected String[] categori={"sciene","sciencefiction","drama","culturelle","policier","roman"};
        public livre(String titre,String auteur,String edition,int i)
        {
            this.titre=titre;
            this.auteur=auteur;
            this.edition=edition;
            categorie=categori[i];
        }
        public livre(){
            this.titre="";
            this.auteur="";
            this.edition="";        
        }
     
     
    }
    class element
    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 element {
        protected livre livre;
        protected element suivant;
        public element()
        {
            livre=null;
            suivant=null;
        }
        public element(livre livre,element a)
        {
            this.livre=livre;
            suivant=a;
        }    
        public element Getsuivnat()
        {
        return suivant;    
        }
        public  void modifelement(String  titre,String auteur,String  edition,int i)
        {
           this.livre.titre=titre;
           this.livre.auteur=auteur;
           this.livre.edition=edition;
           this.livre.categorie=livre.categori[i];           
     
        }
        public void Setsuivant(element k)
        {
            this.suivant=k;
        }
     
    }
    class catallogue
    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
    public class catalogue {
     
        public element tete;
     
        public catalogue()
        {
     
            this.tete=new element(null,null);
        }
        public void Ajouteralarriere(livre l,element pos)
        {       
           element x=pos.suivant;   
     
            pos.Setsuivant(new element(l,x));
     
     
        }
        public boolean  Modifier(element a,String  titre,String auteur,String  edition,int i)
        {
            element ptr=tete;
     
            while(ptr.suivant!=null)
            {
                if(ptr.suivant==a)
                {
                    a.modifelement(titre, auteur, edition, i);
                            return true;
                }
            }
     
            return false;
       }
       public element localiserparnom(String nom)
        {
           element ptr=tete;
       while(ptr.suivant!=null)
       {  
     
           if(ptr.livre.titre == nom)
               return  ptr;
       }
           return null;
       }
     /* public element supprimer(element a,String titreasuppr) 
       {   
           
           
       }*/
       public void afficher()
       {
           element pta=this.tete;
           while(pta.suivant!=null)
                                {
     
                                   System.out.print("["+pta.livre.titre +"\t"+pta.livre.auteur+"\t"+pta.livre.edition + "\t"+pta.livre.categorie +"]" );                                
     
                                    pta=pta.suivant;
                                }
       }
    class test
    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    public class Main {
    //version 2.0 en liste chainéé
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            int choix,sortir=0,choix2,categorie;                    
            Scanner input=new Scanner(System.in);     
            catalogue cata=new catalogue();                
            element test=new element();
           // test=cata.tete;//je sai il va donnez la refference mais la question  c'est esr ce que je modifier element tete va ce modifier?
            String auteur;
            String edition;
            String titre;        
            String nouveautitre;
            do{                               
                    System.out.println("--------------------MENU-------------------------");                
                    System.out.println("1-ajouter un nouveau livre dans catallogue (bza3te:d)");
                    System.out.println("2-supprimer un livre du catallogue (f3arti lina rassna:d)");
                    System.out.println("3-modifier les donnees du livre (wabzafe:d)");
                    System.out.println("4-classer votre catallogue (wa3ya9a hadi:d)");
                    System.out.println("5-afficher le catallogue (zwina hadi:d)");
                    System.out.println("6-pour sortir (ouuuuuuuufff hnitina:d)");          
                    choix = input.nextInt();
                    switch (choix) {                   
                        case 1:
                            {
                                System.out.println("entrez le titre du livre");
                                titre = input.next();
                                System.out.println("entrez le nom de l'auteur du livre");
                                auteur = input.next();
                                System.out.println("entrez l'edition du livre");
                                edition = input.next();
                                System.out.println("entrez la categorie du livre entre 0 a 5 ");
                                categorie = input.nextInt();                          
                                element ptr=cata.tete;
                                while(ptr.Getsuivnat()!=null)
                                {
                                    ptr=ptr.suivant;
                                }
     
                                cata.Ajouteralarriere(new livre(titre,auteur,edition,categorie),ptr);
                            }
                            break;
                      /*  case 2:
                            {
                                System.out.println("entrez le nom du livre que vous voulez supprimer");
                                String suppr = input.next();     
                                liste = cata.supprimer(liste, suppr);
                                
                            }
                            break;*/
                     /*   case 3:
                            {
                                System.out.println("entrez le titre du livre que vous voulez modifier");
                                titre = input.next();
                                System.out.println("entrez le titre du livre");
                                nouveautitre = input.next();
                                System.out.println("entrez le nom de l'auteur du livre");
                                auteur = input.next();
                                System.out.println("entrez l'edition du livre");
                                edition = input.next();
                                System.out.println("entrez la categorie du livre");
                                categorie = input.nextInt();
                                liste=cata.Modifier(liste, titre,nouveautitre , auteur, edition, categorie);
                                
                            }
                            break;*/
                        /*case 4:
                            {
                                System.out.println("-------------------menu du trier---------------------------------");
                                System.out.println("1-classer votre catallogue par titre");
                                System.out.println("2-classer votre catallogue par auteur");
                                System.out.println("3-classer votre catallogue par edition");
                                System.out.println("4-classer votre catallogue par categorie");
                                choix2 = input.nextInt();
                                switch (choix2) {
                                    case 1:
                                        {
                                            cata.ClasserTitre(liste);
                                        }
                                        break;
                                    case 2:
                                        {
                                            cata.ClasserparAuteur(liste);
                                        }
                                        break;
                                    case 3:
                                        {
                                            cata.ClasserparEdition(liste);
                                        }
                                        break;
                                    case 4:
                                        {
                                            cata.ClasserparCategorie(liste);
                                        }
                                        break;
                                        default:System.out.println("entrez s'il vou plait un nombre entre 1 et 7  (ou bla 3yaka) " );
                            break;
                                    
                                        
                                    }
                                    
                            }break;*/
                        case 5:
                            {
     
                                cata.afficher();
     
                            }
                            break;
                        case 6:
                            {
                                System.out.print("si vous ete vraiment sur de sortir tapez 6");
                                sortir = input.nextInt();
                            }
                            break;
                             default:System.out.println("entrez s'il vou plai un nombre entre 1 et 6  (ou bla 3yaka) " );
                            break;
                    }                
     
     
     
            }while(sortir !=6);
            // TODO code application logic here
        }
     
    }//@conception and creation naoufal el haddad
    et merci les amis pour votre d'aide
    ah voila l'erreur qui me donne a pres l'exuction


    Exception in thread "main" java.lang.NullPointerException
    at cataloguedelivreenlistechainees.catalogue.afficher(catalogue.java:66)
    at cataloguedelivreenlistechainees.test.main(Main.java:119)
    Java Result: 1

    et merci les amis pour tous

  2. #2
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    J'ai pas lu en détail mais il me semble qu'il y a une erreur de logique.

    ton while dans afficher devrait pas être plutot :
    (enfin c'est que je ferais moi meme si je comprends pas comment dans ton cas il traite le dernier élément de ta liste .)

  3. #3
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 22
    Par défaut
    non c'est pas çà mon ami j'ai les changés mai le même problème ce pose
    merci en tous cas

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Utilise une java.util.LinkedList ! Tu peux ajouter des élément en tête ou queue de liste.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 22
    Par défaut
    oui je sait qu'il y a cette bibliothèque mai le problème c'est un tp de classe et le prof nous oblige de crée notre propre liste son utiliser des class déjà existé
    merci mon ami

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/03/2009, 10h27
  2. [DOM] Ajouter des nouveaux élements depuis un nouveau fichier dans un fichier XML existant
    Par nettynet dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 17/10/2007, 08h07
  3. Une fonction qui permette d'ajouter des séparateurs...
    Par Empty_body dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/04/2006, 13h23
  4. Ajouter des nouveaux package à mon projet
    Par mikky dans le forum JBuilder
    Réponses: 3
    Dernier message: 31/03/2005, 07h54

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