BOnjour je dois réaliser une classe listesalarie avec une liste chaine simple de salarie
Je ne sais pas par où commencer .
J'ai créer mon prototype mais je ne suis meme pas sur.
Quelqu'un peut me dire comment commencer ma classe avec ma liste chaine???
Pas le faire à ma place mais m'expliquer par où commencer.
Je vous donnes les fichiers:
salarie.h
salarie.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
40
41
42
43
44
45 /* Fichier testé avec succès */ #ifndef _salarie_H #define _salarie_H #include <iostream> #include "date.h" #include "personnel.h" using namespace std; //classe salarie class salarie:public personnel { protected: date arrivee; int salaire; int nbtravail; bool enconge; salarie *prec; salarie *suivant; public: //constructeur salarie(); salarie(char* ,char* ,int, int,date, int, bool); //saisie void saisie(); //affiche void affiche(); //augmente le salaire int augmentesalaire(int); //droit au rtt double rtt(); //pointeuse int ajoutenbtravail(int); //prend congé bool prendreconge(int); //fin de conge bool finconge(); bool operator < (const salarie &); }; #endif
listesalarie.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 /* Fichier testé avec succès */ #include "salarie.h" #include <iostream> #include "date.cpp" #include "personnel.cpp" #include <math.h> using namespace std; //constructeur salarie::salarie() { arrivee.maj(01,01,2000); salaire=0; nbtravail=0; enconge=false; prec =NULL; suivant=NULL; } salarie::salarie(char* x, char* y, int z, int s, date d, int nbt, bool c):personnel(x,y,z) { arrivee=d; salaire=s; nbtravail=nbt; enconge=c; prec=NULL; suivant=NULL; } //Affiche void salarie::affiche() { personnel::affiche(); cout << "Date d embauche: " ; cout << arrivee << endl; cout << "Salaire: " << salaire << endl; cout << "Nombre d heures: " << nbtravail << endl; cout << "En conge: " ; if (enconge){ cout << "Oui"<< endl; } else { cout << "Non" << endl;} } //saisie void salarie::saisie() { int a,b,c,tmp; personnel::saisie(); cout << "Date d embauche : jj? " ; cin >> a; cout << "Date d embauche : mm? "; cin >>b; cout << "Date d embauche : aa? " ; cin >> c; arrivee.maj(a,b,c); cout << "Salaire ? "; cin >> salaire; cout << "Nombre d heures ?" ; cin >> nbtravail; cout << "Enconge ? (0=oui/1=non) "; cin >> tmp; if (tmp){ enconge=false ;}else{enconge=true;} } //augmente salaire int salarie::augmentesalaire(int a) { salaire=salaire+a; } //rtt? //calcule le nb de RTT ou x est le nombre de jours travaillés double salarie::rtt() { return ceil(nbtravail/15);//arrondi a l entier le plus proche au dessu } //ajoute un nombre de jour travaillés int salarie::ajoutenbtravail(int x) { nbtravail=nbtravail+x; } //on verifie qu'il peut prendre conge. Si c'est le cas , on les déduit de son quota. bool salarie::prendreconge(int jdem) //prend en paramètre un certains nombre de jours demandés { //on test si les jours demandés sont inférieurs aux jours acquis if (rtt()<jdem) { return 0; } else { int res; res= -(jdem*15); ajoutenbtravail(res); enconge = true; return 1; } } // on remet l'employe en travail et no,n plus en congé bool salarie::finconge() { enconge=false; } // on compare la date des employés bool salarie::operator <(const salarie & s) { if (arrivee<s.arrivee) { return true; } else { return false; } }
listesalarie.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 #ifndef _listesalarie_H #define _listesalarie_H #include <iostream> #include "salarie.h" using namespace std; //classe listesalarie class listesalarie:public salarie { //pointeurs salarie *tete; salarie *queue; public: //constructeur listesalarie(); //affiche liste void affiche(); //ajoute un salarie en queue de liste int ajoutequeue(const salarie &); //insere un salarie en bon endroit int insertordre(const salarie &); //recherche un salarie par son N & P int recherche (char* const,char* const); //supprime un salarie par son N & P int supprime (char*, char*); //calcule le nombre de salarie int nbsalarie(); //retourne le nombre de salarie en congé int nbconges(); //retourne les salarie partageant le bureau du tel int memebureau(int); }; #endif
Je vous remercie de vos conseils
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 #include <iostream> #include "listesalarie.h" #include "salarie.cpp" using namespace std; //constructeur listesalarie::listesalarie() { tete =new salarie; tete=NULL; queue=new salarie; queue=NULL; } //affiche void listesalarie::affiche() { salarie* s = tete; while (s != NULL) { s->affiche(); s=suivant; } }
Partager