-
Notifications
You must be signed in to change notification settings - Fork 0
/
ClasseLapinsI.h
91 lines (85 loc) · 2.54 KB
/
ClasseLapinsI.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/**
*
* \file ClasseLapins.h
* \brief Classe statistique de lapins du meme age.
* \author Benoit GARCON
* \author Benjamin BARBESANGE
* \version 1.0
* \date 20 Novembre 2015
*
* Classe statistique de lapins du meme age pouvant evoluer au fil du temps
*
*/
#ifndef _CLASSELAPINS_H_
#define _CLASSELAPINS_H_
#include <random>
#include <iostream>
/// Definition du type de comptage
typedef unsigned long long INTEGER;
/**
*
* \class ClasseLapins
* \brief Classe d'age de la population de lapins.
*
* Represente une classe d'age (en mois) d'une population de lapins sans
* distinction de sexe. Peut evoluer indépendamment des autres classes.
*
*/
class ClasseLapins {
protected:
/// Nombre de lapins dans la classe
INTEGER m_nombre;
/// Probabilite de survie mensuelle des lapins
double m_tauxDeSurvie;
/// Generateur aleatoire Mersenne Twister
std::mt19937 * m_generateur;
public:
/**
* \brief Constructeur de la classe ClasseLapins.
* \param p_generateur : pointeur vers le generateur MT choisi
*/
ClasseLapins(std::mt19937 * p_generateur);
/**
* \brief Destructeur de la classe ClasseLapins.
*/
virtual ~ClasseLapins();
/**
* \brief Modification du nombre de lapins.
* \fn void nombre(const INTEGER & p_nombre)
* \param p_nombre : nouveau nombre de lapins dans la classe
*/
void nombre(const INTEGER &);
/**
* \brief Modification de la probabilite de survie des lapins.
* \fn void tauxDeSurvie(const double & p_tauxDeSurvie)
* \param p_tauxDeSurvie : nouveau taux de survie
*/
void tauxDeSurvie(const double &);
/**
* \brief Acces au nombre de lapins.
* \fn INTEGER nombre() const
* \return Nombre de lapins dans la classe
*/
INTEGER nombre() const;
/**
* \brief Acces aux chances de survie des lapins.
* \fn double tauxDeSurvie() const
* \return Probabilite de survie entre 0.0 et 1.0
*/
double tauxDeSurvie() const;
/**
* \brief Simulation du vieillissement.
* \fn INTEGER vieillissement(INTEGER p_nombre)
* \param p_nombre : Nombre de lapins entrant dans la classe apres vieillissement
* \return Nombre de lapins vieillissant d'un mois.
*/
INTEGER vieillissement(INTEGER);
/**
* \brief Simulation de la reproduction.
* \fn INTEGER reproduction(unsigned p_mois)
/ \param p_mois : numero du mois entre 0 et 11
* \return Nombre de nouveaux nes de sexe indifferent
*/
INTEGER reproduction(unsigned);
};
#endif