TP5 : Classe Etudiant et Professeur


But :
Créer l’application suivante :

La partie Saisie (à droite) permet de saisir nom, prénom et age ainsi qu’un choix entre Professeur ou Etudiant qui détermine si l’on saisit sa classe ou sa matière d’enseignement. Le bouton Enregistrer permet la validation des renseignements et leur sauvegarde dans un ArrayList de Personne.
La partie Information (à gauche) permet l’affichage des informations saisies à droite suivant différents critères :
- par ordre alphabétique ou du plus jeune au plus vieux (choix par radioBouton)
- liste des professeurs, des étudiants ou de tous grâce au trois boutons du bas.
Toutes les informations seront affichées au milieu dans une TextBox munie d’un ascenseur si la longueur des informations dépasse le cadre prédéfini.
En vous aidant du diagramme de classes (imposé) suivant, programmer, chronologiquement si possible, les phases donnant des indications complémentaires :
- (2Pts) Créer la classe Personne, son constructeur initialisera ses 3 attributs, ses 3 méthodes retourneront leur attribut respectif. ToString retourne une string contenant les informations des attributs « nom = …, prénom = …., age = …. ».
- (2Pts) Créer les deux classes Etudiant et Professeur, dérivant de Personne. Leur constructeur initialisera les attributs de Personne par son constructeur. Leurs 3 méthodes servent à initialiser ou retourner leur attribut (ToString retourne le ToString de Personne plus l’information spécifique à la classe).
- (3Pts) Créer la classe Affichage dérivant de Form. Vous devez obligatoirement reproduire l’IHM donnée en utilisant 2 Panel (Information et Saisie). Vous pouvez la créer manuellement ou à l’aide du designer. Donnez des noms de variables logiques.
- (1Pts) Il ne peut y avoir qu’un seul bouton radio actif par groupe (Etudiant/Professeur et Alphabétique/Ancienneté/Chronomogique). Noubliez pas de le rajouter sur le listing.
- (2Pts) Si le bouton radio Etudiant est actif, le texte du dernier champ du Panel de droite sera Classe sinon ce sera Matière. Le changement se fait lors du clic sur un des boutons. Dans l’exemple, c’est Classe.
- (1Pts) Créer la classe ListePersonne. L’attribut liste sert à enregistrer toutes les personnes saisies dans l’ordre d’arrivée. L’attribut indexNom servira à l’indexation des personnes (Etudiant ou Professeur) dans l’ordre alphabétique
Ex : Dans l’ordre de saisie :
Dans liste : Dupont Martin Albert
Dans indexNom : 2 0 1
L’attribut indexAge sert à l’index en fonction de l’age du plus petit au plus grand.
- (1Pt) Créer la méthode ajouter sans tenir compte de l’indexation pour l’instant (pour l’instant, vous ne rajoutez « nouvelle » que dans « liste ».
- (2Pts) Créer la méthode afficher sans tenir compte du deuxième paramètre, vous afficherez toutes les personnes dans l’ordre de saisie dans la RichTextBox.
- Tester les 2 méthodes de listePersonne en les incluant dans les 2 boutons :
- (1.5Pt) Enregistrer : si un champs est vide, un message s’affiche et l’enregistrement n’est pas validé. Sinon, un nouvel objet (new Etudiant ou Professeur) est sauvegardé dans listePersonne suivant le bouton radio validé (soit étudiant, soit professeur).
- (1.5Pt)Tous : affiche dans TextBox toutes les informations préalablement enregistrées de la liste dans l’ordre chronologique.
Remarque : Les exceptions ne sont pas gérées, ex : erreur de conversion String en int.
- (2Pts) En modifiant la méthode afficher de ListePersonne, tenir compte du 2em argument :
- 0 : affiche tous les enregistrements
- 1 : affiche que les Etudiants enregistrés
- 2 : affiche que les Professeurs enregistrés.
Testez cette modification en l’appliquant au trois boutons : Etudiant, prof, tous.
- (1Pts) Commentaire et netteté du programme.
Remarque : Pour l’instant, les tableaux d’index ne sont pas utilisés. Pour les plus rapides, utilisez les ArrayList servant d’indexation.

