Chères amies, chers amis
J'ai un peu de temps et je reprend un vieux projet.
Je travaille sur le codage d'un QCM de calcul mental: cependant je séche sur le modèle OO.
L'objectif est d'obtenir une suite de question de ce type:
8 + 2 = ....,
1/2 = .../4,
...+ 1/2 = 1
Petite récap:
Pour l'instant j'instancie une classe Exercice composé par un pointeur vers un objet probleme, un tableau de quatre réponse possible.
L'objet probleme est constitué de deux opérandes.
Maintenant je ne sais pas comment integrer les objet somme(+,-), et quotient(*,/), je subodore une relation d'heritage.
Pourriez vous m'aider à la concetion du mon modele objet SVP.
Merci
Le code de la classe Probleme et Exercice:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #ifndef ProblemeH #define ProblemeH #include <ctime> #include <cmath> #include <string> #include <vector> #include <cstdlib> #include <iostream> #include "Fraction.h" template <class Type1, class Type2> class Probleme { private: Type1 m_operande_1; Type2 m_operande_2; public : Probleme() : m_operande_1(), m_operande_2() { } Probleme(const Type1& operande_1, const Type2& operande_2) : m_operande_1(operande_1), m_operande_2(operande_2) { } Probleme(Probleme const& probleme) : m_operande_1(probleme.m_operande_1), m_operande_2(probleme.m_operande_2) { } virtual ~Probleme() { } virtual void Afficher()const //défénition et declaration obligatoire des fonctions { //virtuelle template dans le .hpp Probleme<Type1,Type2> temp(*this); std::cout<<temp.m_operande_1<<std::endl; } //virtual void Resultat() const; }; #endif
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #ifndef ExerciceH #define ExerciceH #include "Probleme.h" template <class Type1,class Type2> class Exercice { private : Probleme<Type1, Type2> *m_probleme; std::vector<Type1> m_proposition; std::vector<Type2> m_solution; //Probleme<Type1, Type2> const& m_probleme; // passage par reference public : Exercice(Probleme<Type1, Type2> *probleme): m_probleme(probleme), m_proposition(4), m_solution(4) { m_probleme = new Probleme<Type1, Type2>(*probleme); } /*Exercice(Probleme<Type1, Type2> probleme): m_probleme (probleme), m_proposition(4), m_solution(4) { }// constructeur pour le pasage par reference*/ ~Exercice() { delete m_probleme; } }; #endif
Partager