Aide liste chainee

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;

}
}

A voir également:

2 réponses

choubaka Messages postés 5526 Date d'inscription   Statut Modérateur Dernière intervention   2 106
 
0
doubyson Messages postés 10 Statut Membre
 
mais je l ai fais la premiere question le probleme je ne comprend pas comment je vais commencer la deuxieme question je ne veux pas que vous fassiez mon devoir je veux que vous m explique comment faire pour commencer la deuxieme question
0