Vous êtes sur la page 1sur 8

UNIVERSITE DE SOUSSE

Institut Suprieur dInformatique et des


Techniques de Communication
Hammam Sousse

Enseignant :Saoudi Haythem A.U.2017/2018

programmation TP N2
Java Classe: 1DNI

Partie I
Une boite de dveloppement dsire dvelopper une application de gestion de
ressources de magasin de produits alimentaires.
Avant dentamer la ralisation de ce programme, la socit a commenc par une
tude du march qui a permis de dgager les diffrentes caractristiques dun
produit alimentaire et qui sont :
Un identifiant (entier)
Un libell (chaine de caractre)
Une marque (chaine de caractre)
Un prix (un nombre rel)

Le programme doit permettre lutilisateur de :


1. Crer un produit vide (sans attributs)
2. Crer des nouveaux produits tout en spcifiant les caractristiques
suivantes :
a. 1021, Lait et Delice
b. 2510, Yaourt et Vitalait
c. 3250, Tomate, Sicam et 1.200
3. Afficher les dtails de chaque produit cr en implmentant une mthode
afficher().
4. Attribuer le prix 0.700 au produit lait, afficher le produit modifi.
5. Complter les informations manquantes pour chaque produit

1
6. Afficher les produits modifis.
7. Ajouter (redfinir) la mthode toString() dans la classe Produit qui
renvoie une chane de caractres dcrivant le produit.
8. Afficher maintenant les produits dj crs en faisant appel la mthode
toString().
9. Ajouter un attribut date dexpiration de type Date et affecter des dates
aux produits existants.

2
Partie II

Dans le cadre de lamlioration du programme sur lequel vous tes affects


dans lentreprise et dans un souci constant dadaptation aux besoins du client,
vous tes demands de crer un autre module afin de grer les besoins des
propritaires des magasins.
Les diffrentes caractristiques dun magasin:
Un identifiant
Un nom
Une adresse
Capacit du magasin
Un ensemble de produits

Le module doit permettre aux propritaires des magasins en premier lieu dajouter
un nouveau produit au magasin, tout en prenant en considration quun magasin
peut contenir au maximum 50 produits.
Vous tes aussi demands dafficher les caractristiques du magasin, et le nom et
le prix de lensemble de ses produits.
Afin de protger les diffrentes caractristiques des objets cres votre
suprieur vous demande de restreindre laccs aux attributs de la classe Produit
en prenant en considration que le prix de ce dernier ne doit pas tre ngatif.
Ensuite il vous suggre dorganiser le code en des diffrents packages.
Finalement le programme doit permettre son propritaire de savoir le nombre
total de tous les produits de tous les magasins.

3
Partie III
Une fois le client a test les fonctionnalits prcdemment dveloppes
(ajout et laffichage des produits dans les magasins), il constate quelques
problmes et lacunes au niveau de la gestion des produits, tels que la possibilit
davoir des redondances de certains produits dans le mme magasin.
Pour cela votre suprieur vous demande de faire les modifications
ncessaires afin de remdier ce problme :

1) Crer une mthode comparer qui permet de tester la conformit de


produits, sachant que le client considre deux produits identiques dans le cas
o ils ont le mme identifiant, libell et prix,
Ceci doit tre fait avec deux faons ;
a. Mthode comparer prend un seul produit en paramtre
b. Mthode comparer prend deux produits en paramtre

2) Ajouter une autre mthode qui sert chercher un produit dans un magasin,
Cette mthode renvoie la position du produit (ou -1 si le produit nexiste pas).

3) Modifier la mthode ajouterProduit afin dajouter un produit donn une


seule fois

4) Crer une mthode qui permet de supprimer un produit du magasin


5) Crer une mthode qui affiche le magasin ayant un nombre suprieur de
produits entre deux magasins

4
Parti IV
Maintenant quon a russi grer les produits dun magasin, ltape
suivante consiste la gestion des employs des diffrents magasins. Pour cela on
distingue 3 types demploys (Caissier, Responsable et Vendeur), sachant quun
employ est caractris par un identifiant, un nom, une adresse et un nbr_heures
par mois, avec un maximum de 20 employs par magasin, ce module doit
permettre lajout des diffrents types demploys afin de les affecter un magasin,
tout en tenant compte quun vendeur est caractris aussi par un tauxDeVente, un
caissier par un numeroDeCaisse et un responsable par une prime.
1. Crer dans la mthode main deux magasins :

a. 1, " Carrefour", "Centre-Ville "


b. 2, "Monoprix", "Menzah 6"
2. Crer 2 caissiers, un vendeur et un responsable pour le premier magasin et
un caissier, 3 vendeurs et un responsable pour le deuxime magasin.
3. Afficher les caractristiques des employs dj crs (Quest-ce que vous
avez remarqu ?)
4. Crer et ajouter quelques produits pour chaque magasin
5. Afficher tous les dtails de chaque magasin (id, nom, adresse, capacit, les
produits et les employs).
6. Calculer et afficher les diffrents salaires pour les diffrents employs
sachant quun salaire se calcule comme suit :
- Les responsables sont pays suivant le nombre d'heures qu'ils ont
travaill dans un mois + une prime. Ils sont pays 10DT/H et pour
leurs heures supplmentaires (au-del de 160 heures) ils sont pays 20%
de plus que les heures normales.

5
- Les caissiers sont pays suivant le nombre d'heures qu'ils ont travaill
dans un mois (5DT/H), mais pour leurs heures supplmentaires (au-del
de 180 heures) ils sont pays 15% de plus que les heures normales.
- Les vendeurs sont pays avec une somme fixe (450 DT) multiplie par
le taux_de_vente (en %) qu'ils ont fait.

6
Partie V

Les propritaires des diffrents magasins voulaient grer leurs magasins


dune faon quils comportent divers types de produits.
En effet la gestion journalire des diffrents magasins consiste en lentre et la
sortie de divers types de produits alimentaires (produit laitiers et produits
agricoles), on va sintresse aux produits agricoles qui peuvent tre soit des
lgumes, soit des fruits ;
Tous les produits possdent des caractristiques dfinis auparavant. A
chaque produit agricole est associ un autre attribut pour indiquer la saison de
rcolte de ce produit.
On veut manipuler tous les catgories des produits travers de la mme
reprsentation : celle dun Produit.

1. Dfinissez les classes ProduitFruit et ProduitLegume.

2. Crer les produits suivants :

Produit Id Type libell quantit saison


P1 1254 Fruit Fraise 12.3 Mars
P2 1224 Fruit Pastque 50 Juin
P3 7896 Fruit Mandarine 25.6 Dcembre
P4 8521 Lgumes Artichauts 14 Janvier

3. Utiliser la mthode ajouterProduit(Produit p) pour ajouter ces


produits un magasin

4. Crer la mthode determinerTypeProduit() qui permet de dterminer


pour chaque produits cres sa famille ( fruit ou lgumes)

7
5. Pour chaque produit de type Fruit on souhaite calculer la quantit totale
de produit dans le magasin, pour cela on se propose dajouter la
mthode float calculStock() dans la classe Magasin.

6. Crer une nouvelle interface nomme Critere qui contient la


mthode estFrais(String saison) qui se comporte comme suit :

a. Pour un ProduitFruit : retourne true si la saison passe en


paramtre est identique la saison de rcolte du produit

b. Pour un ProduitLegume : retourne true si la saison passe en


paramtre est ne dpasse pas la saison de rcolte du produit de
plus que 1 mois