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 :

Classes Etudiant et RepertoireEtudiants


Sujet :

avec Java

  1. #1
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 123
    Points : 66
    Points
    66
    Par défaut Classes Etudiant et RepertoireEtudiants
    Bonjour, j'ai fait une classe Etudiant et une classe RepertoireEtudiants qui stocke un tableau d'étudiants. Est-ce que vous pouvez me dire si je peux améliorer mon code, et si c'est correct ?

    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
    /**
     *Classe Etudiant non thread safe
     *Elle permet de créer un objet Etudiant
     *@author Benjamin Malaussene on 16/02/16
     *@version 1
     */
    public class Etudiant {
        private String prenom;
        private String nom;
        private int num;
        private static int nb=0;
     
        /**
         * Constructeur sans arguments
         */
        public Etudiant()
        {
            this.prenom="";
            this.nom="";
            nb++;
            this.num=nb;
        }
     
        /**
         * Constructeur avec affichage d'un message d'erreur si un des arguments est null
         * @param nom nom de l'étudiant
         * @param prenom prénom de l'étudiant
         *
         */
        public Etudiant(String prenom, String nom)
        {
            if(prenom!=null && nom!=null)
            {
                this.prenom=prenom.replaceAll("[^\\p{L}]", "");
                this.nom=nom.replaceAll("[^\\p{L}]", "");
                nb++;
                this.num=nb;
            }
            else
                System.out.println("Les arguments sont nuls.");
        }
     
        /**
         * Methode permettant d'accéder au prénom d'un etudiant
         * @return prenom prénom de l'étudiant
         */
     
        public String getPrenom() {
            return prenom;
        }
     
        /**
         * Methode permettant d'accéder au nom d'un etudiant
         * @return nom nom de l'étudiant
         */
        public String getNom() {
            return nom;
        }
     
        /**
         * Méthode permettant d'accéder au numéro d'un etudiant
         * @return num numéro de l'étudiant
         */
        public int getNum() {
            return num;
        }
     
        /**
         * Methode permettant de changer un nom
         * @param nom nouveau nom à attribuer
         */
        public void setNom(String nom) {
            this.nom = nom;
        }
     
        /**
         * Methode permettant de récuperer le nombre total d'etudiants
         * @see class Etudiant : utilisé pour déterminer le nombre maximum d'étudiants
         * @return nb nombre total d'étudiants créés
        */
        public static int getNb() {
            return nb;
        }
    }
    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
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    /**
     * Classe répertoire étudiants non thread safe
     * Elle permet de créer un tableau d'objets Etudiant
     * @author Benjamin Malaussene on 16/02/16
     * @version 1
     */
    public class RepertoireEtudiants {
        private int nbMax;
        private Etudiant tab[] = new Etudiant[nbMax];
        private int nbE;
     
        /**
         * Constructeur sans arguments dont le maximum est le nombre total d'étudiants créés
         */
     
        public RepertoireEtudiants()
        {
            this.nbE=0;
            this.nbMax=Etudiant.getNb();
        }
     
        /**
         * Constructeur qui permet de compter le nombre d'étudiants non nuls ou dont le nom n'est pas une chaine vide
         * @param val tableau des étudiants à mettre dans le répertoire
         *
         */
     
        public RepertoireEtudiants(Etudiant ... val) {
            if (!tabVide(val)){
                this.tab = val;
                this.nbMax = val.length;
                for(int i =0; i<val.length; i++){
                    if (val[i]!=null && !val[i].getNom().equals("")) this.nbE++ ;
                }
            }
            else
                System.out.println("Le tableau est vide.");
        }
     
        /**
         * Ajoute l'étudiant en paramètre lorsqu'une case du tableau est nulle ou le nom de l'étudiant est une chaine vide
         * @param e étudiant à ajouter
         * @return true si ajout étudiant ok
         * @return false sinon
         */
        public boolean ajouteEtudiant(Etudiant e)
        {
            if(this.nbE<this.nbMax)
            {
                for(int i=0;i<this.tab.length;i++)
                {
                    if(this.tab[i]==null || this.tab[i].getNom()=="")
                    {
                        this.tab[i]=e;
                        this.nbE++;
                        return true;
                    }        
                }
                return false;
            }
            else
                return false;
        }
     
        /**
         * Accesseur
         * @return nbE nombre d'étudiants du répertoire
         */
        public int getNbEtudiant()
        {
            return this.nbE;
        }
     
        /**
         * Accesseur
         * @return nbMax nombre maximum d'étudiants du répertoire
         */
        public int getNbMaxEtudiant()
        {
            return this.nbMax;
        }
     
        /**
         * Accesseur
         * @param numeroEtu numéro de l'étudiant dont on veut récupérer le nom
         * @return nom de l'étudiant correspondant au numéro
         * @return message d'erreur si le numéro n'existe pas.
         */
        public String getNom(int numeroEtu)
        {
            for(int i=0;i<this.tab.length;i++)
                if(tab[i].getNum()== numeroEtu)
                    return tab[i].getNom();
            return "Ce numero n'existe pas.";
        }
     
        /**
         * Méthode permettant d'obtenir le numéro d'un étudiant à partir de son nom
         * @param nom nom de l'étudiant dont on veut récupérer le numéro
         * @return numéros des étudiants correspondant à ce numéro s'il y en a plusieurs, ou affichage d'un message d'erreur si le nom n'existe pas
         */
        public StringBuffer getNumero(String nom)
        {
            StringBuffer resultatBuff = new StringBuffer("");
            StringBuffer vide = new StringBuffer("Ce nom n'existe pas.");
            for(int i=0;i<this.tab.length;i++)
            {
                if(this.tab[i].getNom().equalsIgnoreCase(nom))
                {
                    String res = String.valueOf(this.tab[i].getNum());
                    resultatBuff.append(res);
                    resultatBuff.append("-");
                }
            }
            if(resultatBuff.toString().equals("")) return(vide);
            else return resultatBuff;
        }
     
        /**
         * Méthode permettant de supprimer un etudiant dans le repertoire
         * L'étudiant passé en paramètre devient nul dans le tableau
         * @param e Etudiant à supprimer
         * @return true si suppression OK
         * @return false si suppression n'a pas marché
         */
        public boolean supprimeEtudiant (Etudiant e)
        {
            if(!tabVide(this.tab))
            {
                for(int i=0;i<this.tab.length;i++)
                {
                    if(this.tab[i]==e)
                    {
                        this.tab[i]=null;
                        this.nbE--;
                        return true;
                    }
                }
                return false;
            }
            else
                return false;
        }
     
        /**
         * Méthode permettant d'afficher les adresses des étudiants du répertoire
         */
        public void affiche()
        {
            for(int i=0;i<tab.length;i++)
                System.out.println(tab[i]);
        }
     
        //Test Tableau vide ou null
        /**
         * Methodes de test si un tableau d'etudiant est vide ou null
         * @param tab tableau d'étudiants
         * @return true si tab vide
         * @return false si tab non vide
         */
        private static boolean tabVide (Etudiant tab[]){
     
            if (tab==null || tab.length==0) return true;
            else return false;
     
     
        }
    }

  2. #2
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    Hmmmf
    Pourquoi permettre de créer un étudiant vide? (en plus setNom -> on peut donc changer de nom ... Moui)

    par ailleurs as tu entendu parler des exceptions pour gérer les erreurs?

  3. #3
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 123
    Points : 66
    Points
    66
    Par défaut
    Bonjour Shadoko,

    A ton avis je dois enlever le constructeur avec l'étudiant vide ? Sinon pour changer le nom, c'est au cas où un étudiant se marie
    J'ai pas encore vu les exceptions malheureusement.

    A plus !

  4. #4
    Membre éprouvé Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Points : 1 105
    Points
    1 105
    Par défaut
    Dans ce cas, tu peux plutôt supprimer le setter pour le nom par exemple, et supprimer le constructeur sans paramètres car tout étudiant aura forcément un nom.

Discussions similaires

  1. [Stage] Etudiant Classe préparatoire 1
    Par arckaon dans le forum Demandes
    Réponses: 0
    Dernier message: 21/05/2013, 15h49
  2. Classe pour la création d'un graphe xy
    Par Bob dans le forum MFC
    Réponses: 24
    Dernier message: 03/12/2009, 18h20
  3. Creation classe etudiant
    Par mihaispr dans le forum C#
    Réponses: 2
    Dernier message: 07/07/2009, 10h00
  4. [MySQL] Requête "classe, etudiant et couleur"
    Par lex_22 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/05/2008, 00h38
  5. Réponses: 31
    Dernier message: 30/03/2006, 17h57

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