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
| #include "salarie.h"
#include "date.h"
#include "personnel.h"
#include <iostream>
#include <math.h>
using namespace std;
//constructeur salarie
salarie::salarie(char* x, char* y, int z, int s, date d, int nbt, bool c):personnel(x,y,z)
{
e= d;
salaire=s;
nbtravail=nbt;
enconge=c;
prec=NULL;
suivant=NULL;
}
//constructeur par défaut
salarie::salarie():personnel()
{
}
// on augmente le salaire de la valeur passé en paramètre
int salarie::augmentesalaire(int aug)
{
salaire=salaire+aug;
}
//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 (e<s.e)
{
return true;
}
else
{
return false;
}
}
//fonction d'affichage par surcharge
ostream & operator <<(ostream & f, const salarie & s)
{
return f<< "Date d embauche: " << s.e << '\n' << "Nom: " << s.nom << '\n' << "Prenom: " << s.prenom << '\n' << "Tel: " <<s.tel << '\n' << "Salaire: " << s.salaire << '\n' << "Nb de jours travailles: " << s.nbtravail << '\n' << "En conge? " << s.enconge << endl;
}
// fonction de saisie par surcharge
istream & operator >>(istream & f, salarie & s)
{
/*char w[50];
cout << "Entrez le nom: " ;
f >> w;
s.nom=new char[strlen(w)+1];
strcpy(s.nom,w);
cout << "Entrez le prenom: " ;
f >> w;
s.prenom=new char[strlen(w)+1];
strcpy(s.prenom,w);
cout << "Entrez le numero de telephone: ";
f >> s.tel;*/
cout << "Entrez la date d embauche: ";
f >> s.e;
cout << "Entrez le nombres de jours travaillés: ";
f >> s.nbtravail;
cout << "Entrez le salaire: ";
f >> s.salaire;
return f;
} |
Partager