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 bug 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'élément dont il a atteint zéro ........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 VRAIMENT! 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
le FICHIER FILE .CPP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #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
Finalement le main ()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 #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; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 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(); <==== :(
Partager