TD Programmation par objets - Java, Licence3 - Module ULIN504, Université de Montpellier II- Resp. J. Ferber
TD2 : Généalogie
On reprend l'exercice précédent sur les personnes.
Exercice 1 :
On veut maintenant être en mesure de déterminer si un individu est l'ancêtre d'une personne donnée. Pour cela on ajoute un attribut Pere et Mere à chaque personne.
Ecrire le code du constructeur permettant de créer un objet de type personne en lui passant son père et sa mère lors de l'initialisation (ou null si l'on ne connait pas le parent).
Supposons que l'on veuille entrer l'ensemble de personnes suivant :
Mr
Dupond Jean , de père INCONNU et de mère INCONNU
Mlle
Durant Emilie, épouse de Dupond Jean, de père INCONNU et de mère INCONNU
Mr
Dupond Eric , de père Dupond Jean et de mère Durant Emilie
Mlle Holly Jeanne, épouse de Dupont Eric, de père INCONNU
et de mère INCONNU
Mlle France Sylvie, de père INCONNU et de mère INCONNU
Mr Dupond Yannick, de père Dupond Eric et de mère
Holly Jeanne
Mlle France Brigitte, de père INCONNU et de mère France Sylvie
Mr Dupond
Henri, de père Dupond Yannick et de mère France Brigitte
Donnez l'initialisation de ces instances.
Exercice 2 :
Ecrire le code de la méthode boolean estAncetre(Personne p) qui retourne vrai si la personne courante est ancêtre de la personne p.
Remarque: p peut provenir de la branche paternelle ou de la branche maternelle à chaque génération.
Exercice 3 :
On désire afficher l'arbre généalogique d'une personne. Par exemple celui de Mr Dupond Henri.
Donnez le code de la méthode void afficherArbreGene() de la classe Personne qui affiche l'arbre généalogique d'une personne.
Exercice 4 :
Modifiez cette méthode (éventuellement en en créant d'autres) pour que l'arbre soit bien indenté, c'est-à-dire que l'affichage donne ceci:
Mr Dupond Henri, de père Dupond Yannick de père Dupond Eric époux de Holly Jeanne de père Dupond Jean époux de Durant Emilie de mère Durant Emilie épouse de Dupond Jean de mère Holly Jeanne épouse de Dupont Eric de mère France Brigitte de mère France Sylvie