Aider moi a résoudre File d'attente C++

Fermé
napi15 Messages postés 71 Date d'inscription mercredi 18 août 2010 Statut Membre Dernière intervention 24 avril 2011 - 23 nov. 2010 à 16:12
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 23 nov. 2010 à 16:59
Bonjour,


j'ai une petit problème et je sais pas si vous pouvez m'aider dans ce problème ( si ça vous dérange pas et si vous avez le temps ) de m'aider a résoudre ce petit bugg de fonctions de ce projet .


Le sujet est je dois entrer dans une file d'attente des noms accompagner par un numéro exemple : ( toto 3 , tati 2 , titi 20 etc...l'utilisateur entre le nombres des éléments .... ) .......


je dois afficher les éléments avec leur numéro diminuer de deux jusqu'à le numéro arrive a zéro je dois l'éliminer de la file d'attente l'element dont il a atteint zero ........le bug est dans l'affichage et l'élimination si c'est possible que vous m'aidez a résoudre ça je serai VRAIMENT ! non mais VRAIMENNNNNT! content
je pourrai toujours vous récompenser d'un montant raisonnable lors de ma prochaine paye vu que c'est dommage que je suis incapable de faire une sessions avec vous , fais que voila mes Class .h .cpp et main ()


le fichier .h de la File
#ifndef FileH
#define FileH
#include "Processus.h"

const int tailleFileMax = 5;
class File {
public:
File();
bool enFile(const Processus &nouvelElement); <====la fonction qui entre les elements ( elle fonctionne a date)
bool deFile(Processus &elementEnleve);<====la fonction qui elimine les elements (MARCHE PASS)
void afficher (); <====( fonction qui doit afficher les elements avec leur numero moin deux JUSQUA ZERO :( MARCHE PAS))
private:
Processus element[tailleFileMax];

int premier,dernier;
Processus* top ;
};
#endif


le FICHIER FILE .CPP


#include <iostream>
#include "File.h"
#include <cstring>
#include <iostream>
#include <exception>
using namespace std;


File::File() {
premier=0;dernier=-1;
}
bool File::enFile(const Processus &nouvelElement) {
if (dernier < tailleFileMax-1) {

element[++dernier]=nouvelElement;

return true;
}
else
return false;
}


bool File::deFile(Processus &elementEnleve) {
if(dernier>=0) {


elementEnleve=element[premier];
for (int i= 1; i<=dernier;i++)
element[i-1]= element[i];
// on déplace tous les élément vers le début
dernier--; // on décrément le pointeur vers le dernier élément de la file
return true;
}
else
return false;
}

void File::afficher ()
{
Processus *temp = element;
int j=temp -> numero;
while (temp != top && temp != NULL && ) <====J'arrive pas a afficher tous les les elements :( diminuer de deux jusqua zero ni les defiler ( elimination )
{

{
j=j-2;
{
std::cout<< temp -> numero-2<<" " << temp->nom <<" " << temp -> suivant<<endl ;

}

{ std::cout<<temp -> numero <<" " << temp->nom <<" eliminer "<<endl;
// deFile(temp -> numero,temp->nom);
}
temp++;
} delete temp;
}




Finalement le main ()
int temp ;
File p;
Processus Pr;
string nom ;
File *p1 = new File ;

cout << "Mettre dans la file les 5 elements saisis : " << endl;
for (int j=0;j<10 ;j++) {
cout << "Entrez un element " << j+1 <<" de la file : " ;
cin >> nom ;
cout << "Entrez un numero " << j+1 <<" de la file : " ;
cin>>temp;

p.enFile(Processus( nom .c_str(),temp));


} p.afficher(); <==== :(
A voir également:

3 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
23 nov. 2010 à 16:45
il manque processus pour comprendre. à mon avis, tu te complique la vie. Utilise un conteneur de la STL ou une liste chainée, ça sera plus simple. Je ne comprends pas trop ce que tu veux faire, enfin, si, ce qque je ne comprend pas c'est ta manière d'essayer d'y arriver.
0
napi15 Messages postés 71 Date d'inscription mercredi 18 août 2010 Statut Membre Dernière intervention 24 avril 2011
23 nov. 2010 à 16:48
le processus ...c'est une clas qui prend le nom de l'element et son numeo !
j'ai pas le droit au push pop ! c'est des fonctions deja faite !
les liste chainee peut etre mais comment? :( svp aider moi
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
23 nov. 2010 à 16:59
regarde un cours sur les listes chainées. Le principe c'est d'avoir un pointeur sur l'élément suivant dans ta classe.
0