TP5 : Etudiant-professeur (héritage)


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 tableau 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 dans une console.
En vous aidant du diagramme de classes (imposé) suivant, programmer, chronologiquement si possible, les phases donnant des indications complémentaires :
- 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 = …. ».
- 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).
- Créer le main. Vous devez obligatoirement reproduire l’IHM donnée en utilisant des invites (Information et Saisie).
- Il ne peut y avoir qu’un seul choix actif (Etudiant/Professeur et Alphabétique/Ancienneté/Chronomogique). Noubliez pas de le rajouter sur le listing.
- Si le choix Etudiant est actif, le texte du dernier champ sera Classe sinon ce sera Matière. Le changement se fait par un choix. Dans l’exemple, c’est Classe.
- 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.
- 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 ».
- 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 :
- 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).
- Tous : affiche dans la console 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.
- 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.
- 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.

