Bonjour a tous et toutes,
Je suis entrain de réaliser un projet du gestion des notes des étudiants pour cela j'ai crée la classe matière qui contient le nom et le coefficient de la matière ainsi que les notes obtenu par un étudiant voici le code de la classe matière
voici matiere.h
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
 
#include<iostream>
#include<string>
 
using namespace std;
class Matiere
{
	string m_nom;
	float m_cofds,m_coftp,m_cofexm,m_cof;
	double m_ds,m_tp,m_exm;
public:
	Matiere():m_nom(" "),m_cof(0),m_ds(0),m_tp(0),m_exm(0),m_cofds(0),m_coftp(0),m_cofexm(0){} ;
	Matiere(string nom,float cof,float cofds,float coftp,float cofexm,double ds,double tp,double exm):m_nom(nom)
	,m_cof(cof),m_cofds(cofds),m_coftp(coftp),m_cofexm(cofexm),m_ds(ds),m_tp(tp),m_exm(exm){};
	friend istream &operator>>(istream &,Matiere &);
	friend ostream &operator<<(ostream &,Matiere);
	double calculMoyenMatiere();
	double calculTotalMatiere();
	istream & ajouterMatiere(istream &);
	void afficherMatiere(ostream &);
};
voici matiere.ccp
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
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
 
#include "Matiere.h"
istream &operator>>(istream &in,Matiere &mat)
{
	cout<<"donner le nom \t";
	in>>mat.m_nom;
	cout<<endl;
 
    cout<<"le coefficiant de la matiere\t";
	in>>mat.m_cof;
	cout<<endl;
 
    cout<<"cof de DS \t";
	in>>mat.m_cofds;
	cout<<endl;
 
	cout<<"cof de TP \t";
	in>>mat.m_coftp;
	cout<<endl;
 
	cout<<"cof exam \t";
	in>>mat.m_cofexm;
	cout<<endl;
 
	cout<<"note de DS \t";
	in>>mat.m_ds;
	cout<<endl;
 
	cout<<"note de TP \t";
	in>>mat.m_tp;
	cout<<endl;
 
	cout<<"note exam \t"; 
	in>>mat.m_exm;
	cout<<endl;
 
	return in;
}
ostream &operator<<(ostream &out, Matiere mat)
{
	out<<"nomMatiere\t";
	out<<mat.m_nom<<endl;
	out<<"cofMatiere\t";
	out<<mat.m_cof<<endl;
	out<<"noteTP\t";
    out<<mat.m_tp<<endl;
	out<<"noteDS\t";
	out<<mat.m_ds<<endl;
	out<<"noteExam\t";
    out<<mat.m_exm<<endl;
	out<<"moyMatiere\t";
	out<<mat.calculMoyenMatiere()<<endl;
	out<<"Total matiere\t";
	out<<mat.calculTotalMatiere();
	out<<endl;
	return out;
}
 
double Matiere::calculMoyenMatiere()
{
	return (m_cofds*m_ds + m_coftp*m_tp + m_cofexm*m_exm)/(m_cofexm + m_cofds + m_coftp);
}
 
double Matiere::calculTotalMatiere()
{
	return (m_cof*calculMoyenMatiere());
}
 
istream &Matiere::ajouterMatiere(istream &in)
{
	cout<<"donner le nom \t";
	in>>m_nom;
	cout<<endl;
 
    cout<<"le coefficiant de la matiere\t";
	in>>m_cof;
	cout<<endl;
 
    cout<<"cof de DS \t";
	in>>m_cofds;
	cout<<endl;
 
	cout<<"cof de TP \t";
	in>>m_coftp;
	cout<<endl;
 
	cout<<"cof exam \t";
	in>>m_cofexm;
	cout<<endl;
 
	cout<<"note de DS \t";
	in>>m_ds;
	cout<<endl;
 
	cout<<"note de TP \t";
	in>>m_tp;
	cout<<endl;
 
	cout<<"note exam \t"; 
	in>>m_exm;
	cout<<endl;
 
   return in;
}
void Matiere::afficherMatiere(ostream &out)
{
	out<<"nomMatiere\t";
	out<<m_nom<<endl;
	out<<"cofMatiere\t";
	out<<m_cof<<endl;
	out<<"noteTP\t";
    out<<m_tp<<endl;
	out<<"noteDS\t";
	out<<m_ds<<endl;
	out<<"noteExam\t";
    out<<m_exm<<endl;
	out<<"moyMatiere\t";
	out<<calculMoyenMatiere()<<endl;
	out<<"Total matiere\t";
	out<<calculTotalMatiere();
	out<<endl;
}
Ensuit, j'ai réalisé La classe résultat
resultat.h
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
 
#include <vector>
#include "Matiere.h"
using namespace std;
 
class Resultat
{
private:
	  vector <Matiere> m_mat;
public:
	Resultat(){};
	friend istream &operator>>(istream &,Resultat &);
	friend ostream &operator<<(ostream &,Resultat);
 
};
resultat.cpp
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
 
#include "Resultat.h"
istream &operator>>(istream &in,Resultat &r)
{
    for(int i=0;i<30;i++)
	r.m_mat[i].ajouterMatiere(in);
 
	return in;
}
ostream &operator<<(ostream &out, Resultat r)
{
    for(int i=0;i<30;i++)
		r.m_mat[i].afficherMatiere(out);
	out<<endl;
	return out;
}
J'ai crée une fonction main pour tester la classe résultat voici son code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
#include "Resultat.h"
void main()
{
	Resultat r;
 
	cin>>r;
 
	cout<<r;
}
mais le programme se bloque et je ne sais pas d'où provient le probléme.
et merci d'avance pour votre aide et vos remarque.