Projet : étape 5
Influence différenciée des nutriments
Statistiques

But: Compléter le système de sorte à  :

Concepts nécessaires: classes, constructeurs/destructeurs, héritage, polymorphisme, librairie standard

Fichiers nécessaires : partie5.zip


Mise en place

L'archive fournie contient :

  • un nouveau fichier CMakeLists.txt permettant de compiler et lancer les divers tests de cette étape du projet ;
  • un nouveau noyau de simulation src/Application.[hpp][cpp];
  • un programme correspondant à l'application finalisée src/Tests/GraphicalTests/FinalApplication.[hpp][cpp];
  • une classe utilitaire pour l'affichage de statistiques présente dans le fichier src/Stats/Graph.[hpp][cpp];
  • une coquille de la classe src/Stats/Stats.[hpp][cpp] qu'ill vous sera demandé de compléter;
  • une nouvelle ressource pour le dossier res/.
  • Vous travaillerez pour cette étape dans le sous-répertoire partie5/.

    Description générale des classes à produire

    Le but de cette étape est de permettre aux nutriments d'avoir un impact différencié sur les bactéries selon leur type. Ce sera pour vous l'occasion de découvrir les limitations du «simple dispatch» (polymorphisme possible uniquement pour this et non pour les paramètres des méthodes) et d'y parer.

    Nous souhaitons également compléter l'outil de simulation afin de rendre l'interprétation de l'évolution de différents paramètres plus aisée. Vous coderez une classe Stats permettant d'afficher des courbes d'évolution de différents paramètres au cours du temps.

    Voici, pour résumer, l'essentiel de l'architecture à laquelle vous devrez aboutir au terme de cette étape :

    Modele

    Procédons donc maintenant au codage. Dans votre programme, vous veillerez à encapsuler proprement vos classes, notamment en ne donnant pas d'accès public ou protégé à vos attributs. Vous vous préoccuperez aussi systématiquement des destructeurs.

    Modules à programmer

    Les volets (modules) à mettre en place pour finaliser cette étape sont les suivants :

    Au terme de cette étape, vous aurez codé toutes les fonctionnalités de base requises par le projet.


    Retour au document principal