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 :
- stylos décrits par une référence,
un nom ou descriptif (par exemple "stylo noir B2"), une marque, un prix unitaire
et une couleur,
- ramettes de papier décrites par une
référence, un nom, une marque, un prix unitaire et le grammage
du papier (par exemple, 80 g/m²).
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
- 10 stylos (choisissez ses caractéristiques)
- 15 ramettes de papier
- 2 lots de 5 stylos (différents des 10 stylos)
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
- à un fichier ZIP contenant
- les fichiers source des classes,
- les fichiers classe de ces classes (dans un fichier JAR à part). Voici un cours qui contient une courte introduction aux fichiers JAR, les pages du tutoriel d'Oracle sur les fichiers JAR et la documentation sur l'outil jar. Vous pouvez générer le fichier jar dans NetBeans : clic sur le projet puis menu Run > Clean and Build Project ; le jar est créé et déposé dans le répertoire dist (onglet Files à gauche pour le voir depuis NetBeans).
- un script "execute" pour démarrer l'application.
Ce script .bat devra être simple à utiliser. Une fois le fichier ZIP décompacté, et sans aucune manipulation spéciale, il devra permettre de démarrer
l'exécution de la classe Paie en utilisant le fichier jar.
- à la documentation de ces classes en format HTML
On doit pouvoir installer et lancer l'application en moins de 3 minutes (environ
;-) ).
Retour TPs