Besoin de conseil pour liste chainee
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
Code:
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 |
salarie.cpp
Code:
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.h
Code:
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 |
listesalarie.cpp
Code:
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;
}
} |
Je vous remercie de vos conseils