TP 2, première partie.

Transcription

TP 2, première partie.
M1 ISIFAR Java et Programmation Objet
TD 2
Les Schtroumpfs
Les Schtroumpfs sont des petits êtres vivant dans la forêt. L'ennemi des Schtroumpfs est
Gargamel.
On considère une modélisation simple d'un Schtroumpf : chaque Schtroumpf
a un nom
a un âge
est content, ou pas
Exercice 1 : Écrire la classe Schtroumpf (dans un chier Schtroumpf.java) avec ses attribut,
c'est-à-dire les propriétés (ou attributs ) que possède chaque Schtroumpf.
Exercice 2 : C'est Madame la Cigogne qui fait venir un petit Schtroumpf au monde. Un bébé
Schtroumpf reçoit un nom, et est toujours content.
Écrire le
Constructeur
, implémentation en Java de la cigogne.
Exercice 3 : Le méchant Gargamel essaye d'inuer sur les Schtroumpfs : par une magie connue
de lui seul, il peut changer leur humeur à distance grâce à la méthode suivante (de la classe
Gargamel) :
public static void maudireSchtroumpf ( Schtroumpf S)
{
S.content = false;
}
Comment déjouer la tentative de Gargamel ?
Exercice 4 : Un Schtroumpf se présente en donnant un message, par exemple : Bonjour, on
m'appelle Schtroumpf à lunettes et j'ai 99 ans
.
Écrire la méthode presentation en Java.
Exercice 5 : Si un Schtroumpf est content, il chante la,
pas content, il ne chante pas.
la, la Schtroumpf la la
. S'il n'est
Écrire la méthode chante qui écrit à l'écran la chanson que l'on peut entendre en s'approchant
d'un Schtroumpf.
Exercice 6 : Écrire des méthodes pour les évenements suivantes de la vie d'un Schtroumpf :
son anniversaire ;
manger de la salsepareille (ce qui le rend heureux) ;
aller travailler au pont de la riviere Schtroumpf (ce qui le rend triste).
1
Exercice 7 : On a vu que Gargamel ne peut rendre malheureux un Schtroumpf. La Schtroumpfette (qui est de race, c'est-à-dire de classe, Schtroumpf) le peut-elle ? Si oui, comment ? Si non,
pourquoi ?
Exercice 8 : Par un beau matin nous rencontrons le Schtroumpf Grognon, âgé de 135 ans,
qui revient du chantier du pont de la rivière Schtroumpf. Il nous salue puis nous allons ensemble
manger de la Salsepareille.
Écrire une méthode main de la classe Schtroumpf qui raconte cette merveilleuse histoire.
Le Village Schtroumpf
Un village Schtroumpf possède :
un nom ;
une structure qui contient 100 Schtroumpfs (voir Ex. suivant) ;
un stock de Salsepareille (on compte le nombre de feuilles en réserve).
Exercice 9 : Quelle structure de données Java peut représenter le village ?
Vous devez écrire une classe Village avec ces champs et les accesseurs à ces champs (dans un
chier appelé Village.java).
N'oubliez pas que ces champs doivent être déclarés private pour éviter que Gargamel ne puisse
les modier par sa magie noire.
Exercice 10 : Écrire le constructeur de la classe Village. Il doit appeler le constructeur de
Schtroumpf pour chaque Schtroumpf.
On pourra nommer les Schtroumpfs Schtroumpf 1 , Schtroumpf 2 etc (même si ça
manque de poésie). Par exemple Schtroumpf S = new Schtroumpf("Schtroumpf "+10) ; crée
le Schtroumpf Schtroumpf 10 . On pourrait aussi leur attribuer un âge au hasard (en utilisant
la méthode java.lang.Math.random() de Java) au moment de la création du Village.
Donc une boucle peut créer tous ces Schtroumpfs.
Exercice 11 : Le jour du solstice d'été, tous les Schtroumpfs se présentent, puis chantent
ensemble. Écrire la méthode correspondante en Java.
Faire une méthode main de la classe Village qui construit un village de 100 Schtroumpfs puis
lance les festivités du solstice d'été.
Exercice 12 : Le Grand Schtroumpf d'un village est le plus vieux des Schtroumpfs de ce
village. Comment le repérer ?
Exercice 13 : Écrire la méthode qui ache tous les Schtroumpfs heureux d'un village.
Vériez-la dans le main. Pour cela, faites une boucle qui va envoyer un Schtroumpf sur deux
au travail avant (pour que tout le monde ne soit pas content !)
Exercice 14 : Un Schtroumpf ne peut habiter qu'un village. Il existe cependant des Schtroumpfs
ermites
qui n'habitent aucun village.
Ajouter dans la classe Schtroumpf l'information du village auquel appartient un Schtroumpf, et les accesseurs pour manipuler cette information. Attention, les bébés Schtroumpfs ont (en
général) un village de naissance !
2
Modier la classe Schtroumpf pour qu'un Schtroumpf se présente en donnant le nom de son
village.
Exercice 15 : Le stock de salsepareille évolue de la façon suivante :
Un Schtroumpf peut en récolter. Il en ramène alors cinq feuilles dans la réserve de son village.
Bien entendu la récolte est un travail, ce qui rend le Schtroumpf triste.
Un Schtroumpf peut dîner au village (en puisant trois feuilles dans la réserve). Cela le rendra
de nouveau heureux s'il était triste.
Donc, la récolte et le dîner modient l'état (heureux ou non) d'un Schtroumpf et le stock de
son village. L'état est un champ privé de Schtroumpf et le stock de salsepareille un champ privé
de Village.
Ajouter (dans quelles classes ?) des méthodes pour envoyer un Schtroumpf à la récolte et le
faire dîner, ainsi qu'une méthode dinerTousEnsemble qui fait manger tous les Schtroumpfs d'un
village ensemble.
Exercice 16 : On veut maintenant savoir combien de Schtroumpfs il y a au monde. Comment
faire ?
Pour vérier votre programme, faites un main qui construit deux villages et un Schtroumpf
ermite puis ache le nombre de Schtroumpfs (qui devrait donc être 201).
3

Documents pareils