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; } }
Partager