Programmation C++

Cours de Licence Professionnelle SIL IN - IUT de Provence, site d'Arles


Planche de TP n°4 : Utilisation de conteneurs de la STL

Dans ce TP, nous allons étudiez et manipuler plus en profondeur l'une des classes conteneurs de la bibliothèque standard de patron (STL). Nous allons aussi mettre en oeuvre les notions de typage dynamiques qui ont été vues en cours (fonctions virtuelles, etc). Il est très probable que vous ayez besoin de rechercher de l'information, et ce lien a été préparé dans ce but.

Partie 1 : Les figures géométriques

Développez une hiérarchie de classe destinées à mémoriser ou manipuler les propriétés de différentes figures géométriques. On propose de traiter au moins le cas des rectangles, cercles, triangles, carrés, sphères, parallélépipèdes rectangles, cubes... mais cette liste n'est pas limitative. Chaque classe devra permettre de mémoriser les données qui permettent de définir une instance, par exemple la longueur des deux cotés d'un rectangle, le rayon de la sphère, etc. Chaque instance devra disposer quand cela a un sens
On considérera que lorsque ces trois notions ne sont pas définies mathématiquement, alors la valeur renvoyée sera nulle. Par exemple, le volume d'un carré sera nul, et le périmètre d'une sphère également.

Partie 2 : Une liste de figures

Vous allez utiliser un std::list<> de la STL pour constituer une liste hétérogène de figures rassemblant n'importes lesquelles des formes définies plus haut. Vous adapterez votre programme pour pouvoir consulter, ajouter ou supprimer des figures dans cette liste. Ensuite vous ferez en sorte de pouvoir automatiquement enregistrer dans un fichier de texte les informations de ces classes pour pouvoir tout aussi automatiquement les recharger au prochain démarrage de votre programme. La consultation se fera grâce à un parcours des éléments à l'aide d'un itérateur.

Une fois tout ce qui précède opérationnel, on demande la possibilité de trier la liste suivant au choix une des trois possibilités suivantes :
On utilisera la méthode sort() du patron de classe std::list<> dans sa version recevant un paramètre qui est la fonction de comparaison entre deux éléments. De l'aide peut être trouvée à ce sujet sur le site de la bibliothèque STL développée par SGI.