TP sur l'héritage

Page Home (contact) Retour TPs

Support de cours


Articles à vendre

Une société vend des articles de papeterie. Vous vous limiterez aux articles suivants : De plus cette société peut vendre ces articles par lots. Vous supposerez que les lots sont composés d'un certain nombre d'un même type d'articles, par exemple un lot de 10 stylos noirs B2 de la marque WaterTruc. Un lot a une référence. Il a une marque qui est celle de l'article dont il est composé (WaterTruc pour l'exemple précédent). Le nom du lot est déterminé par le nombre d'articles dont il est composé ; par exemple "Lot de 10 stylo noir B2" (vous êtes dispensé de mettre les noms au pluriel !). Le prix du lot est déterminé par le prix unitaire de l'article multiplié par le nombre d'articles, auquel est enlevé un certain pourcentage qui dépend du lot. Par exemple, si un lot de 10 stylos à 100 € a un pourcentage de réduction de 20 %, le prix du lot sera de 10 x 100 x (100 - 20) / 100 = 800 €. Le prix d'un lot sera calculé au moment où on demandera le prix du lot ; il n'est pas fixé une fois pour toute et il change si le prix de l'article qui compose le lot est modifié.

Ecrivez des classes dans un paquetage "ufe.toto.article" pour représenter les différents articles (où vous remplacerez toto par votre nom).

On ne s'intéresse qu'aux différents types d'articles. Ainsi, on aura une seule instance qui représentera le type "stylo noir B2" et pas 250 instances si la société possède 250 "stylo noir B2". Si vous voulez démarrer une gestion de stock, vous pouvez ajouter le nombre d'articles en stock pour chaque type, mais ça n'est pas demandé.

Vos classes devront permettre de faire du polymorphisme avec la méthode qui donnera le prix d'un article (application dans l'exercice suivant sur les factures).

Avant de commencer à coder, faites valider votre arborescence d'héritage à l'enseignant qui encadre le TP.

Correction :

Les classes

Du polymorphisme dans une facture

La société établit des factures numérotées (en partant de 1) et datées, comprenant le nom du client, le prix total de la commande et, pour chaque article commandé, sa référence, son prix unitaire, le nombre d'articles commandés et le prix total pour cet article.
Pour simplifier, un client ne sera qu'un simple nom dans la facture (pas de classe Client).

Ajoutez les classes pour représenter ces factures, dans un paquetage "fr.unice.toto.facture" (où vous remplacerez toto par votre nom).

Vous écrirez une classe test qui affiche 1 facture pour

et une autre facture pour pour 2 clients différents.
Le programme créera tous les objets nécessaires à l'affichage des 2 factures.
Une facture s'affichera sur le modèle suivant (on ne demande pas d'affiner davantage le format d'affichage mais si vous pouvez faire mieux, n'hésitez pas !) :
---------------------------------------------------------------------
Facture 125  Client: Toto  Date: 10 novembre 2010

Quant.  Ref.    Nom             Marque      PU      PT
10        s1      Stylo Jade       Watertruc       50.0  500.0
15        r1      Ramette haute qualité  Clairefont    9.5    142.5
2        l1       Lot de 5 Stylo or    Marker 450.0  900.0

Prix total facture : 1542.5 €
---------------------------------------------------------------------

Pour tester vos classes, utilisez une classe semblable à cette classe TestFacture. Évidemment, il vous faudra adapter ce code aux classes que vous avez écrites dans l'exercice précédent, en particulier aux constructeurs de ces classes.

Correction :

Les classes

Javadoc et fichiers jar (à faire seul ; modèle pour le projet à rendre)

Générez la documentation du paquetage sur les employés avec NetBeans (clic sur le projet puis menu Run > generate javadoc) ou avec l'outil javadoc. Pour écrire les commentaires javadoc Vous pouvez vous aider de ce guide ou d'un article de Doug Lea qui donne des conventions de présentation d'un code Java et quelques recommandations. Voici aussi un exemple de programme commenté. Ce cours, en français, peut aussi vous être utile. 

Ajoutez une page pour votre travail dans votre page Web personnelle, accessible sur le Web.

Cette page devra donner les explications nécessaires et elle permettra d'accéder

On doit pouvoir installer et lancer l'application en moins de 3 minutes (environ ;-) ).


Retour TPs