Enseignement > Programmation orientée objet > Java > Examen de 2eme session 2017  

Epreuve de 2eme session - 7 juillet 2017 - Durée 2h00

On cherche à écrire au cours de cet exercice les classes nécessaires à la gestion de la facturation d'une entreprise qui vend des produits.

1. Ecrire une classe Produit permettant de modéliser les produits vendus par cette entreprise. Un produit est caractérisé par sa description, sa référence et son prix. Encapsuler ces caractéristiques; écrire un constructeur pour cette classe.
Redéfinir la méthode toString() de manière judicieuse.
Redéfinir la méthode equals : 2 produits seront égaux si leurs références sont identiques.

2. Un client peut être soit une personne physique, soit une personne morale (entreprise, association, collectivité, locale)
Ecrire une classe abstraite
Client qui est caractérisée par un code client, une adresse, un code postal et une ville.
Redéfinir la méthode equals : 2 clients sont identiques si ils ont le même code client.
Ecrire une classe ClientPersonnePhysique qui hérite de la classe
Client, avec comme paramètre supplémentaire un nom et un prénom.
Ecrire une classe ClientPersonneMorale qui hérite de la classe Client, avec comme paramètre supplémentaire un nom et un numero de SIRET.
Encapsuler les attributs de ces classes et écrire les constructeurs.

Redéfinir la méthode toString() de manière judicieuse.

3. Au cours d'un achat, un client peut acquérir plusieurs produits, et chaque produit dans des quantités différentes. Une ligne de facture détermine la quantité d’un même produit acquis au cours d’un achat.
Ecrire une classe LigneFacture qui désigne le produit acquis par un client, la quantité achetée et le montant de cet achat (il faut enregistrer ce montant dans la ligne de facture, car le prix du produit peut varier dans le temps).
Redéfinir la méthode toString() de manière judicieuse.
Encapsuler les attributs de cette classe et écrire un constructeur.

4. Une facture est composée des lignes de factures correspondant à l’achat d’un client, à une date donnée.
Ecrire une classe Facture en choisissant judicieusement la structure de données. Ecrire son constructeur.
Ecrire une méthode totalFacture() permettant de calculer le montant à payer par le client.

5. Une facturation est l’ensemble des factures émises par l’entreprise. Ecrire une classe Facturation
Ecrire une méthode chiffreAffaires(dateDebut, dateFin) permettant de connaître le montant des ventes entre 2 dates.
Ecrire une méthode listeFacturesClient(codeClient) permettant de retrouver l’ensemble des achats effectués par un même client

6. Ecrire dans la méthode main de la classe Facturation un exemple créant tous les objets nécessaires au test de fonctionnement de vos classes.