Entrées/sorties
Dans ce TP on s’intéressera au système de facturation d'une société. Cette société établit des factures numérotées (en incrémentant partant de 1 et en réinitialisant à 1 le 1er janvier de chaque année) 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.
1) Commencez par élaborer le diagramme des classes pour ce système de facturation.
Vous écrirez ensuite une classe TestFacture qui affiche une 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
• 3 stylos
• 2 ramettes
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 12345 Client: Toto Date: 10 novembre 2012
Quant. Ref. Nom Marque PU PT 10 s1 Stylo Jade Watertruc 76.0 760.0 15 r1 Ramette haute qualité Clairefont 14.0 210.0 2 l1 Lot de 5 Stylo Marker 686.0 1372.0 Prix total facture : 2342.0 euros
---
2) Commencer par implémenter des méthodes load et save qui permettent de lire ou écrire les objets créés depuis ou vers un fichier texte :
save(String filename) {...}
load(String filename) {...}
Ces méthodes permettront de charger/écrire les attributs d'un stylo rouge par exemple dans un fichier stylo_rouge.txt.
3) Modifier le programme pour sauvegarder le contenu d'une facture dans un fichier sur le disque. Ce fichier pourrait être utilisé ultérieurement pour imprimer une facture, l'éditer,...
On adoptera le format suivant :
--- numero:12345||
Client:Toto||
Date:10-11-2012||
10|s1|Stylo Jade|Watertruc|76.0|760.0||
15|r1|Ramette haute qualité|Clairefont|14.0|210.0||
2|l1|Lot de 5 Stylo|Marker|686.0|1372.0||
---
4) Utilisez les techniques de sérialisations des objets étudiées en cours pour sauver/relire une facture.
5) Comparer les deux méthodes de sauvegarde.
6) Pour ceux qui veulent aller plus loin, modifiez votre programme pour lire deux factures à partir de deux fichiers, tester s'il s'agit du même client, et fusionner les deux factures.