salut tout le monde,
je suis en train de coder un projet de gestion d'une videotheque. et j'aimerais avoir votre aide pour quelque chose.
Exemple :
j'ai une classe mère "video", une classe fille "film" et une classe acteurs (lien de composition). voila une partie du diagramme avec les classes concernées :
et voila comment j'ai codé ces classes :
video.h
video.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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 #ifndef VIDEO_H #define VIDEO_H class video { protected: chaine titre; int duree; int nb_exemplaires; chaine sujet; public: // class constructor video(); video(chaine titre2, int duree2, int nbexemp, chaine sujet2); video(const video & vid); //accesseurs chaine gettitre() const {return titre;} int getduree() const {return duree;} int getnbexemp() const {return nb_exemplaires;} chaine getsujet() const {return sujet;} //mutateurs : void settitre(const chaine & titre2) {titre = titre2;} void setduree(const int & duree2) {duree = duree2;} void setnbexemp(const int & nbexemp) {nb_exemplaires = nbexemp;} void setsujet(const chaine & sujet2) {sujet = sujet2;} void setvideo(chaine titre2, int duree2, int nbexemp, chaine sujet2); //surcharge des opérateurs : video & operator = (const video & vid); bool operator == (const video & vid); friend ostream & operator << (ostream & os, video & vid) {os <<vid->titre<<" "<<vid->duree<<endl<<vid->nb_exemplaires<<endl<<vid->sujet<<endl; return os;} friend istream & operator >> (istream & is, video & vid); void afficher() const {cout<< (video*) this;} void afficherdetails() const {cout<<"Titre du film : "<<titre<<endl<<"Duree : "<<duree<<endl<<"Nombre d'exemplaires : "<<endl<<nb_exemplaires<<endl<<"Sujet : "<<sujet<<endl<<endl;} }; #endif // VIDEO_H
film.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 #include "video.h" /* chaine titre; int duree; int nb_exemplaires; chaine sujet; */ video::video() : titre(), sujet() { duree = 0; nb_exemplaires = 0; } video::video(chaine titre2, int duree2, int nbexemp, chaine sujet2) { titre = titre2; duree = duree2; nb_exemplaires = nbexemp; sujet = sujet2; } video::video(const video & vid) { titre = vid.titre; duree = vid.duree; nb_exemplaires = vid.nb_exemplaires; sujet = vid.sujet; } void video::setvideo(chaine titre2, int duree2, int nbexemp, chaine sujet2) { titre = titre2; duree = duree2; nb_exemplaires = nbexemp; sujet = sujet2; } const video & video::operator = (const video & vid) { titre = vid.titre; duree = vid.duree; nb_exemplaires = vid.nb_exemplaires; sujet = vid.sujet; return *this; } bool video::operator == (const video & vid) { return titre==vid.titre && duree==vid.duree && nb_exemplaires==vid.nb_exemplaires && sujet==vid.sujet; } friend istream & video::operator >> (istream & is, video & vid) { chaine titre2; int duree2; int nbexemp; chaine sujet2; cout<<"Titre du film : "; is>>titre2; cout<<"Durée : "; is>>duree2; cout<<"Nombre d'exemplaires : "; is>>nbexemp; cout<<"Sujet : "; is>>sujet2; video vid2(titre2, duree2, nbexemp, sujet2); vid = vid2; return is; }
film.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
17
18
19
20
21
22
23
24
25
26
27 #ifndef FILM_H #define FILM_H #include "video.h" class film : public video { private: chaine genre; chaine realisateur; acteurs acteur; public: film(); film(chaine genre2, chaine real, acteurs nouvacteur, chaine nouvtitre, int nouvduree, int nouvnb_exemplaires, chaine nouvsujet); film(chaine genre2, chaine real, chaine nouvnom, chaine nouvprenom,chaine nouvtitre, int nouvduree, int nouvnb_exemplaires, chaine nouvsujet); film(const film & film2); //accesseurs : chaine getgenre() const {return genre;} chaine getrealisateur() const {return realisateur;} chaine getnomact() const {return acteur.getnom();} chaine getprenomact() const {return acteur.getprenom();} //... pas encore terminée.... je bloque }; #endif // FILM_H
pas encore codé
acteurs.h
acteurs.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
17
18
19
20
21
22
23
24
25 #ifndef ACTEURS_H #define ACTEURS_H class acteurs { private: chaine nom; chaine prenom; public: acteurs() acteurs(chaine nom2, chaine prenom2); acteurs(const acteurs & act); //accesseurs et mutateurs : chaine getnom() const {return nom;} chaine getprenom() const {return prenom;} void setnom(const chaine & n); void setprenom(const chaine & p); //surcharge des operateurs : acteurs & operator = (const acteurs & act); bool operator == (const acteurs & act); friend ostream & operator << (ostream & os, const acteurs & act); friend istream & operator >> (istream & is, const acteurs & act); }; #endif // ACTEURS_H
je sais pas si vous pouvez m'apporter quelques remarques ou idées.
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 #include "acteurs.h" /* chaine nom; chaine prenom; */ acteurs::acteurs() : nom(), prenom() { } acteurs::acteurs(chaine nom2, chaine prenom2) { nom = nom2; prenom = prenom2; } acteurs::acteurs(const acteurs & act) { nom = act.nom; prenom = act.prenom; } void acteurs::setnom(chaine nom2) { nom = nom2; } void acteurs::setprenom(const chaine & p) { prenom = prenom2; } acteurs & acteurs::operator = (const acteurs & act) { nom = nom2; prenom = prenom2; return *this; } bool acteurs::operator == (const acteurs & act) { return nom == act.nom && prenom == act.prenom; } friend ostream & operator << (ostream & os, const acteurs & act) { cout<<act.nom<<" "<<act.prenom; return os; } friend istream & operator >> (istream & is, const acteurs & act) { chaine n; chaine p; is>>n>>p; acteurs act2(n, p); act = act2; return is; }
desole pour ce long code et merci beaucoup.
Partager