Vous êtes sur la page 1sur 3

République TUNISIENNE 2013/ 2014

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR


UNIVERSITE DE LA MANOUBA
Institut Supérieur des Arts Multimédia de la Manouba

Date : 02/01/2014 1er semestre Département : Informatique


Examen session principale Enseignants : F. SIALA,
Classe : 2ème année IM
Nombre de pages : 3 W. Messaoudi
Matière : P.O.O (JAVA) Durée : 2 h Documents : non autorisés

a) Exercice (6 pts)
1) Définir une classe RemplirTableau comportant un attribut privé tableau tab de 10 entiers.
2) Ajouter un constructeur permettant de remplir le tableau par des valeurs saisies au
clavier entre 0 et 100.
3) Modifier le constructeur de cette classe de manière à ce qu’il lance une exception de type
EntierException si l’entier à insérer dans le tableau est compris entre 10 et 20.
4) Ecrire la classe EntierException qui permet d’afficher « erreur ».
5) Ecrire la méthode main permettant de créer un objet de type RemplirTableau et de traiter
l’erreur.

b) Problème (14 pts)

On souhaite développer un programme qui gère le stock d'un magasin. On vous donne une
spécification du programme en termes de classes et d’interfaces:

Soit la classe générale des articles, notée « Article » :


Attributs :
• Nom: le nom du produit (attribut public)
• Prix d'achat: le prix avec lequel le supermarché achète le produit (attribut
privé)
• Prix de vente: le prix avec lequel le supermarché vend le produit (attribut
public)
• Fournisseur: le nom du fournisseur du produit (attribut public)
• Stock : nombre de pièces en stock (attribut public)
Constructeur : initialisant tous les attributs de la classe à partir des paramètres.
Méthodes :
 "Remplir_stock" : Mettre à jour le stock par la quantité entrée en paramètre.
La quantité peut être un nombre de kilos ou un nombre de pièces.
 "Info_Produit" : Affichage des caractéristiques du produit sur l'écran.

Question 1 : Ecrire le code Java de cette classe. Il faut aussi écrire les accesseurs de l’attribut
privé.

1
Soit les interfaces suivantes:
1) « Vendable_kilo » : Interface pour les produits qui se vendent par
kilogramme, ayant pour méthodes :
"Revenu" : Cette méthode reçoit la quantité vendue du produit (en nombre
de kilogrammes) et retourne le revenu du magasin.
2) « Vendable_pièce » : Interface pour les produits qui se vendent par pièces,
ayant pour méthodes:
"Revenu": Cette méthode reçoit la quantité vendue du produit (en nombre
de pièces) et retourne le revenu du magasin.
3) « Vendable_solde » : Interface pour les produits qui se vendent en solde,
ayant pour méthodes :
"Lancer_solde" : Cette méthode baisse le prix de vente du produit par le
pourcentage donné en paramètre et retourne le nouveau prix de vente.
"Terminer_solde" : Cette méthode augmente le prix de vente du produit
par le pourcentage donné en paramètre et retourne le nouveau prix de
vente.

Question 2 : Est ce qu'une interface peut être instanciée ? Expliquez pourquoi ?


Question 3 : Quelle est la différence entre une classe et une interface au niveau des
méthodes ?
Question 4 : Sachant que, pour le moment, il n’y a pas de lien entre la classe «Article » et ces
interfaces, écrire le code Java de ces trois interfaces.

Soit la classe Article_Electromenager, notée « AE » héritant de la classe « Article ».


L’article électroménager est vendable par pièce et peut être soldé. Dans cette classe il faut :
a) ajouter une propriété supplémentaire :

• Garantie : Nombre de mois de garantie


b) ajouter un constructeur : Initialisant tous les attributs de la classe à partir des paramètres.
c) ajouter des méthodes supplémentaires :

 "Info_Produit" : Affichage des caractéristiques du produit sur l'écran.


 "Taxe_PA" : Affichage du prix achat moins une taxe de 18%.

d) implémenter des méthodes des interfaces associées. La méthode « Revenu » fait un test sur la
quantité vendue par rapport au stock et modifie le stock. Le revenu du magasin dépend de la
quantité vendue du produit et du prix de vente.

Question 5 : Ecrire le code Java de cette classe.

Soit la classe Article_Alimentaire, notée « AA » héritant de la classe « Article ». L’article


alimentaire est vendable en kilo et ne peut pas être soldé. Dans cette classe il faut :
a) ajouter une propriété supplémentaire :

• Date_Expiration : La date d’expiration du produit


b) ajouter une méthode supplémentaire :

 "Info_Produit" : permet l’affichage des caractéristiques du produit sur l'écran.

2
c) Implémenter les méthodes des interfaces associées. La méthode « Revenu » fait un test sur la
quantité vendue par rapport au stock et modifie le stock. Le revenu du magasin dépend de la
quantité vendue du produit et du prix de vente.

Question 6 : Ecrire le code Java de cette classe. On suppose que le code du constructeur est
réalisé donc inutile de l’écrire.

Question 7 : Ecrire une classe Magasin contenant une méthode main permettant de :

1. Créer un tableau d’objets « dépôt » contenant les articles suivants :

Case Attributs d’objet


du Type Nom Prix d’achat Prix de Fournisseur Stock Garantie Date
tableau d’objet vente Expiration
(num)
0 AE Télé LCD 1000 1300 SAMSUNG 10 24 -
2 AA Tomate 1400 1600 SICAM 500 - 12/11/2014
1 AE Four 100 140 SOTACER 20 12 -
3 AA Jus 1500 1900 Général 200 - 03/06/2013
Alimentaire

2. Quel est le concept de l’approche Orientée Objets que vous avez utilisé dans le
remplissage du tableau ? Expliquez son intérêt.
3. Afficher les informations de tous les articles.

4. Mettre à jour le stock par les quantités suivantes :

num Quantité vendue


0 3
1 15
2 70
3 30

5. Calculer pour chaque article son revenu selon ces quantités.

6. Lancer un solde de 30% pour le produit « Télé LCD ».

Vous aimerez peut-être aussi