Commandes de fournitures de bureau
Vous réaliserez la maquette d'un outil permettant de passer
des commandes pour des fournitures de bureau. Ces articles pouront être
de types divers, représentés sous la forme d'objets dans
l'application.
Caractéristiques de l'application :
-
Les articles sont de type stylo ou ramette de papier,
-
Un stylo est décrit par sa marque, sa référence, son
prix unitaire et sa couleur,
-
Une ramette de papier est décrite par sa marque, sa référence,
son prix unitaire et le grammage du papier (en grammes par mètre
carré),
-
Une commande associe un nom de client à une liste de
couples (article, quantité commandée).
-
En outre, dans le cas de grosses commandes, prévoyez de regrouper
des articles en Lots (par exemple: 100 crayons) le prix d'un lot
étant égal à la quantité multipliée
par le prix unitaire de chaque article, moins 10%. Un lot posséde
lui aussi une référence, un prix et une description, correspondant
à la marque du ou des articles qui le composent.
-
Dans un premier temps vous pouvez considérer qu'un lot ne peut contenir
qu'un seul type d'article. Par exemple, un lot de crayons dont la marque
est "waterman", possèdera comme description "lot-waterman"...
-
Dans un second temps, on considèrera qu'un Lot peut
comporter plusieurs types d'articles. Comment concevoir la classe Lot?
A-t-on besoin de classes supplémentaires?
L'arborescence des classes de l'application pourrait être la suivante:
class Article
|
+----- Ramette
+----- Stylo
+----- Lot
class ArticleQuantite
class Commande
Gardez bien à l'esprit que de nouveaux articles doivent pouvoir
se greffer dans l'application sans que l'on doive réécrire
tout le code.
N'oubliez pas d'écrire une classe Appli comportant
une méthode main(), qui créée une commande
fictive, ajoute des articles, en enlève, affiche le contenu de la
commande et le prix total par exemple. Exemple de classe Appli.java
dans le cas de lots homogènes (ex: lot de 10 stylos), la même
classe de test dans le cas de lots hétérogènes
(ex: lot de 10 stylos et trois ramettes de papier).
Notes
-
Pensez à protéger les objets ne nécessitant pas d'être
exposés (attributs privés, méthodes publiques, méthodes
privées, etc...)
-
Utilisez la classe Vector du package java.util pour
gérer une liste d'objets (sorte de tableau, mais sans limite de
taille). Regardez dans la doc API
pour comprendre comment utiliser Vector. Regarder aussi la
classe Enumeration qui permet d'itérer sur un
Vector.
Solutions