67% ont trouvé ce document utile (3 votes)
528 vues4 pages

Gestion des Pokémons en Java

Le document présente un exercice sur l'héritage et le polymorphisme en programmation orientée objet, centré sur la modélisation de différentes catégories de Pokémons et de véhicules. Il décrit les caractéristiques et les méthodes associées à chaque catégorie de Pokémon, ainsi que les exigences pour créer une hiérarchie de classes pour des véhicules, incluant des spécificités sur la vitesse et la consommation. Des questions pratiques sont posées pour guider la création de diagrammes de classes et de code en Java.

Transféré par

AbdelAziz EL Alaoui
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
67% ont trouvé ce document utile (3 votes)
528 vues4 pages

Gestion des Pokémons en Java

Le document présente un exercice sur l'héritage et le polymorphisme en programmation orientée objet, centré sur la modélisation de différentes catégories de Pokémons et de véhicules. Il décrit les caractéristiques et les méthodes associées à chaque catégorie de Pokémon, ainsi que les exigences pour créer une hiérarchie de classes pour des véhicules, incluant des spécificités sur la vitesse et la consommation. Des questions pratiques sont posées pour guider la création de diagrammes de classes et de code en Java.

Transféré par

AbdelAziz EL Alaoui
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP3 - Hritage et Polymorphisme Exercice 1.

Pokemons
Les Pokmons sont des gentils animaux qui sont passionns par la programmation objet en gnral et par le polymorphisme en particulier. Il existe quatre grandes catgories de pokmons : - Les pokmons sportifs : Ces pokmons sont caractriss par un nom, un poids (en kg), un nombre de pattes, une taille (en mtres) et une frquence cardiaque mesure en nombre de pulsations la minute. Ces pokmons se dplacent sur la terre une certaine vitesse que lon peut calculer grce la formule suivante : vitesse = nombre de pattes * taille * 3 - Les pokmons casaniers : Ces pokmons sont caractriss par un nom, un poids (en kg), un nombre de pattes, une taille (en mtres) et le nombre dheures par jour o ils regardent la tlvision. Ces pokmons se dplacent galement sur la terre une certaine vitesse que lon peut calculer grce la formule suivante : vitesse = nombre de pattes * taille * 3 - Les pokmons des mers : Ces pokmons sont caractriss par un nom, un poids (en kg) et un nombre de nageoires. Ces pokmons ne se dplacent que dans la mer une vitesse que lon peut calculer grce la formule suivante : vitesse = poids / 25 * nombre de nageoires - Les pokmons de croisire : Ces pokmons sont caractriss par un nom, un poids (en kg) et un nombre de nageoires. Ces pokmons ne se dplacent que dans la mer une vitesse que lon peut calculer grce la formule suivante : vitesse =(poids / 25 * nombre de nageoires) / 2 Pour chacune de ces quatre catgories de pokmons, on dsire disposer dune mthode toString qui retourne (dans une chane de caractres) les caractristiques du pokmon.
Par exemple la mthode toString applique sur un pokmon sportif retournerait : "Je suis le pokmon Pikachu mon poids est de 18 kg, ma vitesse est de 5,1 km/h j'ai 2 pattes, ma taille est de 0,85m ma frquence cardiaque est de 120 pulsations la minute" Cette mme mthode applique sur un pokmon casanier pourrait retourner : "Je suis le pokmon Salameche mon poids est de 12 kg, ma vitesse est de 3,9 km/h j'ai 2 pattes, ma taille est de 0,65m je regarde la tl 8h par jour" Sur un pokmon des mers : "Je suis le pokmon Rondoudou mon poids est de 45 kg, ma vitesse est de 3,6 km/h j'ai 2 nageoires" Et enfin sur un pokmon de croisire : "Je suis le pokmon Bulbizarre mon poids est de 15 kg, ma vitesse est de 0,9 km/h j'ai 3 nageoires"

Question 1. Raliser un diagramme de classes permettant de grer la hirarchie des Pokmons. Question 2. Programmer ces classes en Java. Les attributs sont privs. Pour viter de devoir
crer autant de fichiers que de classes, vous pouvez ne dclarer qu'une classe "public", celle qui contient la mthode main de l'application. On dsire maintenant dfinir une classe CollectionPokemons qui comporte en attribut priv une instance de [Link] pouvant contenir des pokmons de catgories quelconques. En plus dun constructeur, cette classe doit comprendre les mthodes suivantes : o une mthode qui insre un pokmon dans la collection o une mthode qui calcule la vitesse moyenne des pokemons de la collection. Attention : veillez tre en version au moins 1.5 pour utiliser la gnricit lors de la dclaration de l'ArrayList.
TP 3 page 1

Question 3. Ecrire la classe CollectionPokemons. Question 4. Ajouter la classe CollectionPokemons la mthode vitesseMoyenneSportifs( ) qui
retourne la vitesse moyenne des Pokmons sportifs de la collection.

Exercice 2. Un nouveau carburant


Dans cet exercice, respectez au maximum les principes suivants : 1. Ds qu'un objet est cr, il doit tre correctement initialis : toutes ses proprits (attributs) doivent avoir des valeurs correctes. 2. Une hirarchie d'hritage doit tre extensible : idalement, on devrait pouvoir ajouter une classe (par exemple ici un nouveau type de vhicule) sans toucher aux classes existantes. Notamment, une classe n'est pas cense connatre ses sous-classes. 3. L'hritage permet de factoriser le code : essayez ici de le faire le plus possible (mme si a peut vous sembler lourd sur un si petit exemple). 4. Lorsqu'une valeur est commune tous les objets d'une classe (par exemple ici la valeur de "poids vide" ou de "charge maximale"), elle n'a pas vocation tre stocke dans chaque objet. Elle peut tre stocke dans un attribut statique et retourne par une mthode (statique ou non selon l'utilisation que l'on veut en faire). Cet exercice est extrait d'un contrle. On a ajout des points marqus "TP" pour l'adapter une programmation complte des classes. Une entreprise de Patagonie dveloppe un moteur huile de rutabaga, et dote plusieurs vhicules de ce moteur. Avant d'effectuer des tests grandeur nature, l'entreprise conoit un programme de simulation du comportement des vhicules. Ce programme est crit en Java. On ne s'intresse ici qu' une toute petite partie de ce programme. Le problme que l'on veut rsoudre dans un premier temps est celui de la reprsentation des vhicules et du calcul de la vitesse maximum pouvant tre atteinte par un vhicule. Tout vhicule possde une immatriculation (propre chaque vhicule) et un poids vide (propre chaque type de vhicule). Certains vhicules peuvent transporter un chargement : on appelle alors charge le poids de ce chargement. La charge d'un vhicule ne doit pas dpasser un certain poids, que l'on appellera charge maximale, dpendant du type de vhicule. Les diffrents types de vhicules dots du fameux moteur sont les suivants : les petits bus, les camions citernes, et les camions bchs. Un petit bus a un poids vide de 4 tonnes, et peut atteindre une vitesse maximale de 150 km/h. Il ne possde pas de chargement (le poids des passagers est considr comme ngligeable par rapport au poids vide). Un camion citerne a un poids vide de 3 tonnes et une charge maximale de 10 tonnes. Sa vitesse maximale dpend de sa charge : 130 km/h si la charge est nulle 110 km/h si la charge est infrieure ou gale 1 tonne 90 km/h si la charge est suprieure 1 tonne et infrieure ou gale 4 tonnes 80 km/h pour une charge suprieure 4 tonnes. Un camion bch a un poids vide de 4 tonnes et une charge maximum de 20 tonnes. Sa vitesse maximale dpend galement de sa charge (mais charge gale, un camion citerne a une vitesse maximale plus faible, car le liquide qu'il transporte est plus instable qu'un chargement solide) : 130 km/h si la charge est nulle
TP 3 page 2

110 km/h si la charge est infrieure ou gale 3 tonnes 90 km/h si la charge est suprieure 3 tonnes et infrieure ou gale 7 tonnes 80 km/h au del.

Question 1.
Dessiner une hirarchie de classes, dont la classe racine s'appelle Vhicule, permettant de : dcrire un vhicule par une chane de caractres : cette chane comportera l'immatriculation, le poids vide, et, le cas chant, la charge maximale et la charge du vhicule. calculer la vitesse maximale d'un vhicule. Vous indiquerez le nom des attributs et des mthodes de chaque classe, et mentionnerez, s'il y a lieu, quelles classes et mthodes sont abstraites. Il n'est pas ncessaire de s'occuper des constructeurs ce stade de la conception.

Question 2.
crire les classes participant la dfinition d'un camion bch (c'est--dire la classe Vhicule, et la classe permettant de reprsenter un camion bch, ainsi que les ventuelles classes intermdiaires si ces deux classes ne sont pas en relation d'hritage direct). TP: programmer toutes les classes participant la dfinition de tous les types de vhicules. Ajouter une mthode main() crant deux camions bchs, et affichant leur description ainsi que leur vitesse maximale.

Question 3.
On s'intresse maintenant la dfinition d'une classe Convoi, permettant de grer un convoi de vhicules. Cette classe doit savoir calculer la vitesse maximale d'un convoi, sachant que cette vitesse correspond la plus petite des vitesses maximales des vhicules du convoi.

(3.a) Dfinir un ou des attributs de la classe Convoi permettant de reprsenter les vhicules d'un
convoi. On supposera qu'au cours de la vie d'un objet instance de la classe Convoi, on ne modifie pas la composition du convoi de vhicules (en particulier, le nombre de vhicules est stable). (donc utiliser un tableau).

(3.b) crire les mthodes suivantes :


un constructeur qui prend en paramtre un tableau de vhicules une mthode toString qui retourne une chane de caractres dcrivant le convoi, c'est--dire chacun des vhicules composant le convoi. une mthode calculant la vitesse maximale d'un convoi de vhicules.

TP: Programmer la classe Convoi. Lui ajouter une mthode main crant deux convois et affichant les caractristiques de chacun de ces convois, ainsi que leur vitesse maximale. Vrifiez que vos calculs sont corrects!

TP 3

page 3

Question 4.
Les ingnieurs de l'entreprise fournissent une formule permettant de calculer la consommation de carburant d'un vhicule en fonction de sa vitesse et de son poids total (poids vide + charge ventuelle). Cette formule est la mme pour tous les types de vhicules. On supposera donne, dans une classe annexe nomme Utilitaires, la mthode d'entte suivante : public static float consommation (int v, int p), qui retourne la consommation (en litres pour 100 km) d'un vhicule de poids p allant une vitesse v. Intgrer la hirarchie de classes une ou des mthodes permettant de calculer la consommation d'un vhicule allant une certaine vitesse (qui n'est pas forcment sa vitesse maximale). Et ajouter la classe Convoi une mthode permettant le calcul de la consommation totale d'un convoi allant sa vitesse maximale (c'est--dire, on le rappelle, la plus petite des vitesses maximales des vhicules du convoi). TP: Ajouter la classe Utilitaires avec sa mthode consommation. En ce qui concerne la formule de calcul, peu importe si elle n'est pas vraisemblable (par exemple, consommation = vitesse-en-km/h /10 + poids-en-tonnes) ; il est plus important que vous puissiez vrifier que le calcul de la consommation d'un convoi est correct. Modifier la hirarchie de classes pour intgrer le calcul de la consommation des vhicules et des convois. Ajouter la mthode main de la classe Convoi l'affichage de la consommation de chacun des deux convois leur vitesse maximale.

TP 3

page 4

Vous aimerez peut-être aussi