0% ont trouvé ce document utile (0 vote)
67 vues8 pages

tp5 Correction

Le document présente une implémentation de classes Java pour gérer des étudiants dans une école, avec des sous-classes pour différents types d'étudiants. Il inclut des méthodes pour ajouter des étudiants, rechercher des étudiants, calculer des moyennes et gérer les absences. Des exceptions personnalisées sont également définies pour gérer les cas d'étudiants déjà inscrits ou inexistants.

Transféré par

Chadha Athymny
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
67 vues8 pages

tp5 Correction

Le document présente une implémentation de classes Java pour gérer des étudiants dans une école, avec des sous-classes pour différents types d'étudiants. Il inclut des méthodes pour ajouter des étudiants, rechercher des étudiants, calculer des moyennes et gérer les absences. Des exceptions personnalisées sont également définies pour gérer les cas d'étudiants déjà inscrits ou inexistants.

Transféré par

Chadha Athymny
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

public class Etudiant {

private int identifiant;

private String nom;

private String prenom;

private float moyenne;

public Etudiant(int identifiant, String nom, String prenom, float moyenne) {

this.identifiant = identifiant;

this.nom = nom;

this.prenom = prenom;

this.moyenne = moyenne;

public int getIdentifiant() {

return identifiant;

public String getNom() {

return nom;

public String getPrenom() {

return prenom;

public float getMoyenne() {

return moyenne;
}

public boolean equals(Object obj) {

if (obj == this) {

return true;

if (!(obj instanceof Etudiant)) {

return false;

Etudiant etudiant = (Etudiant) obj;

return this.identifiant == etudiant.identifiant && Objects.equals(this.nom, etudiant.nom);

public String toString() {

return "Identifiant : " + identifiant + ", Nom : " + nom + ", Prénom : " + prenom + ", Moyenne : " +
moyenne;

// Méthode à implémenter par les sous-classes

public abstract void ajouterUneAbsence();

public class Etudiant3eme extends Etudiant {

private String branche;

public Etudiant3eme(int identifiant, String nom, String prenom, float moyenne, String branche) {

super(identifiant, nom, prenom, moyenne);

this.branche = branche;

public String getBranche() {


return branche;

public void ajouterUneAbsence() {

this.moyenne -= 0.5;

public class EtudiantAlternance extends Etudiant {

private int salaire;

public EtudiantAlternance(int identifiant, String nom, String prenom, float moyenne, int salaire) {

super(identifiant, nom, prenom, moyenne);

this.salaire = salaire;

public int getSalaire() {

return salaire;

public void ajouterUneAbsence() {

this.setSalaire(this.getSalaire() - 50);

@Override

public String toString() {

return "Etudiant alternant : " + super.toString() + ", salaire=" + salaire + " DT";

}
}

public class Ecole {

private String nom;

private Etudiant[] etudiants;

private int nbEtudiants;

public Ecole(String nom) {

this.nom = nom;

this.etudiants = new Etudiant[500];

this.nbEtudiants = 0;

public int rechercherEtudiant(Etudiant e) {

for (int i = 0; i < nbEtudiants; i++) {

if (etudiants[i].equals(e)) {

return i;

return -1;

public void ajouterEtudiant(Etudiant e) {

// Vérifier si l'étudiant est déjà inscrit

if (rechercherEtudiant(e) != -1) {

System.out.println("L'étudiant est déjà inscrit à cette école.");

return;

// Vérifier si l'école est pleine


if (nbEtudiants == 500) {

System.out.println("L'école est pleine, impossible d'ajouter un nouvel étudiant.");

return;

// Ajouter l'étudiant à l'école

etudiants[nbEtudiants] = e;

nbEtudiants++;

// Afficher un message de confirmation

System.out.println("L'étudiant a été ajouté à l'école.");

public float getMoyenneDes3A() {

int count = 0;

float sum = 0;

for (Etudiant etudiant : etudiants) {

if (etudiant instanceof Etudiant3eme) {

count++;

sum += etudiant.getMoyenne();

return count > 0 ? sum / count : 0;

public float moyenneSalaireAlternants() {

int nbAlternants = 0;

int sommeSalaires = 0;
for (int i = 0; i < nbEtudiants; i++) {

if (etudiants[i] instanceof EtudiantAlternance) {

nbAlternants++;

sommeSalaires += ((EtudiantAlternance) etudiants[i]).getSalaire();

if (nbAlternants > 0) {

return sommeSalaires / (float) nbAlternants;

} else {

return 0;

@Override

public String toString() {

StringBuilder sb = new StringBuilder();

sb.append("Ecole : ").append(nom).append("\n");

for (int i = 0; i < nbEtudiants; i++) {

sb.append(etudiants[i].toString()).append("\n");

return sb.toString();

public void changerEcole(Etudiant etd, Ecole e) {

int index = rechercherEtudiant(etd);

if (index != -1) { // si l'étudiant est trouvé dans l'école actuelle

if (e.rechercherEtudiant(etd) == -1) { // si l'étudiant n'est pas déjà inscrit dans la nouvelle école

etudiants[index] = null; // on supprime l'étudiant de l'école actuelle


etd.setEcole(e); // on met à jour l'école de l'étudiant

e.ajouterEtudiant(etd); // on ajoute l'étudiant dans la nouvelle école

System.out.println("Changement d'école effectué avec succès pour l'étudiant " +


etd.getNomComplet());

} else {

System.out.println("L'étudiant " + etd.getNomComplet() + " est déjà inscrit dans l'école " +
e.getNom());

} else {

System.out.println("L'étudiant " + etd.getNomComplet() + " n'est pas inscrit dans cette école.");

public class EtudiantExisteException extends Exception {

public EtudiantExisteException() {

super("L'étudiant existe déjà dans cette école !");

// Ajouter etudiant modifié avec exception (TODO21)

public void ajouterEtudiant(Etudiant e) throws EtudiantExisteException {

if (this.rechercherEtudiant(e) != -1) {

throw new EtudiantExisteException("L'étudiant " + e.getIdentifiant() + " est déjà inscrit à cette
école.");

if (this.nbEtudiants < 500) {

this.etudiants[this.nbEtudiants] = e;

this.nbEtudiants++;

}
//TODO 22

public void changerEcole(Etudiant etd, Ecole e) throws EtudiantInexistantException,


EtudiantExisteException {

int index = rechercherEtudiant(etd);

if (index == -1) {

throw new EtudiantInexistantException();

if (e.rechercherEtudiant(etd) != -1) {

throw new EtudiantExisteException();

// L'étudiant existe dans cette école et n'existe pas dans la nouvelle école

// On peut donc le supprimer de cette école et l'ajouter à la nouvelle école

etudiants.remove(index);

e.ajouterEtudiant(etd);

Vous aimerez peut-être aussi