Vous êtes sur la page 1sur 2

TD POO JAVA

M.Youssfi

TD de Synthse POO JAVA


Objet, Classe, Hritage, Encapsulation, Polymorphisme
Collection, Exceptions, Entres Sorties, Interface graphiques
Problme :
On souhaite crer une application java qui permet grer une socit de transport de cargaisons
transportant des marchandises. La socit gre un ensemble de cargaisons. Chaque cargaison
contient plusieurs marchandises. Chaque marchandise est dfinie par son numro, son poids et
son volume. Il existe deux types de cargaisons :
Routire et Arienne. Chaque cargaison est dfinie par sa rfrence et sa distance de parcours.
Le cout de transport dune cargaison est calcul en fonction du type de la cargaison.
Pour une cargaison arienne est une cargaison dont le cout est calcul selon la formule
suivante :
 cout=10 x distance x poids total des marchandises si le volume total est infrieur
80000
 cout=12 x distance x poids total des marchandises si le volume total est suprieur ou
gal 80000
Une cargaison routire est une cargaison dont le cout est calcul selon la formule suivante :
 cout=4 x distance x poids total si le volume total est infrieur 380000
 cout=6 x distance x poids total si le volume total est suprieur ou gale 380000
Pour chaque cargaison, on souhaite ajouter une marchandise, supprimer une marchandise,
consulter une marchandise sachant son numro, consulter toutes les marchandises de la
cargaison, consulter le poids total de la cargaison, consulter le volume total de la cargaison et
consulter le cout de la cargaison.
Cette application peut tre utilise par les clients et les administrateurs.
Le client peut effectuer les oprations suivantes :
 Consulter une cargaison sachant sa rfrence.
 Consulter une marchandise sachant son numro.
 Lire le fichier Cargaisons.
 Consulter toutes les cargaisons.
Ladministrateur peut effectuer toutes les oprations effectues par le client. En plus, il peut :
 Ajouter une nouvelle cargaison.
 Ajouter une marchandise une cargaison.
 Supprimer une cargaison
 Enregistrer les cargaisons dans un fichier.
Toutes les oprations ncessitent une authentification
Questions :
1- Etablir un diagramme Use case UML.
2- Etablir le diagramme de classes en prenant en considration les critres suivants.
 La classe SocieteTransport devrait implmenter les deux interfaces
IClientTransport et IAdminTranport dclarant, respectivement les oprations
relatives aux rles Client et Admin.
 Dans une premire implmentation de SocieteTransport, on suppose que les
cargaisons sont stockes dans une liste de type HashMap de la classe
SocieteTransport.
 Dans une deuxime implmentation, nous supposerons que les cargaisons et les
marchandises sont stockes dans une base de donnes relationnelle.
1/2

TD POO JAVA

M.Youssfi

 Lassociation entre cargaison et Marchandise est bidirectionnelle.


3- Ecrire le code java des classes entits Marchandise, Cargaison, CargaisonRoutire et
CargaisonArienne
4- Ecrire le code java des deux interfaces IClientTransport et IAdminTransport
5- Crer une premire implmentation java de ces deux interfaces
6- Etablir un diagramme de squence puis crer une application java de type console qui
permet de raliser les oprations suivantes :
 Crer une instance de SocieteTransport pour un administrateur.
 Ajouter trois cargaisons routires et une cargaison arienne socit de transport :
 CR1 , CA1 et CR2
 Ajouter 3 marchandises la cargaison dont la rfrence est CR1 (Numros 1, 2, 3)
 Ajouter 2 marchandises la cargaison dont la rfrence est CA1 (Numros 4,5)
 Afficher toutes les informations concernant la cargaison CR1
 Afficher toutes les informations concernant la marchandise 3.
 Srialiser les donnes dans le fichier transport1.data
7- Etablir un diagramme de squence puis crer une deuxime application java de type
console qui permet de raliser les oprations suivantes :
 Crer une instance de la classe SocieteTransport pour un client.
 Charger les donnes partir du fichier transport1.data
 Afficher toutes les informations concernant la cargaison CA1
8- Crer une application SWING qui permet la saisie, lajout, la suppression, la
consultation des donnes de lapplication.
9- Etablir un modle logique de donnes relationnel relatif au diagramme de classe.
10- Crer la base de donnes MYSQL.
11- Crer une nouvelle implmentation des deux interfaces pour une gestion de donnes
stockes dans la base de donnes en faisant le mapping objet relationnel.
12- Trouver une solution qui permet lapplication de changer limplmentation de
SocieteTransport, sans modifier le code source de lapplication. Autrement dit,
lapplication doit tre ferme la modification et ouverte lextension.

2/2

Vous aimerez peut-être aussi