TP Noté : Système de gestion de commandes
Vous disposez d’un code minimal pour un système de gestion des produits,
des clients et des commandes. Votre mission est d’ajouter des fonctionnalités à
ce système tout en respectant les principes d’héritage et de polymorphisme.
Travail demandé
1. (1 point) Ajoutez la méthode afficherClient() dans la classe Client
pour afficher les détails d’un client.
2. (2 points) Ajoutez une méthode afficherDetails() dans la classe Produit.
Testez votre code en affichant les détails des différents produits dans une
commande.
3. (4 points) Complétez la méthode calculerTotal() dans la classe Commande
pour qu’elle calcule et retourne le total des prix des produits dans la com-
mande. Modifiez la méthode passerCommande() dans la classe Client
pour utiliser la méthode calculerTotal(), afficher le total de la com-
mande, puis demander à l’utilisateur de confirmer la commande via une
saisie clavier.
4. (3 points) Modifiez la méthode calculerTotal() dans la classe Commande
pour qu’elle applique une réduction de 10% si le total dépasse 200 €. La
méthode doit retourner le prix total après application de la réduction.
5. (3 points) Créez trois classes qui héritent de la classe Produit :
• Livre : ajoute un attribut auteur.
• Vetement : ajoute des attributs taille et couleur.
• Electronique : ajoute un attribut garantie (en années).
6. (3 points) Redéfinissez la méthode afficherDetails() dans Livre,
Vetement et Electronique pour afficher les informations spécifiques à
chaque type de produit.
Rendre la classe Produit abstraite.
7. (4 points) Créez un programme principal où, via une saisie au clavier,
l’utilisateur peut choisir d’ajouter un article (livre, vêtement ou électronique),
1
d’ajouter un client, ou de sélectionner un client pour commencer à com-
mander des articles. Lorsque l’option ”sélectionner un client” est choisie,
affichez la liste des clients numérotés de 0 à n (vous pouvez vous servir de la
méthode afficherClient()), puis demandez à l’utilisateur de sélectionner
un client en fonction de son numéro. Une fois un client sélectionné, pro-
posez soit d’ajouter un article à la commande, de passer la commande, ou
de quitter le programme.
2
Code minimal
1
2 // Fichier Produit . java
3 public class Produit {
4 String nom ;
5 double prix ;
6
7 public Produit ( String nom , double prix ) {
8 this . nom = nom ;
9 this . prix = prix ;
10 }
11 }
12
13 // Fichier Client . java
14 import java . util . ArrayList ;
15 public class Client {
16 String nom ;
17 String adresse ;
18 ArrayList < Commande > commandes = new ArrayList < >() ;
19
20 public Client ( String nom , String adresse ) {
21 this . nom = nom ;
22 this . adresse = adresse ;
23 }
24
25 public void pa sserCom mande ( Commande commande ) {
26 commandes . add ( commande ) ;
27 }
28 }
29
30 // Fichier Commande . java
31 import java . util . ArrayList ;
32 public class Commande {
33 ArrayList < Produit > produits = new ArrayList < >() ;
34 String date ;
35
36 public Commande ( String date ) {
37 this . date = date ;
38 }
39
40 public void aj outerPr oduit ( Produit produit ) {
41 produits . add ( produit ) ;
42 }
43
44 public double calculerTotal () {
45 // code manquant
46 }
47 }
Listing 1: Code minimal du système de gestion de commandes