File d'attente en c++

Soyez le premier à donner votre avis sur cette source.

Vue 10 716 fois - Téléchargée 984 fois

Description

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;
}

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
dimanche 23 octobre 2011
Statut
Membre
Dernière intervention
17 décembre 2011

Bonjour,City86HUNTER; si tu es déja faite une simulation de file d'attente en java avec Arena.
alors est-ce que tu peux me envoyer le code source , pcq j'ai un mini projet de simulation d'une file d'attente
it_master@yahoo.com
et merci a tous
Messages postés
3
Date d'inscription
jeudi 7 décembre 2006
Statut
Membre
Dernière intervention
1 février 2011

merci je vois :)
Messages postés
3
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
3 avril 2011

Bonjour, les files d'attentes en java et C++ Sont vraiment différente , ce type de programme existe pas sous java . Les files d'attente en C++ OU en d'autre mot la queue ( Priority_Que) est une methode c++ Exclusive
Voici un lien de la memme methodes mais predefinis ( Ici j'ai fait les methodes manuellement )

http://www.cplusplus.com/reference/stl/queue/queue/
Messages postés
3
Date d'inscription
jeudi 7 décembre 2006
Statut
Membre
Dernière intervention
1 février 2011

Salut, je veux savoir plus sur ce programme plus detailler j'ai deja travailler avec les files d'atente en java et en Simulation avec Arena.
de qu'elle file d'atente il s'agit( MM1, MMs, MG1, MGs, ....) ??
et la methode utiliser pour la resolution ??

Merci c'est un enorme travaille .

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.