Aide liste chainee

Fermé
doubyson Messages postés 2 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 28 novembre 2011 - 28 nov. 2011 à 14:49
doubyson Messages postés 2 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 28 novembre 2011 - 28 nov. 2011 à 15:58
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 39404 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 21 novembre 2024 2 103
28 nov. 2011 à 14:58
0
doubyson Messages postés 2 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 28 novembre 2011
28 nov. 2011 à 15:58
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