Partage
  • Partager sur Facebook
  • Partager sur Twitter

Collection et tri de donnée

Sujet résolu
    2 mars 2015 à 11:35:21

    Bonjour ,

    Je cherche a m'entrainer pour l'utilisation de l'ArrayList pour générer un liste de manière dynamique et souple pour ajouter et supprimer des éléments. Je me suis basé sur un exercice qui prend en compte l’entrée du nom  ,du prénom d’élève,deux notes et qui affiche également sa moyenne et tous sa dans la console. J'ai conçut une classe Cursus qui a pour but de regrouper le total d’étudiant.C'est a travers cette classe que j'ajouterais ou supprimerais un élève .

    Je vous présente ci joint mon implémentation qui ne compile pas je ne saurais expliquer pourquoi  ??? :(

    J'ai séparer mon Main et mes Classes donc voila qu'est ce que vous en pensez ? Il y a t-il mieux a faire ? Quel conseil pourriez vous m'apportez svp ?

    PS: Je cherche aussi a savoir comment vous faite pour afficher vos code source comme sur Notepad++(avec la coloration syntaxique) sur les problèmes et les solutions que vous poster sur ce Forum.J'ai vu que vous le faite souvent je trouve sa efficace dans le sens ou l'on peut cibler ou se trouve nos erreurs grâce au numéro de ligne.

    Est ce une capture d’écran que l'on envoie en pièce jointe ou autre chose ?

    Merci beaucoup pour les réponses que vous aller apporter a mes questions.

    Mes Classes :


    public class BtsTraining {
        /*LES COLLECTIONS ET LES TRI  */

        public class Etudiant{
           
            //les données caracteristiques au etudiants
            private String nom,prenom;
            private double [] notes,moyenne;
           
            //les comportements
            public Etudiant(){
                Scanner sc = new Scanner(System.in);
                System.out.println("Entrer le nom de L'etudiant");
                nom=sc.nextLine();
                System.out.println("Entrer le prenom de l'etudiant");
                prenom=sc.nextLine();
                System.out.println("combien de note pour l'etudiant");
                int nombre =sc.nextInt();
                notes= new double [nombre];
                for (int i = 0; i < notes.length; i++) {
                    System.out.println("entre la note n° "+i+1+" : ");
                    notes[i]= sc.nextDouble();
                }
                moyenne= calculMoyenne();
            }
           
            private double calculMoyenne();{
                double somme =0.0;
               
                for(double valeurNote : notes ) somme = somme + valeurNote;
                return somme/notes.length;
            }
            public void afficherUnEtudiant(){
                System.out.println("les notes de "+prenom+" "+nom+" sont :");
                for(double valeurNote : notes)
                System.out.println(" "+valeurNote);
                System.out.println("----------");
                System.out.println("Sa moyenne vaut "+moyenne);
            }
            public double quelleMoyenne(){
                return moyenne;
            }
        }
             
        public class Cursus{
           
        private ArrayList Liste ;
       
        private  Cursus() {   
        Scanner sc = new Scanner(System.in);
        System.out.println("Nombre d'etudiant : ");
        int nbetudiants= sc.nextInt();   
        Liste = new ArrayList ();   
        }
       
        public void ajouterUnEtudiants(){
           
            Liste.add(new Etudiant());
            /*Ici on ajoute un objet Etudiant a la liste*/
        }
       
        public void afficherLesEtudiants(){
           
            int nbEtudiants = Liste.size();
           
           
            if (nbEtudiants>0) {
               
                Etudiant tmp;
               
                for (int i = 0; i < nbEtudiants; i++) {
                    tmp=(Etudiant) Liste.get(i);
                    tmp.afficherUnEtudiant();   
                }
            }else System.out.println("Il n'ya pas d'etudiant dans cette liste");
        }
       
        }
       
    }

    Mon Main

    public class BtsTrainingMain {

        /*nous appelerons cette classe GestionCursus*/
       
        public static void main(String[] args) {
            byte choix = 0;
            Scanner sc = new Scanner(System.in);
            Cursus C = new Cursus();
            do{
            System.out.println("1.Ajoute un etudiant");
            System.out.println("2.Affiche la liste des eleves");
            System.out.println("3.Pour sortir");
            System.out.println("Votre choix : ");
            choix= sc.nextByte();
                switch (choix) {
               
                case 1:C.ajouterUnEtudiants();
                    break;

                case 2:C.afficherLesEtudiants();
                    break;
                   
                case 3: C.System.exit(0);
                    break;
                   
                default: System.out.println("Cette option n'existe pas ");
                }
        }while (choix != 3);
           
        }   

    }
    /*On considère que l'import de cursus a été deja fait*/

    • Partager sur Facebook
    • Partager sur Twitter
      2 mars 2015 à 11:49:00

      Bonjour,

      Pour afficher du code source dans un message, tu peux cliquer sur l'icone qui ressemble à </> au dessus de là où tu écris. Dans la fenêtre qui s'ouvre, tu choisis le langage et tu colles le code que tu souhaites.

      Ensuite, pour ce qui concerne ton problème, peux tu mettre aussi le message d'erreur que te renvoie ton programme ?

      Merci

      -
      Edité par TwinkleMad 2 mars 2015 à 11:49:17

      • Partager sur Facebook
      • Partager sur Twitter
      A toi de jouer !
        2 mars 2015 à 14:23:58

        OK merci . En ce qui concerne le message d'erreur qu'affiche mon programme :

        Exception in thread "main" java.lang.Error: Unresolved compilation problems:
            Cursus cannot be resolved to a type
            Cursus cannot be resolved to a type

            at BtsTrainingMain.main(BtsTrainingMain.java:13)

        Ps: J'ai concut mon main dans un fichier qui s'appelle BtsTrainingMain.java et mes Classes dans un fichier qui s'appelle BtsTraining.java

        Merci

        • Partager sur Facebook
        • Partager sur Twitter
          2 mars 2015 à 14:34:37

          C.System.exit(0)

          Ya une fonction pour exit le systeme dans C ?

          Et sinon, ça peut etre que ton main ne voit pas la classe Cursus. Reessaie avec tout dans le même package pour voir

          -
          Edité par Maxime00 2 mars 2015 à 14:36:08

          • Partager sur Facebook
          • Partager sur Twitter
            2 mars 2015 à 15:14:01

            Peux tu éditer ton premier post pour rendre plus lisible ton code et avoir les numéros de lignes ?
            • Partager sur Facebook
            • Partager sur Twitter
            A toi de jouer !
              2 mars 2015 à 15:32:01

              import java.util.*;
              
              
              public class BtsTraining {
              	/*LES COLLECTIONS ET LES TRI  */
              
              	public class Etudiant{
              		
              		//les données caracteristiques au etudiants
              		private String nom,prenom;
              		private double [] notes,moyenne;
              		
              		//les comportements
              		public Etudiant(){
              			Scanner sc = new Scanner(System.in);
              			System.out.println("Entrer le nom de L'etudiant");
              			nom=sc.nextLine();
              			System.out.println("Entrer le prenom de l'etudiant");
              			prenom=sc.nextLine();
              			System.out.println("combien de note pour l'etudiant");
              			int nombre =sc.nextInt();
              			notes= new double [nombre];
              			for (int i = 0; i < notes.length; i++) {
              				System.out.println("entre la note n° "+i+1+" : ");
              				notes[i]= sc.nextDouble();
              			}
              			moyenne= calculMoyenne();
              		}
              		
              		private double calculMoyenne();{
              			double somme =0.0;
              			
              			for(double valeurNote : notes ) somme = somme + valeurNote;
              			return somme/notes.length;
              		}
              		public void afficherUnEtudiant(){
              			System.out.println("les notes de "+prenom+" "+nom+" sont :");
              			for(double valeurNote : notes)
              			System.out.println(" "+valeurNote);
              			System.out.println("----------");
              			System.out.println("Sa moyenne vaut "+moyenne);
              		}
              		public double quelleMoyenne(){
              			return moyenne;
              		}
              	}
              		 
              	public class Cursus{
              		
              	private ArrayList Liste ;
              	
              	private  Cursus() {	
              	Scanner sc = new Scanner(System.in);
              	System.out.println("Nombre d'etudiant : ");
              	int nbetudiants= sc.nextInt();	
              	Liste = new ArrayList ();	
              	}
              	
              	public void ajouterUnEtudiants(){
              		
              		Liste.add(new Etudiant());
              		/*Ici on ajoute un objet Etudiant a la liste*/
              	}
              	
              	public void afficherLesEtudiants(){
              		
              		int nbEtudiants = Liste.size();
              		
              		
              		if (nbEtudiants>0) {
              			
              			Etudiant tmp;
              			
              			for (int i = 0; i < nbEtudiants; i++) {
              				tmp=(Etudiant) Liste.get(i);
              				tmp.afficherUnEtudiant();	
              			}
              		}else System.out.println("Il n'ya pas d'etudiant dans cette liste");
              	}
              	
              	}
              	
              }
              

                     /*MON MAIN*/

              public class BtsTrainingMain {

                  /*nous appelerons cette classe GestionCursus*/
                 
                  public static void main(String[] args) {
                      byte choix = 0;
                      Scanner sc = new Scanner(System.in);
                      Cursus C = new Cursus();
                      do{
                      System.out.println("1.Ajoute un etudiant");
                      System.out.println("2.Affiche la liste des eleves");
                      System.out.println("3.Pour sortir");
                      System.out.println("Votre choix : ");
                      choix= sc.nextByte();
                          switch (choix) {
                         
                          case 1:C.ajouterUnEtudiants();
                              break;

                          case 2:C.afficherLesEtudiants();
                              break;
                             
                          case 3: C.System.exit(0);
                              break;
                             
                          default: System.out.println("Cette option n'existe pas ");
                          }
                  }while (choix != 3);
                     
                  }   

              }
              • Partager sur Facebook
              • Partager sur Twitter
                2 mars 2015 à 15:34:24

                     /*MON MAIN*/
                public class BtsTrainingMain {
                
                    /*nous appelerons cette classe GestionCursus*/
                   
                    public static void main(String[] args) {
                        byte choix = 0;
                        Scanner sc = new Scanner(System.in);
                        Cursus C = new Cursus();
                        do{
                        System.out.println("1.Ajoute un etudiant");
                        System.out.println("2.Affiche la liste des eleves");
                        System.out.println("3.Pour sortir");
                        System.out.println("Votre choix : ");
                        choix= sc.nextByte();
                            switch (choix) {
                           
                            case 1:C.ajouterUnEtudiants();
                                break;
                
                            case 2:C.afficherLesEtudiants();
                                break;
                               
                            case 3: C.System.exit(0);
                                break;
                               
                            default: System.out.println("Cette option n'existe pas ");
                            }
                    }while (choix != 3);
                Désolé petite erreur de manip voici mon Main
                • Partager sur Facebook
                • Partager sur Twitter
                  2 mars 2015 à 15:34:29

                  Je constate avec stupéfaction que ta classe Cursus et ta classe Etudiant sont dans la même classe BtsTraining.. Ca ne se fait pas en Java, ça ne veut même pas dire grand chose: une classe ne peut pas contenir d'autres classes, une classe représente un objet de ton système: soit un Cursus, soit un Etudiant.

                  Du coup, c'est pour ça que tu as une erreur au moment où tu veux instancier ta classe Cursus: java ne connait tout simplement cette classe puisqu'elle est "imbriquée" dans une autre.

                  Ce que je te conseille c'est de faire deux fichier distincts:

                  • Etudiant.java : tu y mets tout ton code de la classe Etudiant
                  • Cursus.java: tu y mets tout ton code de la classe Cursus
                  • Tu supprimes ton fichier BtsTraining.java qui ne t'es plus d'aucune utilité

                  Normalement tu ne devrais plus avoir de problème, et je te conseille de ne plus reproduire ce type de configuration qui n'a pas vraiment de sens d'un point de vue POO (programmation orientée objet).

                  -
                  Edité par TwinkleMad 2 mars 2015 à 15:42:38

                  • Partager sur Facebook
                  • Partager sur Twitter
                  A toi de jouer !
                    8 mars 2015 à 20:22:11

                    Merci pour tout ces conseils.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Collection et tri de donnée

                    × 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