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