Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arbre d'etudiant

    16 décembre 2014 à 14:03:12

    Salut Merci d'avance pour votre réponse :D

    Je suis débutant en java et j'ai trouve quelque difficulté a résoudre un TP qui est de crée un Arbre d’étudiant depuis un fichier et  trier (Arbre note entre [0,5[,[5,10[...).

    mon code est compose de Noeud,arbre,Etudiant,LesEtudiant et main 

    Noeud :

    package tp4;
    
    
    
    /**
     *
     * @author BASSAM
     */
    public class Noeud implements Cloneable
    {
        protected Object cle;
        protected Noeud fg,fd;
        public Noeud(){}
        public Noeud(Object cle)
        {
            this.cle=cle;
        }
        public Noeud(Object cle,Noeud fg,Noeud fd)
        {
            this.cle=cle;
            this.fg=fg;
            this.fd=fd;
        }
        
        @Override
        public Noeud clone () throws CloneNotSupportedException 
        {
            Noeud x=(Noeud)super.clone();
            x.fg=(x.fg!=null)?x.fg.clone():null;
            x.fd=(x.fd!=null)?x.fd.clone():null;
            return x;
            
        }
        
            
        
    }
    

    arbre

    package tp4;
    
    
    
    import java.io.*;
    import java.util.*;
    
    
    /**
     *
     * @author BASSAM
     */
    public class Abr implements Iterable,Cloneable 
    {
        protected Noeud racine;
        protected Comparator comp;
        public void infixe (Noeud p,List l)
        {
            if(p==null)return;
            infixe(p.fg,l);
            l.add(p.fg);
            infixe(p.fd,l);
        }    
        public List infixe()
        {
            List res=new LinkedList();
            infixe(racine,res);
            return res;
            
        }
              
        
        public Iterator iterator()
        {
            return infixe().iterator();
    
        }
        public int comparer (Object o1,Object o2)
        {
            if(comp==null) return ((Comparable)o1).compareTo(o2);
            return comp.compare(o1, o2);
        }
    
        
    }
    

    Etudiant

    package tp4;
    
    
    
    
    /**
     *
     * @author BASSAM
     */
    public class Etudiant 
    {
        private String code;
        private double note;
        public Etudiant(){}
        public Etudiant(String code,double note)
        {
            this.code=code;
            this.note=note;
        }
        public Etudiant(double note)
        {
            this.note=note;
        }
       public double getnote() {return note; }
       @Override 
       public String toString()
       {
           return "code:"+code+"\t"+"note"+note;
       }
       
        
        
    }
    

    LesEtudiant

    package tp4;
    
    
    
    import java.io.*;
    import java.util.*;
    
    
    /**
     *
     * @author BASSAM
     */
    public class LesEtudiants extends Abr
    {
        void Lire(File f) throws FileNotFoundException
        {
            Scanner scr=new Scanner(f);
            List le=new LinkedList();
            while(scr.hasNext())
            {  
                Etudiant e=new Etudiant(scr.next(),scr.nextDouble());
                Noeud n= new Noeud(e);
                this.infixe(n,le);
               
                
            }    
        }   
    
       
        public LesEtudiants Dans(double inf, double sup)
        {
            LesEtudiants l= new LesEtudiants();
            List le=new LinkedList();
            //Noeud n=new Noeud(new Etudiant(10),new Noeud(new Etudiant(5)),new Noeud(new Etudiant(15)));
            //l.infixe(n, le);
            while(this.iterator().hasNext())
            {
                Etudiant e= (Etudiant )this.iterator().next();
                Noeud n= new Noeud(e);
                if(e.getnote()>=inf && e.getnote()<sup)l.infixe(n,le);
            }    
            return l;    
        }
        public List[] groupes(File f) throws FileNotFoundException 
        {
            List[] l=new LinkedList[4];
            this.Lire(f);
          
            l[0].add(this.Dans(0, 5));
            l[1].add(this.Dans(5, 10));
            l[2].add(this.Dans(10, 15));
            l[3].add(this.Dans(15, 20));
               
            return l;
            
        }        
            
                
            
               
                   
            
            
        
            
           
        
                
            
            
            
            
        
    }
    

    Main

    package tp4;
    import java.io.*;
    import java.util.*;
    
    public class TP4 {
    
        /**
         * @param args the command line arguments
         * @throws java.io.FileNotFoundException
         */
        public static void main(String[] args) throws FileNotFoundException 
        {
         File f;
            f= new File("etude.txt");
          LesEtudiants l=new  LesEtudiants();
            List[]le=l.groupes(f);
          
         
          for(int i=0;i<4;i++)
              System.out.println(le[i]);
         
                 
          
        
       }
        
    }
    


    Merci infiniment pour votre aide :D



    • Partager sur Facebook
    • Partager sur Twitter
      16 décembre 2014 à 14:18:45

      Bonjour,

      Quel est le problème exactement ?

      • Partager sur Facebook
      • Partager sur Twitter
        16 décembre 2014 à 17:28:26

        desole le probleme, il y a deux j ai une erreur "nullexception" dans la methode groupe (lesetudiants) et le deuxieme probleme le gros c que le code ne fait rien ne me donne rien, Merci

        • Partager sur Facebook
        • Partager sur Twitter
          16 décembre 2014 à 17:33:51

          tu peux envoyer le stackTrace complet de ta "nullexception" ?

          Pour ton deuxieme probleme, il y a de fortes chances quen resolvant le premier, on resolve celui la au passage ^^

          • Partager sur Facebook
          • Partager sur Twitter
            16 décembre 2014 à 18:02:48

            j ai pas mon pc avec moi la mais c etait dans la ligne 49 "nullpointerexception" de "lesetudiants"  le premier "add" (l [0].add...)
            • Partager sur Facebook
            • Partager sur Twitter
              16 décembre 2014 à 19:23:32

              tu as mal initialisé ta liste, je te conseille de regarder les exemples présents sur cette page : http://www.tutorialspoint.com/java/java_linkedlist_class.htm
              • Partager sur Facebook
              • Partager sur Twitter
                16 décembre 2014 à 23:17:34

                Merci la j'ai plus d'erreur mais j'ai un drôle de résultat :/

                mon nouveau code

                methode groupe :

                public List groupes(File f) throws FileNotFoundException 
                    {
                        List l=new LinkedList();
                        Lire(f);
                     
                      
                        l.add(Dans(0, 5));
                        l.add(Dans(5, 10));
                        l.add(Dans(10, 15));
                        l.add(Dans(15, 20));
                           
                        return l;
                        
                    }

                main :

                package tp4;
                import java.io.*;
                import java.util.*;
                
                public class TP4 {
                
                  
                    public static void main(String[] args) throws FileNotFoundException 
                    {
                     File f;
                        f= new File("etude.txt");
                      LesEtudiants l=new  LesEtudiants();
                        List le=l.groupes(f);
                      
                     
                      for(int i=0;i<4;i++)
                          System.out.println(le.get(i));
                     
                             
                      
                    
                   }
                    
                }
                

                quand j’exécute c m'affiche c :

                tp4.LesEtudiants@d93b30
                tp4.LesEtudiants@16d3586
                tp4.LesEtudiants@154617c
                tp4.LesEtudiants@a14482

                ???


                • Partager sur Facebook
                • Partager sur Twitter
                  17 décembre 2014 à 12:26:34

                  bin, t'as demandé d'afficher un objet, donc forcement...

                  prépare dans ta classe étudiant une methode d’affichage, et appelle la dans ton println()

                  ps : ton for est a corriger, il  a des manières propres de parcourir une List (les iterators)

                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 décembre 2014 à 0:13:39

                    désole de ma réponse tardive mais je sais pas comment cree la méthode "tostring' dans les etudiants qui englobe tt parce j'ai des groupes, des listes, arbre je me retrouve plus :/

                    Et Merci

                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 décembre 2014 à 17:18:58

                      Dans Etudiant, ajoute une méthode toString avec par exemple un system out qui écrit les caractéristiques de l'étudiant, et appelle cette fonction dans ta boucle for ( le.get(i).toString(); )

                      -
                      Edité par Maxime00 22 décembre 2014 à 17:19:40

                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 décembre 2014 à 17:22:50

                        Juste une parenthèse sur les normes java :

                        normalement un toString renvoie (comme son nom l'indique) un String qui décrit simplement l'état de l'objet.

                        Le system.out se fait normalement en dehors du toString.

                        Au résultat ça ne change rien mais c'est toujours mieux de coder en essayant d'être proche des normes (un bon pli a prendre)

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Arbre d'etudiant

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown