Examen Java SMI S6 / Mai 2018
Prof. Abdessamad Belangour
1 @Override
public int compareTo(Etudiant etudiant) {
return this.nom.compareTo(etudiant.nom);
}
2 public PFE(String sujet, Encadrant encadrant) {
this.sujet = sujet;
this.encadrant = encadrant;
this.groupe = new TreeSet();
}
3 public class MaxEtudiantsDepassé extends Exception {
public MaxEtudiantsDepassé() {
super("Exception : Le nombre maximum par groupe est atteint");
}
}
4 public void ajouterGroupe(Set<Etudiant> groupe) throws MaxEtudiantsDepassé {
if (this.groupe.size() + groupe.size() > 3) {
throw new MaxEtudiantsDepassé();
} else {
this.groupe.addAll(groupe);
for (Etudiant e : groupe) {
e.setProjet(this);
}
}
}
5 public Encadrant(String nom, Set<PFE> projets) {
this.nom = nom;
this.projets.addAll(projets);
}
6 public void supprimerProjet(PFE projet) {
if ((this.projets.isEmpty()) && (this.projets.contains(projet))) {
this.projets.remove(projet);
}
}
7 public int NombreEtudiantsParEncadrant() {
int total=0;
for (PFE pfe:projets){
total+=pfe.getGroupe().size();
}
return total;
}
8 public Responsable(String nom, Set<PFE> projets) {
super(nom, projets);
listEncadrants=new ArrayList<Encadrant>();
1
}
Page
Examen Java SMI S6 / Mai 2018
Prof. Abdessamad Belangour
9 public void echangerEtudiants(Etudiant etudiant1, Etudiant etudiant2)throws
EtudiantSansPFEException {
PFE pfe1 = etudiant1.getProjet();
PFE pfe2 = etudiant2.getProjet();
if ((pfe2!=null)&&(pfe2!=null)){
pfe1.remplacerEtudiant(etudiant1, etudiant2);
pfe2.remplacerEtudiant(etudiant2, etudiant1);}
else throw new EtudiantSansPFEException();
}
10 public void transfererGroupe(PFE pfeSource, String NouveauSujet, Encadrant
nouveauEncadrant)throws PFESansGroupeException{
if (pfeSource.getGroupe().size()!=0){
PFE nouveauPFE=new PFE(NouveauSujet,nouveauEncadrant);
nouveauPFE.setGroupe(pfeSource.getGroupe());
pfeSource.viderGroupe();}
else throw new PFESansGroupeException();
}
11 public List<Etudiant> getListEtudiantsTriée(){
List<Etudiant> listeEtudiants=new ArrayList<Etudiant>();
for (Encadrant enc:listEncadrants){
for(PFE pfe:enc.getProjets()){
listeEtudiants.addAll(pfe.getGroupe());
}
}
listeEtudiants.sort(null);
return listeEtudiants;
}
12 public void repartirPFE(Set<PFE> projets,List<Etudiant> etudiants){}
2
Page