Salut, je suis nouveau dans ce forum et je viens à vous pour faire part de mon problème en programme orienté objet (c++) notion des class.
Le prof nous à donner un exercice de maison, dont voici ce que le programme doit afficher :
Si je melange
‘’Eau : 600 ml, pH ‘’
Avec
"Acide chlorhydrique : 500 ml, pH 2’’
J’obtiens :
"Eau + Acide chlorhydrique : 1100 ml, pH 2.34242"
Si je melange
"Acide chlorhydrique : 500 ml, pH 2"
Avec
"Acide perchlorique : 800 ml, pH 1.5"
J’obtiens :
"Acide chlorhydrique + Acide perchlorique : 1300 ml, pH 1.63253’’
J'ai commencé faire l'exercice et je me suis bloqué, voici mon code source:
Dans le "Flacon.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
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 #pragma once #include <iostream> using namespace std; #include <cmath> #include <string> class Flacon { private: string nom; double volume; double pH; public: Flacon(void); Flacon(string un_nom, double un_volume, double un_Ph); ostream& etiquette(ostream& sortie) const; void set_Nom(string un_nom); void set_volume(double un_volume); void set_pH(double un_pH); string get_Nom()const; double get_volume()const; double get_pH()const; ~Flacon(void); }; Dans le Flacon.cpp #include <iostream> #include "Flacon.h" using namespace std; #include <cmath> #include <string> Flacon::Flacon(void) { } Flacon::Flacon(string un_nom, double un_volume, double un_Ph):nom(un_nom),volume(un_volume),pH( un_Ph) { } Flacon::~Flacon(void) { } void Flacon::set_Nom(string un_nom) { nom=un_nom; } void Flacon:: set_volume(double un_volume) { volume=un_volume; } void Flacon::set_pH(double un_pH) { pH=un_pH; } string Flacon::get_Nom()const { return nom; } double Flacon::get_volume()const { return volume; } double Flacon::get_pH()const { return pH; } ostream& Flacon::etiquette(ostream& sortie) const { sortie<<nom<<" : "<<volume<<" ml, "<<"pH"; sortie<<pH; return sortie; } ostream& operator<<(ostream& sortie, Flacon const& Flacon) { return Flacon.etiquette(sortie); } Flacon operator +(Flacon F1,const Flacon& F2) { F1.set_pH(log10((pow(10.0, -F1.get_pH())*F1.get_volume()+pow(10.0,-F2.get_pH())*F2.get_volume())/(F1.get_volume()+F2.get_volume()))); F1.set_Nom(F1.get_Nom()+F2.get_Nom()); F1.set_volume(F1.get_volume()+F2.get_volume()); return F1; } void afficher_melange(Flacon const& f1, Flacon const& f2) { cout<<" Si je melange "<<endl; cout<<" \t\""<<f1<<"\""<<endl; cout<<"avec"<<endl; cout<<" \t\""<<f2<<"\""<<endl; cout<<"J'obtiens : "<<endl; cout<<" \t\""<<(f1 + f2)<<"\""<<endl; } /*Flacon& operator +=(const Flacon& F) { double set_Nom(get_Nom()+F.get_Nom()); double set_volume(get_volume()+F.get_volume()); double set_Ph(log10(2*pow(10.0,-get_Ph())*get_Volume()/(get_Volume()+get_Volume()))); return *this; }* cette partie du code ne marche pas et il y a des erreurs/
Partager