Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

File d'attente en c++

0/5 (4 avis)

Vue 6 615 fois - Téléchargée 294 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

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.