Projet : étape 2
Boites de culture et nutriments

But: Implémenter l'environnement dans lequel vont évoluer nos futures bactéries. Il s'agira essentiellement de boites de culture dans laquelle vont croître des nutriments.

Concepts nécessaires: classes, constructeurs/destructeurs, surcharge d'opérateurs, héritage

Ces concepts sont expliqués dans les cours 16, 17, 18 & 19

Fichiers nécessaires : partie2.zip


Mise en place

L'archive fournie pour cette étape contient donc une nouvelle version du fichier CmakeLists.txt permettant de compiler le matériel de cette partie. Elle contient aussi  :

Vous travaillerez pour cette étape dans le répertoire partie2/

Comme pour l'étape précédente, le prototypage des méthodes et la déclaration des attributs se trouveront dans un fichier avec l'extension .hpp tandis que leurs définitions se trouveront dans un fichier avec l'extension .cpp.

L'énoncé du projet est conçu de sorte à ce que votre projet puisse compiler avec le fichier CmakeLists.txt fourni dans le dossier src/partie2. Pour assurer la compatibilité de vos classes avec les fichiers de tests fournis, il faudra donner à vos fichiers le même nom que les classes qu'ils contiennent. Par exemple, la classe Nutrient sera codée dans les fichiers Nutrient.[hpp][cpp]

Il faudra procéder de la sorte tout au long du projet.

(si vous n'optez pas pour ce choix, il faudra adapter par vous-même les fichiers de test fournis).

Description générale des classes à produire

Nous allons à cette étape commencer par modéliser l'environnement dans lequel vont évoluer nos futurs micro-organismes. On pourrait se contenter de modéliser une boite de culture unique, mais nous allons d'emblée prendre un point de vue plus général nous permettant de conduire plusieurs expériences simultanément, avec différentes boites de culture.

Nous allons donc partir sur la modélisation  :

  1. de la notion de boite de culture. Il s'agit de l'environnement dans lequel les micro-organismes évolueront. Vous y ferez croître des nutriments générés à des endroits aléatoires;
  2. de celle de laboratoire (très basique). Pour l'heure, cette classe modélisera simplement le support sur lequel sont posées les boites.

A cette étape vous commencerez à utiliser vos premières applications graphiques. Une classe Application.[hpp][cpp] est fournie; elle servira de base à tous vos tests de simulation graphiques.

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

Modele

Procédons donc maintenant au début du 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 fournirez aussi systématiquement les destructeurs.

Les descriptions qui vous sont suggérées ci-dessous sont minimales. Il s'agit d'une première ébauche que nous serons amenés à affiner au fur et à mesure que le projet progressera. Libre à vous également d'y ajouter toutes les méthodes et tous les attributs supplémentaires qui vous semblent nécessaires.

Modules à programmer

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

Les différents volets qui vous seront proposés tout au long du projet ne sont généralement pas tous de même difficulté ni longueur. Prenez connaissance de chacun d'eux, au moins dans les grandes lignes, avant de vous lancer dans la programmation de l'étape.

Cette étape ne présente pas de grande difficulté du point de vue de la programmation. Elle exigera cependant de votre part un effort de compréhension pour bien saisir comment s'articulent entre elles les différentes "pièces du puzzle" que vous devez compléter et pour appréhender l'utilité des outils qui vous sont fournis.

Au terme de cette étape vous disposerez d'un environnement de simulation où vous pourrez poser des nutriments à des endroits aléatoires dans plusieurs boites de culture et les voir croître automatiquement :

← Ajout manuel de sources de nutriments (au moyen d'une touche),
croissance des nutriments en fonction de la température
et gestion de plusieurs boites, dont une seule est visible à la fois.

Retour au document principal