Aide liste chainee
doubyson
Messages postés
10
Statut
Membre
-
doubyson Messages postés 10 Statut Membre -
doubyson Messages postés 10 Statut Membre -
Bonjour s,je voudrais de l aide j ai monte mon code mais j arrive pas a finir voici les questions.On dispose du fichier texte « Employe.Data ». Chaque ligne de ce fichier contient les informations d'un(e) seul(e) employé(e). On y trouve :
5) Le poste de travail : un caractère
a) `A' pour analyste
b) `P' pour programmeur
c) `O' pour opérateur
d) `S' pour secrétaire
6) le numéro d'employé : un entier
7) le nombre d'heures de travail : un réel
8) le taux d'horaire : un réel
on a 25 employés dans ce fichier.
Contenu du fichier
P 2567 40.00 19.00 :
P 4566 36.00 15.00
S 4560 38.00 12.00
A 4532 40.50 25.00
O 3455 42.00 10.00
etc....
Écrire un programme en C/C++ qui permet :
a) de lire le fichier, de mémoriser les données dans une liste chainée: chaque structure de cette liste contient : poste, numéro et salHebdo
struct Employe {
char poste ; // poste d'employé
int numeroEmploye; // numéro d'employé
float salHebdo; // salaire hebdomadaire
Employe * suivant ; // élément suivant
} ;
Employe * ptrCourant, * ptrTete; // vous pouvez utiliser ces pointeurs
b) d'offrir un menu et traiter le choix de l'usager suivant :
1. afficher la liste des employés
2. rechercher un employé selon son numéro
3. calculer et retourner le meilleur salaire hebdomadaire d'un poste donné.j ai su faire seulement la premiere question le reste je ne sais plus continuer
void creeLaListeChainee()
{
ifstream outfile;
outfile.open("new.txt", ios::in);
string ligne;
if(outfile)
{
cout<<" liste des employes:"<<endl;
while(getline(outfile,ligne)){
ptrCourant = new Employe;
string tache = ligne.substr(0,1);//lecture des donnes dans le tableau
string NrEm = ligne.substr(2,4);
string salaireHeb=ligne.substr(7,5);
char buffer[2] ="";
strcpy(buffer, tache.c_str());
string poste=gettache(buffer[0]);
ptrCourant->numeroEmploye = atoi(NrEm.c_str());
ptrCourant->salHebdo = atof(salaireHeb.c_str());
ptrCourant->poste = buffer[0];
ptrCourant->suivant = ptrTete;
ptrTete = ptrCourant;
}
}
else
{
cout<<"impossible dafficher le fichier"<<endl;
}
outfile.close();
if(ptrTete) //ptrTete est la liste chainee.
{
cout<<ptrTete->numeroEmploye <<" "<<ptrTete->poste << " "<<ptrTete->salHebdo<<endl;
ptrCourant = ptrTete->suivant;
while(ptrCourant!=NULL) //comment Reconnaitre le dernier element de la liste chainée?
{
cout<<ptrCourant->numeroEmploye <<" "<<ptrCourant->poste << " "<<ptrCourant->salHebdo<<endl;
ptrCourant =ptrCourant->suivant;
}
}
5) Le poste de travail : un caractère
a) `A' pour analyste
b) `P' pour programmeur
c) `O' pour opérateur
d) `S' pour secrétaire
6) le numéro d'employé : un entier
7) le nombre d'heures de travail : un réel
8) le taux d'horaire : un réel
on a 25 employés dans ce fichier.
Contenu du fichier
P 2567 40.00 19.00 :
P 4566 36.00 15.00
S 4560 38.00 12.00
A 4532 40.50 25.00
O 3455 42.00 10.00
etc....
Écrire un programme en C/C++ qui permet :
a) de lire le fichier, de mémoriser les données dans une liste chainée: chaque structure de cette liste contient : poste, numéro et salHebdo
struct Employe {
char poste ; // poste d'employé
int numeroEmploye; // numéro d'employé
float salHebdo; // salaire hebdomadaire
Employe * suivant ; // élément suivant
} ;
Employe * ptrCourant, * ptrTete; // vous pouvez utiliser ces pointeurs
b) d'offrir un menu et traiter le choix de l'usager suivant :
1. afficher la liste des employés
2. rechercher un employé selon son numéro
3. calculer et retourner le meilleur salaire hebdomadaire d'un poste donné.j ai su faire seulement la premiere question le reste je ne sais plus continuer
void creeLaListeChainee()
{
ifstream outfile;
outfile.open("new.txt", ios::in);
string ligne;
if(outfile)
{
cout<<" liste des employes:"<<endl;
while(getline(outfile,ligne)){
ptrCourant = new Employe;
string tache = ligne.substr(0,1);//lecture des donnes dans le tableau
string NrEm = ligne.substr(2,4);
string salaireHeb=ligne.substr(7,5);
char buffer[2] ="";
strcpy(buffer, tache.c_str());
string poste=gettache(buffer[0]);
ptrCourant->numeroEmploye = atoi(NrEm.c_str());
ptrCourant->salHebdo = atof(salaireHeb.c_str());
ptrCourant->poste = buffer[0];
ptrCourant->suivant = ptrTete;
ptrTete = ptrCourant;
}
}
else
{
cout<<"impossible dafficher le fichier"<<endl;
}
outfile.close();
if(ptrTete) //ptrTete est la liste chainee.
{
cout<<ptrTete->numeroEmploye <<" "<<ptrTete->poste << " "<<ptrTete->salHebdo<<endl;
ptrCourant = ptrTete->suivant;
while(ptrCourant!=NULL) //comment Reconnaitre le dernier element de la liste chainée?
{
cout<<ptrCourant->numeroEmploye <<" "<<ptrCourant->poste << " "<<ptrCourant->salHebdo<<endl;
ptrCourant =ptrCourant->suivant;
}
}
A voir également:
- Aide liste chainee
- Liste déroulante excel - Guide
- Liste code ascii - Guide
- Liste déroulante en cascade - Guide
- Site dangereux liste - Guide
- Voir liste d'amis facebook - Guide