Voici la solution pour les objets modèle de l’article Objets modèle pour D’étudiante à professionnelle TI : Un Guide – Helene Voyer, autrice. Cette solution objet modèle de l’étude de cas vous aidera à comprendre la démarche. Et bien que vous avez créé les objets modèles sans problème majeur, ces classes ne resteront pas telle quelle pour longtemps.
Voici UNE solution possible de l’exercise de l’article Objets modèle pour D’étudiante à professionnelle TI : Un Guide – Helene Voyer, autrice
Il y a plus d’une façon d’implémenter les objets modèle. Avec de l’expérience vous allez penser à des détails comme est-ce que cet objet doit être abstrait ou statique ? Même chose pour quelle structure de données que vous utiliserez le plus souvent. Ici, j’ai utilisé des tableaux, mais des listes chaînées, des HashMaps, des vecteurs, tous sont possibles et valides aussi.
Solution de L’objet modèle Cours
package ca.editions.helene.voyer.calcul.notes.modele;public abstract class Cours { // créer et géré par le processus métier GestionCours private String codeCours; private String titreCours; private Cours[] prerequis; private int unites; public Cours(String codeCours, String titreCours, int unites) { this.codeCours = codeCours; this.titreCours = titreCours; this.unites = unites; } public String getCodeCours() { return codeCours; } public void setCodeCours(String codeCours) { this.codeCours = codeCours; } public String getTitreCours() { return titreCours; } public void setTitreCours(String titreCours) { this.titreCours = titreCours; } public int getUnites() { return unites; } public void setUnites(int unites) { this.unites = unites; } public Cours[] getPrerequis() { return prerequis; } public void setPrerequis(Cours[] prerequis) { this.prerequis = prerequis; }}
Solution de L’objet modèle CoursPremierCycle
package ca.editions.helene.voyer.calcul.notes.modele;import java.util.ArrayList;public class CoursPremierCycle extends Cours { private ArrayList etudiants = new ArrayList<>(); public CoursPremierCycle(String codeCours, String titreCours, int unites, int nombreDeTravauxPratiques, double ponderationTravauxPratique, double ponderationExamenMiSession, double ponderationExamenFinSession) { super(codeCours, titreCours, unites, nombreDeTravauxPratiques, ponderationTravauxPratique, ponderationExamenMiSession, ponderationExamenFinSession); } public ArrayList getEtudiants() { return etudiants; } public void ajouterEtudiant(Etudiant etudiant) { etudiants.add(etudiant); }}
L’objet modèle eTUDIANT
package ca.editions.helene.voyer.calcul.notes.modele;public abstract class Etudiant { // le contenu de cette classe est appropriée pour le travail pratique mais pas // pour notre // solution logicielle professionnelle public String nom; public TravailPratique tp1; public TravailPratique tp2; public TravailPratique tp3; public ExamenMiSession examenMiSession; public ExamenFinSession examenFinDeSession; public double notePonderee; public Etudiant(String nom, TravailPratique tp1, TravailPratique tp2, TravailPratique tp3, ExamenMiSession examenMiSession, ExamenFinSession examenFinDeSession) { this.nom = nom; this.tp1 = tp1; this.tp2 = tp2; this.tp3 = tp3; this.examenMiSession = examenMiSession; this.examenFinDeSession = examenFinDeSession; } public void setNom(String unNom) { this.nom = unNom; } public String getNom() { return this.nom; } public void setTp1(TravailPratique unTp1) { this.tp1 = unTp1; } public TravailPratique getTp1() { return this.tp1; } public void setTp2(TravailPratique unTp2) { this.tp2 = unTp2; } public TravailPratique getTp2() { return this.tp2; } public void setTp3(TravailPratique unTp3) { this.tp3 = unTp3; } public TravailPratique getTp3() { return this.tp3; } public void setExamenMiSession(ExamenMiSession unExamenMiSession) { this.examenMiSession = unExamenMiSession; } public ExamenMiSession getExamenMiSession() { return this.examenMiSession; } public void setExamenFinSession(ExamenFinSession unExamenFinDeSession) { this.examenFinDeSession = unExamenFinDeSession; } public ExamenFinSession getExamenFinSession() { return this.examenFinDeSession; } public double getNotePonderee() { return this.notePonderee; } public void setNotePonderee(double uneNotePonderee) { this.notePonderee = uneNotePonderee; }}
L’objet modèle EtudiantPremierCycle
package ca.editions.helene.voyer.calcul.notes.modele;public class EtudiantPremierCycle extends Etudiant { public String nom; // chaque cours n'a pas nécessairement 3 travail pratiques // comment on peut refactoriser pour permettre un nombre // variable de travaux pratiques ? public TravailPratique tp1; public TravailPratique tp2; public TravailPratique tp3; public ExamenMiSession examenMiSession; public ExamenFinSession examenFinDeSession; public double notePonderee; public EtudiantPremierCycle(String nom, TravailPratique tp1, TravailPratique tp2, TravailPratique tp3, ExamenMiSession examenMiSession, ExamenFinSession examenFinDeSession) { super(nom, tp1, tp2, tp3, examenMiSession, examenFinDeSession); this.nom = nom; this.tp1 = tp1; this.tp2 = tp2; this.tp3 = tp3; this.examenMiSession = examenMiSession; this.examenFinDeSession = examenFinDeSession; } public String getNom() { return nom; } public TravailPratique getTp1() { return tp1; } public TravailPratique getTp2() { return tp2; } public TravailPratique getTp3() { return tp3; } public ExamenMiSession getExamenMiSession() { return examenMiSession; } public ExamenFinSession getExamenFinDeSession() { return examenFinDeSession; } }
Cet article fait partie d’une série consacrée aux exercices du livre D’étudiante à professionnelle TI : Du code académique aux solutions logicielles professionnelles. Restez à l’affût des prochaines parutions.
Laisser un commentaire