Sunteți pe pagina 1din 16

ISTA HAY RYAD TDI

2012/2013

Programmation Oriente Objet Srie dexercices


Exercice 1 : Ecrivez une classe Livre avec les attributs suivants: titre, auteur, prix, annee. La classe Livre doit disposer des constructeurs suivants : Livre(), Livre(titre), Livre(titre, auteur), Livre(titre, auteur, prix), Livre(titre, auteur, prix, annee), Livre(Livre). La classe Livre doit contenir des accesseurs et mutateurs pour les diffrents attributs. La classe livre doit aussi contenir une mthode afficher() pour afficher les attributs des livres. Une mthode compter() pour avoir le nombre des instances cres et une mthode type() qui va prendre 1 si le prix de livre <100 et la valeur 2 si le 100<=prix< =500 et 3 si 500<prix.

Ecrivez aussi un formulaire pour tester cette classe. Exercice 2 : Raliser une classe Cercle. Chaque Cercle sera caractris par un nom (de type chaine) , un centre de type chaine , une abscisse (de type double) et lordonne (de type double) et un rayon On prvoira : 1. un constructeur recevant en arguments le nom , le centre et labscisse et lordonne du centre, et le rayon. 2. une mthode affiche imprimant le nom du cercle le centre et son abscisse et ordonne et le rayon , 3. Une mthode translate(dx, dy) effectuant une translation du centre qui fait changer l'abscisse (x + dx) et l'ordonne (y+dy). 4. Une mthode pour calculer le primtre() 5. Une mthode pour calculer la surface() 6. Une mthode nbcercles() pour afficher le nombre des cercles ayant le rayon < 10cm et le nombre des cercles dont le rayon>10cm crire un programme utilisant cette classe pour crer un cercle, en afficher les caractristiques, afficher le primtre et la surface. le dplacer avec dx=2 et d y=4 et en afficher nouveau les caractristiques. 1. Crer un cercle C de nom C, de centre O (9,4) et de rayon 12. 2. Changer le rayon 13cm et afficher le nouveau rayon.
Formatrice : BOUROUS Imane

ISTA HAY RYAD TDI Exercice 3 :

2012/2013

Dfinir une classe ville, qui va contenir une variable dont le rle sera de stocker le nom, une autre stockera le nombre d'habitants et la dernire se chargera du pays. Une mthode afficher() . Une mthode comparer (ville) : pour comparer les nombres d'habitants des deux villes. C1() . Le nombre des villes qui ont un nombre dhabitant < 10000 C2() Le nombre des villes qui ont un nombre dhabitant entre 10000 et 1000000 C3() Le nombre des villes qui ont un nombre dhabitant > 1000000 La mthode catgorie () : dans quelle tranche se trouve la ville en question. Selon le nombre d'habitants, le caractre renvoy changera. {0, 1000, 10000, 100000, 500000, 1000000, 5000000, 10000000}; {'?', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'} ; Par exemple si le nombre dhabitants <= 1000 la mthode renvoie le char A. si le nombre dhabitants =0 la mthode renvoie le char ?. Classe testville pour tester la classe ville Changer le nombre dhabitants dune ville V. Affiche le pays de la Ville V

Exercice 4 : 1- Crez la classe Salarie. Cette classe possdera 5 proprits de visibilit publique : matricule nom Prnom salaire Taux Charges Sociales Matricule Nom Prnom Salaire TauxCS Integer String String Double Double

Ces proprits doivent seulement tre accessibles par le biais des accesseurs en lecture/criture mis en uvre par le biais de linstruction Property. 2- Implmentez la mthode CalculerSalaireNet(). Elle doit calculer le salaire net dun employ qui quivaut :
Formatrice : BOUROUS Imane

ISTA HAY RYAD TDI Salaire (salaire*TauxCS) et retournera la valeur calcule. Et renvoyer la valeur ainsi calcule.

2012/2013

3- Pour tester la dfinition de votre classe et son bon fonctionnement : Crez un module et une procdure principale Main. Dclarez 2 variables de type Salarie et crez 2 instances de type Salarie. Renseignez les proprits de ces deux salaris. Choisissez des valeurs significatives pour les salaires et le taux de charge sociale afin de tester correctement le calcul ralis par la mthode CalculerSalaireNet. Pour des salaires respectifs de 5 000 et 10 000 dirhams un taux de charges sociales de 25 % , vous devez trouver 3 750 et 7 500. 4- Le taux de charges sociales est en fait commun tous les salaris. Pour viter toute redondance de cette proprit, vous devriez donc la dclarer comme partage au niveau de la classe Salarie et non comme une proprit spcifique des objets instancis partir de la classe. Utilisez pour cela le mot cl Shared au niveau de la dfinition de la proprit TauxCS. 5- Testez de nouveau votre classe. 6- Implmentez deux nouveaux constructeurs dinitialisation : Un qui permet de renseigner le matricule lors de linstanciation Un qui permet de renseigner le matricule et le nom Noubliez pas que le constructeur par dfaut doit alors tre dfini explicitement. 7- Testez votre code : Instanciez deux nouveaux objets laide de ces constructeurs. 8- Implmentez un constructeur de recopie pour faire un clone dun objet de rfrence. Exercice 5 : Dans l'avion Paris-Rabat, on peut trouver les personnes suivantes : Aymane : Pilote Ismail : coPilote Firdaous : Htesse n1 Meriem : Htesse n2 Khalid : passager sige n1 Jamal : passager sige n2 etc Chacune de ces personnes peut tre reprsent e sous la forme d'objet et on peut dire que chacun de ces objets appartient une de ces catgories : Pilote, Htesse ou Passager
Formatrice : BOUROUS Imane

ISTA HAY RYAD TDI On peut construire le diagramme suivant : CPilote


Prnom N de tel Adresse Age Nbre d'heures de vol Salaire Date_embauche les constructeurs les accesseurs EstFatigue() Sub Affichage() Prime_rendement() Anne_exprience()

2012/2013

CHotesse
Pr nom N de tel Adresse Age Nbre de langues Salaire Date_embauche les constructeurs les accesseurs ParlePlus3Langues() Sub Affichage() Prime_rendement() Anne_exprience()

CPassage
Prnom N de tel Adresse Age N de son sige les constructeurs les accesseurs Chanceux() Affichage()

La prime de rendement sera calcule comme suit: Si nombre danne dexprience Si nombre danne dexprience Si nombre danne dexprience Si nombre danne dexprience 2 < NAE <=4 alors prime=salaire 4 < NAE <=6 alors prime=salaire* 1,5 6 < NAE <=8 alors prime=salaire *2 NAE > 8 alors prime=salaire *4

La mthode estfatigu() sera calcul comme suit :

Si le nombre de vol assur par le pilote est suprieur 5 heures, alors il est fatigu sinon il ne lest pas encore. La mthode chanceux() sera calcul comme suit :

Si le nombre de son sige est diffrent de 13 alors il est chanceux. On vous demande dans lexercice dessayer doptimiser les classes, on crant ventuellement des classes hrites partir dautres classes. Il est galement demand de : Crer les constructeurs dinitialisation pour chaque classe cre Crer une variable permettant de donner un nombre chaque passager. (et faire en sorte que ce compteur sincrmente automatiquement chaque instanciation, passager Khalid aura le numro 1, passager Jamal le numro 2 .) Ecrire un module principal permettant de tester le bon fonctionnement des classes et leurs mthodes respectives.

Exercice 6 : Pokemons

Formatrice : BOUROUS Imane

ISTA HAY RYAD TDI

2012/2013

Les Pokmons sont des gentils animaux qui sont passionns par la programmation objet en gnral et par le polymorphisme en particulier. Il existe quatre grandes catgories de pokmons : - Les pokmons sportifs : Ces pokmons sont caractriss par un nom, un poids (en kg), un nombre de pattes, une taille (en mtres) et une frquence cardiaque mesure en nombre de pulsations la minute. Ces pokmons se dplacent sur la terre une certaine vitesse que lon peut calculer grce la formule suivante : vitesse = nombre de pattes * taille * 3 - Les pokmons casaniers : Ces pokmons sont caractriss par un nom, un poids (en kg), un nombre de pattes, une taille (en mtres) et le nombre dheures par jour o ils regardent la tlvision. Ces pokmons se dplacent galement sur la terre une certaine vitesse que lon peut calculer grce la formule suivante : vitesse = nombre de pattes * taille * 3 - Les pokmons des mers : Ces pokmons sont caractriss par un nom, un poids (en kg) et un nombre de nageoires. Ces pokmons ne se dplacent que dans la mer une vitesse que lon peut calculer grce la formule suivante : vitesse = poids / 25 * nombre de nageoires

Pour chacune de ces trois catgories de pokmons, on dsire disposer dune mthode toString qui retourne (dans une chane de caractres) les caractristiques du pokmon. Par exemple la mthode toString() applique sur un pokmon sportif retournerait : "Je suis le pokmon Pikachu mon poids est de 18 kg, ma vitesse est de 5,1 km/h j'ai 2 pattes, ma taille est de 0,85m ma frquence cardiaque est de 120 pulsations la minute" Cette mme mthode applique sur un pokmon casanier pourrait retourner : "Je suis le pokmon Salameche mon poids est de 12 kg, ma vitesse est de 3,9 km/h j'ai 2 pattes, ma taille est de 0,65m je regarde la tl 8h par jour" Sur un pokmon des mers : "Je suis le pokmon Rondoudou mon poids est de 45 kg, ma vitesse est de 3,6 km/h j'ai 2 nageoires" Question 1. Raliser un diagramme de classes permettant de grer la hirarchie des Pokmons. Question 2. Programmer ces classes en VB. Question 3. Programmer un module de test. Exercice 3 : Soit le diagramme de classe suivant :

Formatrice : BOUROUS Imane

ISTA HAY RYAD TDI

2012/2013

Crer la classe abstraite Personne. Crer la classe Ouvrier, la classe Cadre et la classe Patron qui hritent de la classe Personne. et prvoir les constructeurs ( 3 et 0 arguments) de chacune des 3 classes, ces trois classes sont des classes finales. Le patron a un salaire qui est gal x% du chiffre d'affaire : salaire = cA*pourcentage/100 Le cadre a un salaire qui dpend de son indice : E1 : salaire annuel brut 130.000,00 Dhs, E2 : salaire annuel brut 150.000,00 Dhs, E3 : salaire annuel brut 170.000,00 Dhs, E4 : salaire annuel brut 200.000,00 Dhs, Louvrier a un salaire qui est salaire = SMIG + ( dateCourante - dateEntree)*150. De plus, le salaire ne doit pas dpasser SMIG*2. Ecrire la mthode float getSalaire() qui permet de calculer le salaire pour chacune des classes. Ecrire la mthode affichier_Info() qui affiche le nom, le prenom, la socit , le salaire et le poste occup (On pourra utiliser la mthode afficher_Info() de classe mre et rajouter l'information du poste occup). Le programme principal devra crer 1 patron et 2 cadres aux indice E1 et E3 et 5 ouvriers. Tester les diffrentes fonctions.

Exercice 7 :
Formatrice : BOUROUS Imane

ISTA HAY RYAD TDI Partie I : 9- Crez la classe Salarie. Cette classe possdera 5 proprits de visibilit publique : matricule nom Prnom salaire Taux Charges Sociales Matricule Nom Prnom Salaire TauxCS Integer String String Double Double

2012/2013

Ces proprits doivent seulement tre accessibles par le biais des accesseurs en lecture/criture mis en uvre par le biais de linstruction Property. 10- Implmentez la mthode CalculerSalaireNet(). Elle doit calculer le salaire net dun employ qui quivaut : Salaire (salaire*TauxCS) et retournera la valeur calcule. Et renvoyer la valeur ainsi calcule. 11- Pour tester la dfinition de votre classe et son bon fonctionnement : Crez un module et une procdure principale Main. Dclarez 2 variables de type Salarie et crez 2 instances de type Salarie. Renseignez les proprits de ces deux salaris. Choisissez des valeurs significatives pour les salaires et le taux de charge sociale afin de tester correctement le calcul ralis par la mthode CalculerSalaireNet. Pour des salaires respectifs de 5 000 et 10 000 dirhams un taux de charges sociales de 25 % , vous devez trouver 3 750 et 7 500. 12- Le taux de charges sociales est en fait commun tous les salaris. Pour viter toute redondance de cette proprit, vous devriez donc la dclarer comme partage au niveau de la classe Salarie et non comme une proprit spcifique des objets instancis partir de la classe. Utilisez pour cela le mot cl Shared au niveau de la dfinition de la proprit TauxCS. 13- Testez de nouveau votre classe. 14- Implmentez deux nouveaux constructeurs dinitialisation : Un qui permet de renseigner le matricule lors de linstanciation Un qui permet de renseigner le matricule et le nom Noubliez pas que le constructeur par dfaut doit alors tre dfini explicitement. 15- Testez votre code : Instanciez deux nouveaux objets laide de ces constructeurs. 16- Implmentez un constructeur de recopie pour faire un clone dun objet de rfrence.
Formatrice : BOUROUS Imane

ISTA HAY RYAD TDI

2012/2013

17- Implmentez la mthode ToString() qui renverra une chane constitue de la liste des proprits de votre objet, avec le sparateur ; entre 2 proprits. Pour tester le bon fonctionnement de la mthode, affichez la valeur retourne par celle-ci la console. 18- Implmentez la mthode Equals() qui renverra True si les deux objets sont gaux, False sinon. Pour tester le bon fonctionnement de la mthode, affichez la valeur retourne par celle-ci la console. Partie II : Crez une classe Commercial en drivant la classe Salarie. Cette classe aura 2 proprits supplmentaires pour calculer la commission : chiffre d'affaire chiffreAffaire Double commission en % commission Integer Crez les deux constructeurs standards de la classe Commercial (par dfaut et initialisation). Ne pas oublier d'appeler les constructeurs quivalents de la classe de base. Crez les mthodes d'accs aux proprits supplmentaires. Surchargez la mthode CalculerSalaireNet pour calculer le salaire rel (fixe + commission). Surchargez les autres mthodes de la classe de base pour lesquelles on jugera ncessaire de faire ainsi. Testez la classe Commercial

Exercice 8 :
On veut construire un programme capable dafficher les informations gomtriques colores ( surfaces, primtre et volume) segment : dfinit par un codeFigure, une couleur, un centre, et une distance Carre : dfinit par un codeFigure ,une couleur, un centre, et le ct, on peut calculer son primtre, et sa surface . Cercle : dfinit par un codeFigure, une couleur, un centre, et un rayon, on peut calculer son primtre et sa surface. Cylindre : dfinit par un codeFigure, une couleur, un centre, un rayon et une hauteur, on peut calculer sa surface et son volume Cube : dfinit par un codeFigure, une couleur, un centre, et la valeur du ct, on peut calculer sa surface et son volume La classe Figure est la classe principale, elle permet aussi dafficher les informations des figures.
Formatrice : BOUROUS Imane

des figures

ISTA HAY RYAD TDI

2012/2013

Le codefigure est un numro qui sincrmente automatiquement lors de la cration de la figure. Comme nous pensons devoir ajouter ultrieurement de nouveaux types de figures gomtriques, nous dcidons dutiliser des interfaces pour dcrire leurs comportements communs. 1. Aprs avoir tudi les diffrences et les points communs entre les classes que nous avons distingues, dcrivez la ou les interfaces utiles et prcisez les classes qui les implmenteront. 2. Crer les interfaces ncessaires 3. Crer la classe figure. 4. Crer les autres classes (constructeurs, proprits, et les mthodes ncessaires) 5. Pour chacune de ces catgories de figures, on dsire disposer dune mthode toString qui retourne (dans une chane de caractres) les caractristiques de chaque figure. 6. Crer un module de tests. Exercice 9 Un fan de Musique dsire grer ces CDs musicaux. Un CD est caractris par son numro, son titre, son genre (Rock, Pop, Metal, ..), sa date ddition et son artiste. On demande de grer les CDs musicaux : 1. Ecrire la classe CD avec le constructeur dinitialisation 2. Ajouter les accesseurs et modificateurs 3. Ajouter la mthode toString qui retourne la description dun CD sous forme de chaine de caractres. 4. Ecrire la classe GestionCDs qui utilise un ArrayList et gre les CDs. Ajouter les mthodes : a. AjoutCD b. RechercherCD : La recherche peut se faire par numro de CD ou par titre (prvoir deux mthodes pour la rechercher). c. AfficherCDs On souhaite grer la rpartition des modules entre les formateurs dun institut de formation professionnelle. Exercice 10 I. Un tudiant est dfini par son nom, son prnom, un ensemble de notes (un tableau de double) et une moyenne (double). Ces caractristiques constituent lensemble des donnes du type Etudiant. a. Crer la classe tudiant b. Ajouter une mthode qui permet de calculer la moyenne des notes de ltudiant c. Ajouter la mthode toString qui permet dafficher pour chaque etudiant, son nom, prnom, ces notes et sa moyenne. II. Afin de vrifier le bon fonctionnement de cette classe Etudiant, il est ncessaire de construire un programme principal. III. Une classe ClasseE est dfinie par un ensemble dtudiants, cest--dire un ArrayList dobjets Etudiant. a. Crer la classe ClasseE avec une mthode toString qui permet laffichage des tudiants de la classe.
Formatrice : BOUROUS Imane

ISTA HAY RYAD TDI

2012/2013

b. Ajouter une mthode classementEtudiants qui permet de classer les tudiants dans lordre dcroissant des moyennes. (On utilisera lalgorithme de tri par bulle). IV. Afin de vrifier le bon fonctionnement des deux classes modifier le programme principal pour quil offre un menu permettant de: 1. Ajouter un tudiant 2. Supprimer un tudiant 3. Modifier un tudiant 4. Afficher les tudiants 5. Afficher les informations dun tudiant 6. Afficher le classement Exercice 11 Reprendre la classe Etudiant de lexercice 2. On modifie la classe ClasseE afin de : Crer un objet de type Hashtable Stocker les tudiants dans cet objet en les associant leur cl. 1. Dans la classe Etudiant, ajouter un numro dinscription. 2. Dans la classe ClasseE, crer un objet de type Hashtable appeler le liste. 3. Ajouter une mthode ajouterEtudiant qui ajoute un tudiant la liste. La cl serait son numro dinscription. 4. Ajouter une mthode supprimerEtudiant qui supprime un tudiant pass en paramtres. 5. Ajouter une mthode rechercherEtudiant qui cherche un tudiant dans la liste et laffiche ou affiche un message derreurs si ltudiant nexiste pas. 6. Ajouter une mthode qui permet de parcourir la liste et afficher les tudiants. Exercice 12 Soit la classe module qui modlise un module et qui comportera les attributs suivants : - Reference - intitule Soit la classe Formateur qui modlise un Formateur et qui comportera les attributs suivants : - matricule - nom - prenom - echelle - listeModule 1- Codage de la classe Module a. Ecrire la classe Module avec un compteur des objets crs. b. Ecrire un constructeur dinitialisations contenant tous les attributs de la classe et un constructeur par dfaut. c. Ecrire la mthode tostring permettant laffichage des attributs. 2- Codage de la classe Formateur a. Ecrire la classe Formateur avec un compteur des objets crs. b. Ecrire un constructeur dinitialisations contenant tous les attributs de la classe et un constructeur par dfaut. c. Ecrire la mthode tostring permettant laffichage des attributs.
Formatrice : BOUROUS Imane

ISTA HAY RYAD TDI

2012/2013

3- Ajouter la mthode compare qui teste lgalit de 2 objets Formateur (2 objets Formateur sont gaux sils ont le mme matricule). 4- Ajouter une mthode ajouter_module() qui ajoute un module la liste des modules pris en charge par un formateur. 5- Ajouter une mthode supprimer_Module qui supprime un module de la liste des modules dun formateur. 6- ajouter une mthode afficher_module() qui affiche les modules affects un formateur. 7- ajouter une mthode vider_module() qui supprime tous les modules affects un formateur. 8- Ecrire un programme de test qui cre 4 formateurs et 5 modules. Exercice 13 : (Les comptes bancaires et les Clients -Personne) : Ecrire une classe Personne qui contient les lments suivants : nom (une chane de caractres), date de naissance (trois entiers pour le jour, le mois, lanne). On crira galement un constructeur associ ainsi quune mthode daffichage public String toString() rudimentaire qui affiche les champs dune personne. On naffichera pas la date de naissance. On se propose de dcrire simplement les informations ncessaires la cration dun compte bancaire. On distinguera deux types de comptes, les comptes courants et les comptes dpargnes qui seront implments par deux classes distinctes CompteCourant et CompteEpargne drivant toutes les deux dune mme classe abstraite Compte. Les comptes pargnes ont un montant minimal qui sera reprsent par un champ depotMinimal. Dans la classe abstraite Compte, les champs seront : - Une personne p de type personne - Un entier numro reprsentant le numro du compte. - Un entier long montant reprsentant le montant du compte. Chaque nouveau client devra avoir un numro de compte diffrent et un mme client peut avoir plusieurs comptes. La classe abstraite Compte dfinira une mthode simulant le dpt dune somme sur un compte. On disposera aussi dune mthode simulant le retrait dun compte. Sur un compte courant, le retrait ne sera effectu que si le compte ne devient pas ngatif. Sur un compte pargne, le retrait ne sera effectu que si lopration namne pas en dessous de la valeur de dpt minimal. Question 1: Ecrire la classe abstraite Compte avec les dclarations des mthodes abstraites et dfinitions des mthodes concrtes. Question 2 : Ecrire les classes CompteCourant et ComptEpargne qui drivent de Compte avec leurs mthodes et leurs constructeurs. Pour les comptes courants, on crira deux constructeurs, lun deux crant un compte de montant nul. Question 3 : Ajouter aux classes CompteCourant, CompteEpargne, Compte une mthode public String toString( ) qui permet laffichage dun compte. On affichera pour chaque compte, la personne, le numro du compte et son type (courant ou pargne), puis le montant. Question 4 : On cre maintenant une classe Banque qui contient une collection reprsentant lensemble des comptes. La classe Banque contiendra par exemple le champ Base de type Collection. Ecrire dans la classe Banque une mthode Void afficherComptesClient (Personne p) Qui permet dafficher tous les comptes dune personne donne. Question 5 :
Formatrice : BOUROUS Imane

ISTA HAY RYAD TDI

2012/2013

Le directeur de la Banque dcide pour le nouvel an de crditer de 100 Dhs tous les comptes pargne des personnes ges de moins de 28 ans (On prendra ceux dont la date de naissance est suprieur ou gale 1985). Ecrire dans la classe Banque une mthode void incrementerNouvelAn( ) qui ralise cette faveur. Des mthodes pourront tre ajoutes dans les autres classes.

Problme 1

EFM POO 2012 :(barme 20 pts)

On veut raliser une application pour la gestion des formateurs, des classes et des stagiaires de votre tablissement. On suppose quun formateur est responsable sur plusieurs classes, et chaque classe contient plusieurs Stagiaires.
Un formateur est caractris par son matricule, nom, prnom, DateNaissance, SalairedeBase et poste qui est par dfaut Permanent , et la liste des classes qui lui est affect (en utilisant une collection). Pour une Classe, on trouve le code (auto), la filire, son responsable (qui est un stagiaire) et la liste des stagiaires (en utilisant une collection) Chaque Stagiaire est caractris par son numro dinscription, nom et dateNaissance. Questions :

1) Classe Stagiaire (6 pts)


a. Crer la classe Stagiaire, avec le constructeur qui initialise tous les paramtres et proprits ncessaires. (2 pts) b. Crer la mthode toString qui retourne sous forme de chaine de caractres les informations dun employ. (1 pt) c. Crer une mthode equals qui permet de comparer si deux stagiaires possdent le mme nom. (1 pt) d. Grer par une exception, le cas ou la date de naissance est postrieure la date daujourdhui. (2 pts) 2) Classe Classe (7 pts) a. Crer la classe Classe, avec le constructeur dinitialisation et proprits ncessaires. (2 pts) b. Crer la mthode ajouterStagiaire(.) qui ajoute un stagiaire la classe. (1 pt) c. Crer la mthode supprimerStagiaire(.) qui supprime un stagiaire la classe (1 pts) d. En dduire la mthode dplacerStagiaire(.) qui dplace un stagiaire dune classe une autre. (1 pts) e. Crer la mthodeAfficherStagiaires() qui liste tous les Stagiaires de le classe. (2 pts)

3) Classe Formateur (7 pts)


a. Crer la mthode ajouterClasse(.) qui affecte une classe un formateur. (1 pt) b. Crer la mthode afficherStagiaire() permettant de lister tous les stagiaires assigns au formateur. (2 pts) c. Crer la mthode afficherResponsableClasse(..) permettant dafficher tous les responsables des classes affects au formateur. (2 pts) d. Crer la mthoderechercherStagiaire() (1 pt) e. Crer la mthode sauvegarderFormateur (..) qui permet de srialiser la liste des classes du formateur. (1 pt)

Problme 2: Examen de Passage 2012 (Variante 1)


Formatrice : BOUROUS Imane

ISTA HAY RYAD TDI


Dossier 2 : (15,25 pts)

2012/2013

Lobjet de cette application est la gestion informatise des voyages organiss par une socit possdant des bus. Chaque voyage est assur par un seul chauffeur. Recommandation : utiliser des listes gnriques (List<T> : listes types) de prfrence. Mais vous pouvez utiliser des ArrayList ou des Collections. 1- Classe Chauffeur. a. Dfinir une classe Chauffeur dont les caractristiques sont : CIN, Nom, Prnom. (0,5 pt) b. crire un constructeur avec tous les paramtres. (0,5 pt) c. crire les accesseurs des champs et la mthode toString() qui renverra tous les champs spars par tabulation. (0,5 pt) 2- Classe Bus. a. Dfinir une classe Bus dont les caractristiques sont : Immatriculation, Marque, Type. (0,5pt) b. crire un constructeur avec tous les paramtres. (0,5 pt) c. crire les accesseurs des champs. (0,5 pt) d. crire la mthode toString() qui renverra les informations du bus spares par tabulation. (0,5 pt) 3- Classe Voyage a. Dfinir une classe Voyage dont les caractristiques sont : (0,75 pt) - Numro voyage : le numro du 1er voyage cr est 1 et chaque cration dun nouveau voyage, ce numro doit tre automatiquement incrment de 1. Faire le ncessaire (donnes+ code) pour y arriver. - Vchauffeur : cest le chauffeur qui a assur le voyage courant. - Vbus : Cest le bus conduit par Vchauffeur au cours de ce voyage. - Date Voyage : date o a eu lieu ce voyage. - Ville de dpart. - Ville darrive. - Nombre de voyageurs : nombre des personnes qui ont effectu ce voyage. - Prix du billet : prix pay par chaque voyageur de ce voyage (le mme prix pour tous). b. Ecrire un constructeur sans aucun paramtre permettant de dfinir la valeur du numro du voyage et daffecter la date systme Date voyage. (0,75 pt) c. Ecrire un constructeur permettant de dfinir les valeurs des autres champs. Ce constructeur doit faire dabord appel au constructeur prcdent. (0,75 pt) d. crire les accesseurs des champs. (0,5 pt) e. Ecrire la mthode toString() qui renverra le numro du voyage, la date du voyage, le nom et le prnom du chauffeur, limmatriculation et la marque du bus, ville de dpart, ville darrive et recette du voyage tous spars par tabulation. (1 pt) La recette du voyage = Nombre de voyageurs * Prix du billet du voyage en cours. 4- Programme principal a. Dclarer une liste de chauffeurs, une liste de bus et une liste de voyages accessibles par toutes les mthodes du programme principal. (0,5 pt) b. Ajouter une mthode rechercherChauffeur() qui recherche un chauffeur par son CIN. Si trouv, elle retourne le chauffeur correspondant dans la liste des chauffeurs. Sinon, elle retourne la valeur null. (0,5 pt)

Formatrice : BOUROUS Imane

ISTA HAY RYAD TDI

2012/2013

c. Ajouter une mthode rechercherBus() qui recherche un bus par son immatriculation. Si trouve, elle retourne le bus correspondant dans la liste des bus. Sinon, elle retourne la valeur null. (0,5 pt) d. Ajouter une mthode rechercherVoyage() qui recherche un voyage par son numro. Si trouv, elle retourne lindice correspondant dans la liste des voyages. Sinon, elle retourne la valeur -1. (0,5 pt) e. Ajouter par code (en mode conception) trois chauffeurs la liste des chauffeurs. (0,5 pt) f. Ajouter par code trois bus la liste des bus. (0,5 pt) g. Ajouter par code deux voyages la liste des voyages. Utiliser certains constructeurs et certaines mthodes dj conus. (0,75 pt) h. Concevoir le menu suivant : (en prenant en compte les indications ci-dessous) 1- Ajouter bus. (0,75 pt) 2- Ajouter voyage. (1 pt) 3- Lister tous les voyages. (0,75 pt) 4- Lister les voyages passs entre deux dates. (0,75 pt) 5- Nombre de voyageurs de lanne en cours. (0,75 pt) 6- Fin. (0,25 pt) Indications concernant les traitements raliser dans le menu ci-dessus : Ajouter bus : Saisir les donnes ncessaires et faire le ncessaire pour que deux bus dans la liste naient pas la mme immatriculation. Ajouter voyage : - Le numro du nouveau voyage est automatiquement affect par programme et la date voyage correspond la date systme. - Saisir le CIN du chauffeur qui doit correspondre un chauffeur de la liste des chauffeurs et si trouv, le chauffeur ainsi trouv correspond Vchauffeur du voyage ajouter, sinon le programme vous demandera de saisir un autre CIN. - Saisir limmatriculation du bus qui doit correspondre un bus de la liste des bus et si trouve, le bus ainsi trouv correspond Vbus du voyage ajouter, sinon le programme vous demandera de saisir une autre immatriculation. - Saisir les autres donnes restantes et chaque fois quune donne saisie nest pas valide, le programme vous demandera de la saisir de nouveau. Lister tous les voyages : Imprimer la liste de tous les voyages de la manire suivante : Date : ../../. N Date voyage Nom Prnom Immatric. Marque Ville dpart Recette ../../. . .... .. .... ... Indication : la date en haut droite correspond la date systme. Lister les voyages passs entre deux dates : Imprimer une liste des voyages semblable au niveau de la prsentation celle de la question prcdente mais contenant uniquement les voyages qui se sont drouls entre deux dates que lutilisateur de Ville arrive .

Formatrice : BOUROUS Imane

ISTA HAY RYAD TDI

2012/2013

lapplication devra saisir. En bas de la liste ainsi imprime, indiquer le nombre des voyages lists. Nombre de voyageurs de lanne en cours : Le programme va calculer et afficher le nombre de voyageurs de lanne en cours (utiliser la date systme pour rcuprer lanne en cours). Ce nombre correspond au nombre total des voyageurs ayant utilis les bus de la socit pendant lanne en cours.

Problme 3 : Examen de Passage thorique 2011 : Dans une application Windows tous les contrles (fentres, boutons, zones de texte, cases cocher ) sont caractriss par un nom (de type chaines de caractres), une position haut et une position gauche (de type entier) de lobjet sur lcran. Une fentre est un contrle comme les autres, caractrise en plus dun titre et dune couleur darrire-plan (de type entier). 1- Ecrire les classes Controle et Fenetre avec un constructeur dinitiation, un constructeur de copie, sachant que la classe Fenetre hrite de la classe Controle. 2- Doter la classe Controle par la mthode Display qui permet dafficher la mention suivante : Le contrle Texte1 est situ la position 12x25 Texte1 reprsente le nom du contrle et 12,25 reprsentent respectivement la position gauche, haut du contrle dans lcran. 3- Redfinir la mthode DISPLAY pour la classe Fenetre pour afficher la mention suivante : Le contrle Texte1 est situ la position 12,25, ayant comme titre titre1 et une couleur darrireplan de 20 . On souhaite ajouter la classe Fenetre une proprit type collection qui permet de grer une liste de contrles que lutilisateur peut ajouter sur une fentre (zones de texte, liste droulante,). 4- Donner les modifications apporter la classe Fenetre et la mthode AjoutControle qui permet dajouter un contrle la collection. 5- Implmenter pour la classe Fenetre la mthode RetireControle qui permet de supprimer un contrle de la collection connaissant son nom. 6- Implmenter pour la classe Fenetre la mthode DisplayTout qui permet dafficher tous les contrles ajouts la fentre.

Problme 4 : Examen de Passage Pratique 2011 (v1)


Lobjet de cette application est la gestion informatise du cabinet mdical. Elle doit procder la gestion informatise des dossiers mdicaux des patients et elle soccupe galement de la gestion des rendez-vous et des visites. 1- Classe Patient. a. Dfinir une classe clsPatient dont les caractristiques sont : Code Patient (affect de faon incrmentale par rapport au nombre de patients), Nom, Prnom, Date de naissance, Adresse, Tl, Email. b. Ecrire un constructeur deux paramtres : Nom et Prnom. c. Ecrire un deuxime constructeur avec tous les paramtres. d. Ecrire les accesseurs des champs et la mthode ToString() qui renverra les informations dun patient. 2- Classe Visites. a. Dfinir une classe clsVistes dont les caractristiques sont : Date visite, Heure visite, Code patient, Montant pay. b. Ecrire un constructeur deux paramtres : Date visite et Heure visite. c. Ecrire un deuxime constructeur sans paramtres qui appelle le premier avec la date et lheure actuelle.

Formatrice : BOUROUS Imane

ISTA HAY RYAD TDI

2012/2013

d. Ecrire les accesseurs des champs et la mthode ToString() qui renverra les informations de cette visite. 3- Classe RendezVous. a. Dfinir une classe clsRendezVous dont les caractristiques sont : Date Rendez-Vous, Heure Rendez-Vous, Code patient, Observation. b. Ecrire un constructeur trois paramtres : Date Rendez-Vous, Heure Rendez-Vous, Code patient. c. Ecrire les accesseurs des champs et la mthode ToString() qui renverra les informations de ce rendez-vous. 4- Classe CabinetMedical. a. Dfinir une classe CabinetMedical dont les caractristiques sont : une liste des patients, une liste des visites et une liste des rendez-vous (Collections ou tableaux). b. Ajouter une mthode AjouterPatient qui ajoute un patient lensemble des patients du cabinet. c. Ajouter une mthode PatientExistant ayant comme paramtre le nom et le prnom et qui retourne le code du patient sil existe ou le chiffre -1 sinon. d. Dfinir une classe ExceptionMedecinOccupe. e. Ajouter une mthode AjouterRDV qui ajoute un rendez-vous, et lve lexception dfinie en d) sil concide avec un redez-vous. f. Ajouter une mthode AfficherRDVduJour qui va, pour une date donne comme paramtre, affiche la liste des rendez-vous de ce jour. g. Ajouter une mthode PatientAyantDesVisites qui affiche la liste des patients (code, nom et prnom) ayant visit le cabinet pendant la dernire semaine. h. Ajouter une mthode SupprimerPatient qui permet de supprimer un patient ainsi que ses visites et rendez-vous. i. Ajouter une mthode EnregistrerPatients qui permet denregistrer la liste des patients dans un fichier.

Formatrice : BOUROUS Imane

S-ar putea să vă placă și