Voici un exemple d'une file d'attente en C++ , le résumer de ce programme c'est on rentre un nombres maximal des éléments on rentre un quantum ( exemple: " 2 " ou "1" n'importe ) et le résultat doit afficher les éléments entrer moin le quantum jusqu'à tant que l'élément atteint zéro , on le supprime
Source / Exemple :
Je sais pas quoi mettre la mais je mettrai un bref detail du main et le reste du programme est dans le .zip
int main(int argc, char *argv[])
{
//Initialisation des unitee
int quant ;
int nombreProces=0;
int tempsDep=0;
string NomID;
File filePret ; //Creation de La File
cout<<"Entrer le nombre de processus :" ;
cin>> nombreProces ; //Le nombre maximal
if (cin.fail() || nombreProces< 0 ) {
do{ // Validation de nombres
cout <<"Entrez invalide, veuillez recommencer entrer les nombres positifs "<< endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout<<"Entrer le nombre de processus :" ;
cin>> nombreProces ;
}
while((cin.fail() == true) || nombreProces< 0 );
}
cout<<"Entrer le Nunero Quantum :" ;
cin>>quant;
if (cin.fail() || quant< 0 ) {
do{ // Validation de nombres
cout <<"Entrez invalide, veuillez recommencer . "<< endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout<<"Entrer le Nunero Quantum :" ;
cin>>quant;
}
while((cin.fail() == true) || quant< 0 );
}
int tempExec[nombreProces];
//Remplissage de la File
for (int i=0 ; i < nombreProces ; i++ )
{
cout<<"Entrer le nom de processus # "<<i+1 <<":" ;
cin>> NomID ; //Nom
cout<<"Entrer le temps # "<<i+1 << ":" ;
cin>>tempExec[i]; //Temp
if (cin.fail() || tempExec[i]< 0 ) {
do{ // Validation de nombres
cout <<"Entrez invalide, veuillez recommencer . "<< endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout<<"Entrer Temps:";
cin>>tempExec[i];
}
while((cin.fail() == true) || tempExec[i]< 0 );
}
filePret.enFiler(Element(Processus(NomID.c_str(),tempExec[i]))); //On rentre les elements dans la File
}
Element tempo (Processus(""));
system("cls");
cout<<"Processus et temp d'execution " <<endl;
filePret.afficher(); //Affichage des elements entrer dans la File
cout<<"Etat Initial De la File -temps courant " << tempsDep <<endl;
int compteut =0;
int kant =0 ;
int x=0;
while ( filePret.deFiler(tempo)) //Affichage des elements de la Boucle
{ for (int j=0; j < 1000000000; j++); //Temps D'arret
if (tempo.getProcessus().getTempExecution()- quant >0 )
{
cout<<"-"<<x++<<"-"<<endl;
filePret.enFiler(Element(Processus(tempo.getProcessus().getIdent(), tempo.getProcessus().getTempExecution() - quant )));
filePret.afficher();
}
else
if (tempo.getProcessus().getTempExecution()- quant <= 0 )
{
cout<<"-"<<x++<<"-"<<endl;
filePret.afficher();
cout<<"Processus : " << tempo.getProcessus().getIdent() << " -Deleted- " <<endl;
}
compteut = compteut + quant ;
kant++;
cout<<"Etat Initial De "<<quant <<" -temps courant " << compteut <<endl;
}
cout<<nombreProces<<" Processus Deleted "<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.