Vous êtes sur la page 1sur 2

Examen Rattrapage

Module: Programmation Orient Objet C++ Documents: Non Autoriss Ordinateur: Non Autoriss Enseignants: Zied ALAYA, Mourad BEN ROMDHANE, Sana NOUIRA, Anis ZWAOUI, Saber LAJILI, Sami MAKNI, Mehdi HENDILI Groupes: 3A, 3B, 2A, 2P Dure: 1H30 Date: Juillet 2011 Nombre de pages: 2

Le but de cet examen est d'implmenter, en C++, un systme simplifi permettant de grer les membres dune association. Chaque association est constitue dun ensemble de membres. Ladhsion une association ncessite le payement dune cotisation. Un membre est considr soit un simple adhrant soit du bureau excutif. Il s'agit d'implmenter lensemble des classes et d'ajouter toutes les mthodes ncessaires leur bon fonctionnement. Dans la premire partie, vous allez implmenter une arborescence de classes qui constitue les membres de lassociation. Dans une deuxime partie vous allez implmenter la classe Association (structure polymorphe de membres). Il est noter que les attributs des classes dfinir doivent tre non publiques.

Partie 1
La classe Membre drive publiquement des classes Personne, et Cotisation. Une Personne est caractrise par un numro CIN (entier long), une adresse (chane de caractres). Elle dispose dun constructeur initialisant les donnes membres et leur donnant une valeur par dfaut. La classe Cotisation est caractrise par une date dadhsion (chane de caractres) et le montant de la cotisation (rel). Elle dispose dun constructeur initialisant les donnes membres et leur donnant une valeur par dfauts. Cette classe offre parmi dautres, une mthode intitule afficher qui permet dafficher les donnes. La classe Membre drive de la classe Personne et de la classe Cotisation. Elle est caractrise par une activit (chane de caractres) et un attribue (de type bool) qui indique si la cotisation a t pay ou non. Un MembreBE est un membre du bureau excutif de lassociation. Ainsi, un MembreBE est un Membre qui a en plus une fonction et une date dlection (chane de caractres). Pour les instances des classes Membre et MembreBE, on souhaite assurer le payement de la cotisation moyennant loprateur unaire ++ et on souhaite afficher sur la sortie standard (cout) les donnes avec loprateur <<. Dfinissez, en C++, une interface et une implmentation des classes Personne, Cotisation, Membre et MembreBE.

Partie 2

Une association est une organisation qui rassemble des membres autour dobjectifs communs dans le but dexercer une tche. La classe Association est caractrise par un NumeroId , un NomAss (nom de lassociation) un tableau permettant de grer les membres de lassociation. Cette classe offre les mthodes suivantes : ajouter: qui ajoute un adhrent sil nexiste pas dj et retourne true. Sinon retourne false. supprimer : qui prend comme paramtre le CIN dun membre et le supprime. Si la suppression russi elle retourne true sinon elle retourne false. rechercher: qui prend le CIN dun membre en paramtre et retour son indice dans le tableau (-1 si elle nexiste pas) . afficher_impayer: qui permet dafficher tous les membres de lassociation qui nont pas pay la cotisation. Dfinissez, en C++, une interface et une implmentation de la classe Association.

Bon Travail

Annexe vous trouverez ci-dessous quelques mthodes utiles de la classe vector. Soit tab un vecteur d'entiers et i un entier positif, alors: vector <int> tab: dclaration du tab. tab est un tableau dynamique d'entiers. tab.push_back(4): insre la valeur 4 la fin de notre tableau. tab[i]: donne la valeur stock dans la case d'indice i. tab.size(): fournie le nombre d'lments dans tab. tab.pop_back(): supprime la dernire valeur. tab.clear(): supprime toutes les cases. tab.insert(tab.begin()+i, 9): insre la valeur 9 dans la case d'indice i. tab.erase(tab.begin()+i): supprime l'lment stock dans la case d'indice i.