File d'attente en c++

Soyez le premier à donner votre avis sur cette source.

Vue 10 209 fois - Téléchargée 886 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

city86hunter
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 .
bibo90
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/
city86hunter
Messages postés
3
Date d'inscription
jeudi 7 décembre 2006
Statut
Membre
Dernière intervention
1 février 2011
-
merci je vois :)
Baker88
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

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.