Académique Documents
Professionnel Documents
Culture Documents
Rattrapage 2013
Rattrapage 2013
Rattrapage 2013
2 juillet 2013
Examen de Rattrapage
Programmation orientée objet sous Java
3 heures
Mohand-Yazid SAIDI
Rappels et conseils
– Documents non autorisés. Seuls les supports de cours et de TP sont autorisés.
– Il est strictement interdit d’utiliser vos téléphones portables. Éteignez-les et mettez-les loin (les por-
tables ne doivent pas être visibles, ni à portée de main). Toute personne manipulant son portable se
verra exclure de l’examen.
– Répondez aux questions d’une manière claire et concise.
– Soignez le code.
Cet examen comporte deux parties : (1) partie sur les classes et l’héritage et (2) partie sur les interfaces
graphiques (GUI).
Bien que les deux parties de cet examen soient indépendantes, il vous sera possible d’utiliser les classes
de la première partie dans la seconde et vice-versa.
Question 1 (6 points) Écrire une classe abstraite Produit implémentant l’interface Article (voir la fi-
gure 1). Cette classe doit définir :
1. Deux champs privés : denommination de type String et prixHT (correspondant au prix du produit
hors taxes) de type double.
2. Un constructeur public permettant d’initialiser les deux champs de la classe avec les valeurs de ses
deux paramètres.
3. double getPrixHT () déclarée dans l’interface implémentée Article. Cette méthode doit retourner
la valeur du champs prixHT. La méthode double getTauxTVA () ne sera pas implémentée dans la
classe Produit.
concernant la denommination du produit, son prixHT (prix hors taxes), le taux de TVA qui lui est
appliqué, la partie TVA du prix total et le prix TTC. Ci-après un exemple d’affichage concernant un
produit Oranges dont le prix hors taxes est égal à 2 euro et dont le taux de TVA est de 0.055.
Produit Oranges [prixHT = 2.0, prixTTC = 2.11 dont TVA (0.055) = 0.11]
1. panneau [0] situé en haut de la fenêtre et contenant une étiquette (JLabel jLabelPrixHT) et un
champs de saisie JTextField jTextPrixHT de 8 colonnes. L’étiquette jTextPrixHT affichera le texte
suivant : Prix Hors Taxes.
2. panneau [1] situé au milieu de la fenêtre et contenant deux boutons radio : le premier bouton
tauxTVARadio [0] affichera le texte suivant : Produit Cosmétique, le second bouton tauxTVARadio [1]
affichera le texte suivant : Produit Alimentaire. Évidemment, les deux boutons radio ne doivent ja-
mais être cochés tous les deux (ils doivent donc être ajoutés à un groupe de boutons java ButtonGroup).
A la création, seul le deuxième bouton radio est coché.
3. panneau [2] situé en bas de la fenêtre et contenant un bouton JButton calculprixTTC intitulé
Calcul prix TTC et un champs de saisie JTextField jTextPrixTTC de 8 colonnes. Le champs de
saisie jTextPrixTTC sert à afficher le prix TTC d’un produit dont le prix HT est déterminé par le
champs de saisie jTextPrixHT et dont le type (ou taux de TVA) est déterminé par les boutons radio
tauxTVARadio [0] et tauxTVARadio [1]. Le champs de saisie jTextPrixTTC ne doit pas être éditable.
Question 4 (5 points) Complétez le code de la classe Fenetre afin d’obtenir l’affichage illustré sur la
figure 4.
Question 5 (1.5 points) Nous voulons traiter les événements associés au bouton calculprixTTC dans la
classe Fenetre. Quelle(s) interface(s) la classe Fenetre doit-elle implémenter ?
public Fenetre () {
setTitle ... ; setBounds ...
panneau = new JPanel [3] ;
for (int i=0; i < panneau.length ; ++i) panneau[i] = new JPanel () ;
Container c = getContentPane() ;
c.add(panneau[0] ... ); c.add(panneau[1]... );
c.add(panneau[2]... );