IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

File d'attente C++


Sujet :

C++

  1. #1
    Membre actif
    Homme Profil pro
    �tudiant
    Inscrit en
    Septembre 2010
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 34
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 67
    Par d�faut File d'attente C++
    comment faire une file d'attente en c++
    dont on peut entrer plusieru elements dont l'utilisateur doit choisir le nombres des elements a entrer ....
    et l'utilisateur doit entrer un numero pour chaque element entrer
    apres ca il faut afficher les elements entrer avec leur numero MOIN DEUX! jusqua le numero attein zero ( l'element dont son numero atteint zero doit s'eliminer ) AIDER MOI SVP MERCI!
    ex : si je rentre
    p1 (5)
    p2 (4)
    p3 (3)

    je dois afficher

    p1 (3)
    p3 (1)
    p2 ( 2 )

    p2 (eliminer )
    p1 (1)
    p3( eliminer)


    JARRIVE PAS A REALISERRR

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    38
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 38
    Par d�faut
    Les fautes d'orthographe (qui font mal aux yeux) mises � part, je ne comprends pas pourquoi tu dois utiliser des files d'attentes?

    Peux tu mettre plusieurs �l�ments dans chacune de tes files? Si oui, d�s qu'un des �l�ments d'une file arrive � 0 (ou moins?), la file est �limin�e ou juste l'�l�ment?

  3. #3
    Membre exp�riment� Avatar de MacPro
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Par d�faut
    salut, il va falloir t'expliquer un peu mieux l� je crois m�me si � priori d'apr�s le nom et l'heure du post ce n'est pas dit que tu sois de nos contr�es.
    Comment �a se passe ton bazar ? Est-ce que l'ordinateur demande uniquement le num�ro des �l�ments du style :
    Entrer le num�ro pour p1 :
    5
    Voulez-vous continuer (O/N) ?
    O
    Entrer le num�ro pour p2 :
    4
    Voulez-vous continuer (O/N) ?
    O
    Entrer le num�ro pour p3 :
    3
    Voulez-vous continuer (O/N) ?
    N
    puis premi�re boucle :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    p1 (3) 
    p3 (1)
    p2 ( 2 )
    seconde boucle
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    p2 (eliminer )
    p1 (1) 
    p3( eliminer)

    Pr�cise mieux ce que tu veux.

  4. #4
    Membre actif
    Homme Profil pro
    �tudiant
    Inscrit en
    Septembre 2010
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 34
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 67
    Par d�faut
    En effet MacPro !
    c'est ca que je veux! ET COMMENT FAIRE CA??

  5. #5
    Membre exp�riment� Avatar de MacPro
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Par d�faut
    salut, je te propose une premi�re et derni�re solution sur laquelle je ne passerais pas plus de temps. Elle a ses limites dans les types utilis�s, ne fait aucune v�rification, est une sorte de mixte C/C++ dans l'id�e, utilise des variables globales, fais des allocations dynamiques sans lib�rer ensuite, modifie la cl� des entr�es de Map et pas uniquement leur valeur ... mais elle fait ce que tu veux. A toi de t'inspirer, adapter, corriger.

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    #include <iostream>
    #include <sstream>
    #include <string>
    #include <map>
    #include <ctype.h>
     
    using namespace std;
     
    //----- Global variables -----//
    map<string*, int> elements;  // conteneur pour les éléments avec leur nom (key) et leur valeur (value)
    unsigned int elementsAlreadyAtZero = 0;
     
    //----- Prototypes -----//
    void askUserForValue(void);
    void displayResults(void);
    void computeWeirdStuff(void);
     
     
     
    //---------------------------------------------------------------------- main
    int main()
    {
        askUserForValue();
        while(elementsAlreadyAtZero != elements.size())
        {
            computeWeirdStuff();
            displayResults();
        }
     
        return 0;
    }
     
     
    //---------------------------------------------------------------------- askUserForValue
    void askUserForValue(void)
    {
        unsigned int i = 0; // compteur
        char answer = 'y';    // store the user's answer
        while(answer == 'y')
        {
            int value;
            ostringstream oss;
            cout << "Please enter value for p" << i << " : "; // ask value
            cin >> value;                                       // store value
            oss << "p(" << i << ")";                            // Build the string to store as a key
            if(value <= 0)
            {
                value = 0;
                oss << " dismissed";
                elementsAlreadyAtZero++;
            }
            elements[new string(oss.str())] = value;                        // insert new element in map
            cout << "Do you want to continue ? (Y/N) : ";     // continue or not ?
            cin >> answer;                                      // store answer
            answer = tolower(answer);
            i++;
        }
    }
     
     
    //---------------------------------------------------------------------- displayResults
    void displayResults(void)
    {
        map<string*, int>::iterator it;
        cout << endl;
        for(it = elements.begin() ; it != elements.end(); it++ )
        {
            string* key = (*it).first;
            cout << key->c_str() << " => " << (*it).second << endl;
        }
    }
     
     
    //---------------------------------------------------------------------- computeWeirdStuff
    void computeWeirdStuff(void)
    {
        map<string*, int>::iterator it;
        int value;
        for(it = elements.begin() ; it != elements.end(); it++ )
        {
            value = (*it).second - 2;
            if(value == -2)
            {
             // element already processed
                continue;
            }
     
            if(value <= 0)
            {
                value = 0;
                elementsAlreadyAtZero++;
                string* key = (*it).first;
                key->append(" dismissed");      // kludge : should not modify the string just like that
            }
     
            (*it).second = value;   // set the value to 0
        }
    }
    Le r�sultat sur la console �tant :

    guest@debian:~/temp/napi15/bin/Debug$ ./napi15
    Please enter value for p0 : 5
    Do you want to continue ? (Y/N) : y
    Please enter value for p1 : 4
    Do you want to continue ? (Y/N) : y
    Please enter value for p2 : 3
    Do you want to continue ? (Y/N) : n

    p(0) => 3
    p(1) => 2
    p(2) => 1

    p(0) => 1
    p(1) dismissed => 0
    p(2) dismissed => 0

    p(0) dismissed => 0
    p(1) dismissed => 0
    p(2) dismissed => 0
    guest@debian:~/temp/napi15/bin/Debug$

  6. #6
    Membre actif
    Homme Profil pro
    �tudiant
    Inscrit en
    Septembre 2010
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 34
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 67
    Par d�faut
    De tout le fond de mon coeur!
    MERCI beaucoup!!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Gestion de files d'attente
    Par bounnitcharaf dans le forum MS SQL Server
    R�ponses: 8
    Dernier message: 20/09/2006, 18h34
  2. [Tableaux] cr�er une file d'attente en php
    Par gaetan.tranvouez dans le forum Langage
    R�ponses: 12
    Dernier message: 01/06/2006, 18h49
  3. Mes emails restent en file d'attente sur mon serveur
    Par FredericB dans le forum R�seau
    R�ponses: 3
    Dernier message: 26/10/2005, 10h04
  4. Gestion d'une file d'attente
    Par jesus144 dans le forum Algorithmes et structures de donn�es
    R�ponses: 2
    Dernier message: 22/09/2005, 19h58
  5. recup�rer file d'attente d'impression
    Par magic corp. dans le forum Langage
    R�ponses: 2
    Dernier message: 25/09/2002, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo