Page Home (contact) Retour TPs
int)
:
Écrivez des classes dans un paquetage "article" pour représenter les différents articles.
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". Pour gérer les stocks, on pourrait 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 donne le prix d'un article, que l'article soit un stylo, une ramette de papier ou un lot (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.
La société établit des factures numérotées
(en partant de 1) et datées. Une facture doit pouvoir afficher 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. Les numéros des factures sont générés automatiquement en utilisant une variable static
qui est incrémenté à chaque nouvelle facture ; la première facture a le numéro 1, la suivante le numéro 2, et ainsi de suite.
Pour simplifier, un client ne sera qu'un simple nom dans la facture (pas de classe Client) et la date sera donnée sous la forme d'une String (par exemple "15/05/2015") ; dans le JDK il existe des classes pour représenter les dates mais elles ne seront pas utilisées dans cet exercice.
Pour conserver les articles facturés, une facture contient un tableau de lignes de facture. Une ligne de facture contient un article et le nombre d'articles facturés. Vous écrirez une classe Ligne
pour cela. Pour simplifier vous supposerez qu'une facture ne peut pas contenir plus de 20 lignes de facture ; rangez ce nombre 20 dans une constante de la classe Facture
.
Ajoutez les classes pour représenter ces factures dans un paquetage "facture".
Voici une classe TestFacture (adaptez ce code aux classes que vous avez écrites dans l'exercice précédent, en particulier aux constructeurs de ces classes) qui affiche 1 facture pour
pour 2 clients différents.
Le programme créera tous les objets nécessaires à l'affichage des 2 factures.
Pour information, voici le code d'une méthode afficheToi()
de la classe Facture qui utilise System.printf
, comme avec le langage C. Vous pouvez l'utiliser. Avec cette méthode l'affichage de la facture sera :
Facture numéro 1 ; Client : Toto ; Date : 10/11/2010 Quant. | Réf. | Nom | PU | PT 10 | s1 | Stylo jade | 50 | 500 15 | r1 | Ramette haute qualité | 80 | 1200 2 | l1 | Lot de 5 Stylo or | 450 | 900 Prix total facture : 2600
Cette entreprise comporte plusieurs types d'employés :
Ecrivez une classe Paie qui comporte une unique méthode main. Dans cette méthode vous entrerez les informations sur des employés des différents types
(au moins 3 employés). Les employés seront enregistrés dans
un tableau employes.
La méthode main affichera le salaire hebdomadaire de chacun
des employés dans une boucle "for" qui parcourra le tableau
des employés. Vous utiliserez le polymorphisme avec la méthode getSalaire(). L'affichage aura exactement la forme : "Dupond gagne 2500
€ ". Vérifiez les calculs des salaires !
Générez la documentation du paquetage sur les employés
avec l'outil javadoc.
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
Donnez 2 versions de vos scripts : pour PC sous Windows/DOS (.bat) et pour Unix/Linux (.sh).
On doit pouvoir installer et lancer l'application en moins de 3 minutes (environ ;-) ).
Modélisez avec des classes. Ajoutez à chaque classe fille au moins une variable et une méthode nouvelles. Arrangez-vous pour que les classes filles puissent manipuler directement les nouvelles variables.
Voici ci-dessous une classe de test et l'affichage que vos classes devront fournir. La méthode getType de vos classes devra fournir une description de l'instance, en incluant les descriptions de toutes les classes mères. Pour cela, il vous est imposé d'utiliser le mot-clé super.
La classe de test :
public class TestAnimal { public static void main(String[] args) { Animal[] animaux = new Animal[5]; animaux[0] = new Animal("Truc"); animaux[1] = new Animal(); animaux[2] = new Chien("Médor"); animaux[3] = new Homme(); animaux[4] = new Homme("Robert"); for (int i = 0; i < animaux.length; i++) { System.out.println(animaux[i].getType()); } } }L'affichage :
Je suis un animal de nom Truc. Je suis un animal. Je suis un animal de nom Médor. Je suis un mamifère. Je suis un chien. Je suis un animal. Je suis un mamifère. Je suis un homme. Je suis un animal de nom Robert. Je suis un mamifère. Je suis un homme.