Aider moi a résoudre File d'attente C++
napi15
Messages postés
71
Date d'inscription
Statut
Membre
Dernière intervention
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
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(); <==== :(
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:
- Aider moi a résoudre File d'attente C++
- .Bin file - Guide
- Host file - Guide
- .Dat file - Guide
- Iso file - Guide
- File sdcard/dcim - Télécharger - Gestion de fichiers
3 réponses
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.