Vous êtes sur la page 1sur 11

POO ANNEXE

ANNEXE

71

POO ANNEXE

EXAMEN POO
Session : Juin 2008 Enseignants : Mlle Sghaier Imene, Mme Aloulou Narjes, Mr Rekik Rojdi Dure : 1h30 Groupe : II3, IG3, RI3 : Non autoriss Nb. Pages: 2

Enonc :
Une socit de vente par correspondance propose des articles dans diffrents rayon : habillement, lectro-mnager, vido/hi-fi et culturel. Chaque article est caractris par une dsignation (son nom), une rfrence (incrment de 1 pour un nouvel article), un descriptif, un prix HT. Il est possible dobtenir le prix TTC dun article et dafficher les informations le concernant. Les vtements sont en plus dfinis par leur composition qui numre les matires qui les composent et dans quelles proportions. Le taux TVA sur les vtements est de 19.6%. Les frais de port sont 1 dinar par vtement. Les articles de llectro-mnager et de la vido/hi-fi possdent une consommation lectrique, une dure de garantie, un poids (en Kg) et des dimensions (l x h x p) en cm. Le taux TVA sur les articles est de 19.6%. Les frais du port sont de 1 dinar tous les deux kilos majors de 10% si le volume de larticle dpasse 0.1 m3. La garantie est de 3 ans en lectro-mnager et de 5 ans en vido/hi-fi. Les articles culturels sont rpartis entre livres et disques. La TVA sur les livres est de 5.5 % alors quelle est de 19.6 % sur les disques. Les frais de port sont nuls pour les produits culturels. Questions : Dvelopper toutes les classes en respectant le digramme de classes (Vente par correspondance) ; Pour la composition des vtements (la classe Composition), on peut utiliser une Map qui pour chaque matire donne un pourcentage. Noublier pas de vrifier que la somme des pourcentages vaut 100. Remarque : La relation entre la classe X et Y sera traduite en java par :
X
1

public class X{ private Y y ; public X(parameters of X){ y= new Y(parameters of Y) ; }}

72

POO ANNEXE

Digramme de classe : Vente par correspondance 73

POO ANNEXE

EXAMEN POO
Session : Janvier 2008 Enseignants : Mlle Sghaier Imene, Mme Aloulou Narjes, Mr Rekik Rojdi Dure : 1h30 Groupe : II3, IG3, RI3 : Non autoriss Nb. Pages: 3

Enonc :
Une agence de location de voitures offre ses clients la possibilit de choisir la voiture loue en fonction de diffrents critres. Les voitures sont dfinies par une marque, un nom de modle, une anne de production et un prix de location la journe. Pour simplifier les deux premiers paramtres seront des objets de la classe String et les deux derniers seront des int. Deux voitures sont considres gales si tous leurs attributs sont gaux. La classe Voiture pour laquelle on souhaite disposer des mthodes habituelles equals et toString. La mthode toString retournant une chane de caractres reprenant la marque, le nom du modle et le prix de location. La mthode equals teste si une voiture est gale une autre. Il est possible de slectionner parmi les voitures louer toutes les voitures satisfaisant un critre donn. On dfinit l'interface Critere ainsi :
public interface Critere { //@param v la voiture dont on teste la confirmit // @return true si et seulement si la voiture est conforme au //critre (on dit que v satisfait le critre) public boolean estSatisfaitPar(Voiture v); }

La classe Agence gre des locations des voitures. Un client ne peut louer qu'un vhicule la fois. On supposera pour simplifier que les clients sont identifis par une chane de caractres (leur nom par exemple). On dcide de grer ces locations par une table (java.util.Map) qui associe les clients reprsents par leurs noms (cls) avec les voitures (valeurs) qu'ils ont loues. Un client n'est prsent dans cette table que si il loue actuellement une voiture.

74

POO ANNEXE

Travail demand :
Donner le code d'une classe CritereMarque qui est un critre satisfait par toutes les voitures d'une marque donne. La marque est prcise la construction du critre. Donner le code d'une classe CriterePrix qui est un critre satisfait par toutes les voitures dont le prix est infrieur un prix fix la construction du critre. Donner le code dune classe Voiture. NB : Les classes CritereMarque et CriterePrix implmentent toutes les deux linterface Critere. On donne ici une description des mthodes de la classe Agence :
public void loueVoiture(String client, Voiture v) throws VoitureException : permet

au client de louer la voiture v ; un client ne peut louer quune seule voiture, il ne peut louer une autre que sil rend la premire. L'exception est leve soit si la voiture n'existe pas dans l'agence soit si elle est dj Loue.
public void afficheSelection(Critere c) : permet dafficher toutes les voitures qui satisfont un critre c donn qui peut tre videment un CriterePrix ou un CritereMarque. public boolean estLoueur(String client) : renvoie true si et seulement si le client est

un client qui loue actuellement une voiture.


public boolean estLoue(Voiture v) : renvoie true si et seulement si la voiture est

actuellement loue.
public void rendVoiture(String client) :le client rend la voiture qu'il a loue. Il ne se

passe rien si il n'avait pas lou de voiture.


public Iterator lesVoituresLouees() qui renvoie la collection des voitures de

l'agence qui sont actuellement loues.

75

POO ANNEXE

Diagramme de classe : Agence de Location de Voitures

76

POO ANNEXE

DEVOIR SURVEILLE Matire : Programmation Oriente Objets : Non autoriss Groupe : II3 : 1H

Enseignante : Mlle I.Sghaier

Nb. Pages: 2

Exercice1: (10 pts: 5+5) 1 re partie: 1. Crer une classe employe correspondante au schma UML suivant. La mthode decrisToi() affiche lcran le nom et le prnom de lemploy
Class employe String nom String prenom Double Salaire int NCI Employe() Employe(int n) Employe(String nom,String prenom) Employe(String nom,String prenom,int n, double s) decrisToi() String getNom() String getPrenom() Double getSalaire() Int getNCI()

+ + + + + + + + +

2. Crer une classe equipe qui utilise la classe Employe. La fonction main de Equipe comprendra la cration dun tableau de quatre employs et laffichage de leurs noms 3. Peut-on modifier la variable dinstance nom depuis lextrieur de la classe ? et depuis lintrieur ? 2me Partie : 1. Crer une classe technicien qui hrite de la classe employe. Celle-ci comprendra une variable dinstance supplmentaire : specialite. a. Ecrire des constructeurs : sans arguments et 1 seul argument String spcialit . Vous utiliserez les constructeurs de la classe mre. b. Redfinisser la mthode decrisToi(), en faisant appel la mthode de la classe mre. (dcris toi va afficher lcran : nom, prnom, spcialit).

77

POO ANNEXE

2. En changeant les modificateurs daccs des donnes membres de la classe mre, de private vers protected peut-on accder ces variables de lextrieur de la classe Employe? Quel danger cela prsente t-il en termes dencapsulation ? 3. Expliquer le mcanisme de construction dune classe drive 4. Ecrire une classe, qui teste la classe technicien. Exercice 2: (10 pts : 6+4) 1. Ecrire une classe appele FonctionMath qui contient les mthodes statiques suivantes : Factoriel : cest une mthode qui permet de calculer et dafficher le factoriel dun entier pass lors de lexcution. RacineCarr : Cest une mthode qui permet de calculer et dafficher la racine carre dun nombre n pass lors de lexcution BinaryCode : Cest une mthode qui permet de lire un entier sur la ligne de la commande et afficher sa correspondance en binaire HexCode : Cest une mthode qui permet de lire un entier sur la ligne de la commande et afficher sa correspondance en Hexadcimal. NB : Pour les trois dernires mthodes utiliser les mthodes suivantes de la classe Integer : toBinaryString et toHexString. 2. Ecrire une classe TestFonctionMath qui utilise ces fonctions mathmatiques.

78

POO ANNEXE

Devoir la maison
Soit la classe Liste caractrise par les attributs suivants : - tab : reprsente un tableau dentiers. Taille : reprsente le nombre dlments de la liste. Et les mthodes suivantes : - Ajout_tte : Ajoute un lment la tte de la liste. Ajout_queue : Ajoute un lment la fin de la liste. Ajoutk : Ajoute un lment une position donne. Suppression_tte : Supprime le premier lment de la liste. Suppression_queue : Supprime le dernier lment de la liste. Suppk : Supprime llment se trouvant une position donne. Suppval : Supprime un lment donn dune liste. Accesval : Retourne la position de 1 re occurrence dun lment dans une liste. Liste_vide : Vrifie si la liste est vide ou non. Liste_pleine : Vrifie si la liste est sature ou non. Longueur : retourne la taille dune liste. Occurrence : Retourne le nombre doccurrence dun lment donn.

Travail demand
1- Ecrire en Java la classe Liste 2- Ecrire une classe Test_Liste qui permet de crer un objet de type Liste et le manipuler travers lappel des mthodes de cette classe.

79

POO ANNEXE

DEVOIR SURVEILLE Matire : Programmation Oriente Objets : Non autoriss Groupe : II3 : 1H

Enseignante : Mlle Imene Sghaier

Nb. Pages : 2

Partie I 1. Ecrire en java la classe Robot obissant au schma UML suivant.

orientation : est un attribut qui dsigne lorientation du Robot (1 = Nord, 2 = Est, 3 = Sud, 4 = West) La mthode tourner () qui permet de tourner lorientation du Robot. Les constructeurs qui permettent dinitialiser les attributs du Robot La mthode affiche() qui permet dafficher ltat et lorientation dun Robot 2. Ecrire une classe TestRobot qui utilise cette classe ; sa fonction main comprendra la cration dun tableau de quatre Robot, initialiser leur attributs, les afficher, les mettre en marche (etat=true) ainsi que les orienter vers des orientations diffrentes chacun de lautre. Partie II Soit une classe RobotMobile qui hrite de Robot et ayant en plus les attributs entiers privs abs et ord : ce sont les attributs qui dfinissent la positon de RobotMobile (abscisse et ordonn) ainsi quune mthode void avancer(int x) qui permet davancer le Robot selon son orientation :

80

POO ANNEXE

si on avance de x vers lEst labscisse augmente de x, si on avance vers le West de x labscisse diminue de x, si on avance vers le nord de x lordonne augmente de x, si on avance vers le Sud de x lordonne diminue de x, Et une mthode void affichePosition() qui affiche la position (coordonnes). 1. Ecrire un constructeur sans argument de la classe RobotMobile 2. Ecrire un constructeur quatre arguments (type, code, abs et ord) de la classe RobotMobile 3. Redfinissez la mthode affiche tout en utilisant celle de la classe mre et la mthode affichePosition(). 4. Ecrire une classe testRobotMobile qui permet de crer un RobotMobile, lui afficher les attributs et lui appliquer la squence dactions suivante tout en affichant chaque fois la position du Robot ainsi que son orientation. a. Tourner vers lEst b. Avancer de 4 vers le West c. Avancer de 6 vers le Nord d. Avancer de 14 vers lEst e. Reculer de 8 vers le sud Bon courage !

81