Teaching - 2i002 - (TME: sujets)


2i002 : Introduction à la programmation Objet

Compagnie de chemin de fer (ArrayList, instanceof)

Une compagnie de chemin de fer veut gérer la formation de ses trains, à partir de la description suivante. Un train est formé d'éléments de train. Un élément de train possède un numéro de série et une marque. Un élément de train est soit une motrice, soit un wagon. Une motrice a une puissance. Un wagon a un nombre de portes. Un wagon peut être soit un wagon voyageurs, auquel cas il possède un nombre de places, soit un wagon de marchandise, auquel cas il possède un poids maximum représentant la charge maximale qu'il peut transporter.

Question 1 :

Dessiner la hiérarchie des classes Train , ElemTrain , Motrice , Wagon , WVoyageur et WMarchandise .

Question 2 :

Ecrire les classes ElemTrain (abstraite), Wagon (abstraite), WVoyageur et WMarchandise avec au moins un constructeur avec paramètres et une redéfinition de la méthode public String toString() qui retourne pour un élément son type et son numéro de série, par exemple : « Wagon Marchandise 10236 ».

Question 3 :

Un Train possède une motrice et une une suite de wagons (on gèrera cette suite obligatoirement par la classe ArrayList (voir la documentation page \pageref{sec:ArrayList}). Ecrire la classe Train avec au minimum un constructeur a un paramètre de type Motrice qui construit un train réduit à cette motrice, et ayant donc un ensemble vide de wagons.

Question 4 :

Ajouter une méthode void ajoute(Wagon w) qui ajoute un wagon au vecteur de wagons du train.

Question 5 :

Redéfinir la méthode public String toString() qui retourne la composition de ce train.

Question 6 :

Ecrire une méthode poids() qui retourne le poids maximum de marchandise que peut transporter le train. Indication : On peut utiliser l'opérateur instanceof qui rend vrai si et seulement si un objet est instance d'une classe. Exemple d'utilisation : if (a instanceof A)...

Question 7 :

Ecrire la méthode principale public static void main(String[] args) dans une classe MainTrain . Cette méthode crée une motrice, des wagons de voyageur et des wagons de marchandise, crée un train formé de ces éléments, affiche la composition de ce train ainsi que le poids transporté.