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 :

simulation Airport in c++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Par défaut simulation Airport in c++
    bonsoir,
    j'ai un projet en c++ voilà l'ennoncé
    Problem Statement:
    You are to simulate airplane arrivals and departures from a fictitious airport with a single (1)
    runway. The purpose of this simulator is to estimate how long aircraft will wait to access the
    runway, and, under really bad circumstances, how many will run out of fuel and crash,
    because the runway does not become available soon enough.
    Constraints:
    • Between 0 and 10 airplanes may arrive per time interval. (The Random class and the Math
    class have methods that will be helpful in generating random numbers.)
    • Each arriving flight is given a unique flight number prior to entering the landing queue.
    • The single runway can accommodate up to six (6) departures (or arrivals) per time interval.
    • You will have a queue for the planes that are ready to land and another queue for those
    ready to takeoff. Arriving flights have priority over departing flights.
    • Each airplane that needs to land has enough fuel to keep it in flight for 25
    time intervals.
    • An airplane needs at least 1 unit of fueltime
    to land in a given interval.
    • If a flight is too low on fuel you should attempt to move it to the head of the landing queue.
    • If an airplane exhausts its fuel supply before landing then post the flight as having crashed.
    Initial Conditions:
    There are initially no airplanes that are in the landing queue.
    There are initially no flights awaiting departure.
    Your queues have no effective limit on size, we have lots of sky and tarmac space.
    Operation:
    Arriving flights are given the runway before departures.
    Use a random number generator to generate the number of planes (0 10)
    that arrive for
    landing during each time interval; and the initial amount of fuel (2 5)
    units remaining for
    flights entering airspace. As soon as an arriving flight lands it is placed in the queue ready for
    departure. Run for a 1000 intervals.
    ///////////////////////////////////////////////////////////////////////////

    j'ai deja créé mes classes et mes methodes mais je me suis bloqué je sais pas est ce ke je suis sur la bonne voie
    voilà mon code
    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
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
     
     
    #include <iostream>
    #include<time.h>
    #include <stdlib.h>
    using namespace std;
     
     
     
    /////////////////////////////////Fonction Random///////////////////////////////////////////
     
    int random(int a,int b){
        srand(time(NULL));  
        return rand()%(b-a) +a;
    }
    ////////////////////////////////FONCTION TIMER ////////////////////////////////////
     
    int  rndm_plane(){
    int rnd;
    srand(time(NULL)); 
    rnd=rand() % 11;
    return rnd;
    }
    ////////////////////////////////Inform time Intervalle ////////////////////////////////////////////
    int Inform(){
    bool interval=0;
    int rndm;
    time_t start,now;
    double def = 0;
     
    time(&start);
    do{
    time(&now);
    def=now-start;
    if(def==2){//interval de temps
    interval=1;
    rndm=rndm_plane();}
    }
    while(interval==0);
    return rndm;
    }
    /////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////AirPlane//////////////////////////////////////////
    class Airplane  
    {
     
    private:
    int  FlightID;
    int time;
    std::string Nom;
    std::string TypePlane; 
    int Fuel_Left; 
    bool Etat; 
     
     
    public:       
    Airplane();
    Airplane(int flt, int time,bool e,int fuel);
    //Airplane(std::string Nom ,std::string TypePlane);   
    std::string GetNom();   
    std::string GetTypePlane(); 
    int GetFuelLeft();      
    void SetNom(std::string);         
    void SetTypePlane(std::string);  
    void SetFuelLeft(int); 
     
     
    ~Airplane();
    //Airplane(Airplane&);
    };
     
     
    //////////////////////////////////////////////////////////////////////
    // Construction/Destruction
    //////////////////////////////////////////////////////////////////////
    Airplane::Airplane()
    {   int cmp;
        FlightID=cmp; // cmp s'increment a chaque fois !!!
        time=Inform();
        Nom="RAM";     
        TypePlane= "....";            
        Fuel_Left=random(2,5);    
        cmp++;
        //cout<<"hello";               
    }
    Airplane::Airplane(int flt, int t,bool e,int fuel)
    {
       FlightID= flt;
       Fuel_Left=fuel;
       time=t;
       Etat=random(0,1);  
       cout << "Plane number " << flt <<"Nom :"<<GetNom()<<"Type :"<<GetTypePlane()<<" ready to ";
       if (Etat == 0){
          cout << "land." << endl;
          cout << "Fuel : " <<fuel<< endl;
          FlightID++; }
       else if (Etat == 1){
          cout << "take off." << endl;
         FlightID++; }
    }
     
    Airplane::~Airplane()
    {
     
     
    } 
    ///////////////////////////////////////////////////////////////////////////
    //SETTER & GETTER
    //////////////////////////////////////////////////////////////////////////
    std::string Airplane::GetNom()
    {
          return Nom;
    }
    std::string Airplane::GetTypePlane()
    {
          return TypePlane;
    }
    int Airplane::GetFuelLeft()
    {
          return Fuel_Left;
    } 
     
    void Airplane::SetNom(std::string name){
     
         name=Nom;} 
     
    void Airplane::SetTypePlane(std::string type){
     
         type=Nom;} 
     
     
     
     
     ////////////////////////////////Control_Plane //////////////////////////////////////////
     class ControlPlane 
    {
     
    public:       
    ControlPlane();  
    ControlPlane(Airplane etat);
    void refuse(); //waiting to use runway but it's full
    void land(int time) ;
    void fly(int time,int id) ;
    int started();  
    void Priority();
    //void land(int time);   
    ~ControlPlane();
    //Airplane(Airplane&);
    };
    ControlPlane::ControlPlane(){
     
     
                                 }
     ControlPlane::~ControlPlane(){
     
     
                                 }                            
     
    void ControlPlane::Priority()
    {
       	int i;
     	Airplane air,b,tmp;
     	for(i=0;i<2;i++){		
     			if((air.GetFuelLeft()) >(b.GetFuelLeft()) )
    		{
     
    		tmp = air; 
      		air =b; 
      	    b= tmp;
    		}	
     }                    
     
    }                   
     
     
     
    int main(int argc, char *argv[])
    {
         int n= random(0,10);
     
    int etat=random(0,1);
     
    Airplane air;
    Airplane();
    ControlPlane p;
     
    for(int i=0;i<n;i++){
            int fuel=random(2,5);
    Airplane(i,Inform(),etat,fuel);
     
    }
     
     
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    et merci

  2. #2
    Membre confirmé Avatar de Gilles57-H-G
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 88
    Par défaut
    Nous v'la en Amérique

  3. #3
    Membre expérimenté
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Par défaut
    Sur quoi est ce que tu bloques ?

  4. #4
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Par défaut
    Je veux travailler avec les listes chainée afin d'ajouter un objet de type Airplane à la liste des airplane en air ou à la liste des airplane en terre puis selon le fuel de chaque avion on donne la priorité à celle dont le fuel est inferieure pour atterir ,sur chaque intervalle de temps on genre un nombre aleatoire de fuel et d'airplane quand l'airplane n'a que 2 unité de fuel si elle n'atterit pas elle crache voilà mon Code quand j'excute il beug

    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
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
     
    #include <iostream>
    #include<time.h>
    #include <stdlib.h>
     
    using namespace std;
     
     
    /////////////////////////////////Fonction Random///////////////////////////////////////////
     
    int random(int a,int b){
        srand((unsigned)time(NULL));  
        return rand()%(b-a) +a;
    }
     
    ////////////////////////////////Inform time Intervalle ////////////////////////////////////////////
    int Inform(){
    bool interval=0;
    int rndm;
    time_t start,now;
    double def = 0;
     
    time(&start);
    do{
    time(&now);
    def=now-start;
    if(def==2){//interval de temps
    interval=1;
    rndm=random(0,11);}
    }
    while(interval==0);
    return rndm;
    }
    /////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////AirPlane//////////////////////////////////////////
    class Airplane  
    {
     
    private:
    int  FlightID;
    int time;
    std::string Nom;
    std::string TypePlane; 
    int Fuel_Left; 
     
     
     
    public:  
    bool Etat;      
    Airplane();
    Airplane(int id,int t);
    //Airplane(std::string Nom ,std::string TypePlane);   
    std::string GetNom();   
    std::string GetTypePlane(); 
    int GetFuelLeft();      
    void SetNom(std::string);         
    void SetTypePlane(std::string);  
    void SetFuelLeft(int); 
     
     
    ~Airplane();
    //Airplane(Airplane&);
    };
     
     
    //////////////////////////////////////////////////////////////////////
    // Construction/Destruction
    //////////////////////////////////////////////////////////////////////
    Airplane::Airplane()
    {                   time=0;
                    Fuel_Left=0;
                    Nom="";
                    TypePlane="";
                     FlightID=0; 
                        }
    Airplane::Airplane(int id,int t)
    {
       FlightID=t+random(0,1000); 
       Etat=random(0,2);  
       Nom="RAM";     
       TypePlane= "....";   
       cout << "Plane number " <<FlightID<<"Nom :"<<GetNom()<<"Type :"<<GetTypePlane()<<" ready to "<< Etat;
       if (Etat == 0){
         Fuel_Left=random(2,6);
          cout << "land." << endl;
          cout << "Fuel : " << Fuel_Left<< endl;
                }
       else if (Etat == 1){
          cout << "take off." << endl;
          Fuel_Left=20;
          }
    }
     
    Airplane::~Airplane()
    {
     
     
    } 
    ///////////////////////////////////////////////////////////////////////////
    //SETTER & GETTER
    //////////////////////////////////////////////////////////////////////////
    std::string Airplane::GetNom()
    {
          return Nom;
    }
    std::string Airplane::GetTypePlane()
    {
          return TypePlane;
    }
    int Airplane::GetFuelLeft()
    {
          return Fuel_Left;
    } 
     
    void Airplane::SetNom(std::string name){
     
         name=Nom;} 
     
    void Airplane::SetTypePlane(std::string type){
     
         type=Nom;} 
     
     ////////////////////////////////Control_Plane //////////////////////////////////////////
     class ControlPlane 
    {
     
    public:       
    ControlPlane();  
    ControlPlane(Airplane etat);
    void refuse(); //waiting to use runway but it's full
    void land(int time) ;
    void fly(int time,int id) ;
    int started();  
    void Priority(Airplane tab[],int n);
    //void land(int time);   
    ~ControlPlane();
    //Airplane(Airplane&);
    };
    ControlPlane::ControlPlane(){
     
     
                                 }
    ControlPlane::~ControlPlane(){
     
     
                                 }                            
     
    void ControlPlane::Priority(Airplane tab[],int n)
    {
         int i;
     Airplane tmp;
    for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
    if (tab[j+1].GetFuelLeft()<tab[j].GetFuelLeft()){
    tmp=tab[j];
    tab[j]=tab[j+1];
    tab[j+1]=tmp;
    }}
     
    }                 
     
    }                   
              //////////////////////////////////////////Classe Etat_Airport  //////////////////
    typedef struct list_plan;
    struct list_plan
    {
        Airplane val;
        struct list_plan *suiv;
     
     
    };        
     
    ///////////////////////////////////////////////
     
    class State_Airport
    {    
     
     
    //struct list_plan waited_in_air;
     
    public: 
     
     struct list_plan *waitedatland;     
    State_Airport(); 
    void push(Airplane air);  
    ~State_Airport();
    };
     
    State_Airport::State_Airport(){                                               
    waitedatland->val=Airplane();
    waitedatland->suiv=NULL;
                                 }                            
    void State_Airport:: push(Airplane air){  
           struct list_plan *nv; 
           int t;  
           if(nv->val.Etat=0)  
           nv->val=air;
           nv->suiv=waitedatland;     
           waitedatland=nv;
           free(nv);           
                }
     
    State_Airport::~State_Airport(){
     
              ///////////////////////////////////////////////////////////////////////////////         
     
    int main(int argc, char *argv[])
    {
     
    int n= random(0,11);
    State_Airport stat;
    State_Airport();
    //list_plan* nv = malloc(sizeof(list_plan));
     
    int aleat,t;
    for(int count=0;count<=2;count++){//nombre d'intervale d'execution de la simulation
    cout<<"interval "<<count<<endl; 
    t=Inform();
    cout<<"Random! "<<aleat<<endl<<endl;
    	for(int j=0;j<n;j++)
    		{        
    		struct list_plan *nv;		
    		if(nv->val.Etat=0)		
    	stat.push(Airplane());
    		//	waited_in_air.suiv=nv;
    		//else	
            //nv->suiv=stat.waitedatland;
     
            //stat.waitedatland=nv;
    		//free(nv);
    		}		
       //	runway();
    	}
        system("PAUSE");
        return EXIT_SUCCESS;
    }

  5. #5
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Par défaut
    Citation Envoyé par Gilles57-H-G Voir le message
    Nous v'la en Amérique
    Bonjour,

    j'ai un projet à faire j'ai du mal à commencé
    on a un aeroport et une seule piste une fct qui genre un nombre d'avion aleatoire entre 0 et 10 sur chaque intervale de temps on a un nombre qui se genere 6 avoin on le droit de voler 6 on le droit d'atterir on le trie selon l'unité de fuel celle qui le minumun de fuel atterit la premiere bien sur qu'on il a de la place ds la piste on peut po depasser 10 avions ds la piste

    j'ai déja crée une classe airplane une constructeur je genere un nombre aleatoire mais je c po comment les stocker dans un tableao ou bien list ou vector les classe les prédéfinis




    Merci

  6. #6
    Membre confirmé Avatar de Gilles57-H-G
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 88
    Par défaut
    Je t'ai prévenu, je suis loin, très loin d'être un expert.

    Mais ton problème ne se gèrerait t-il pas mieux avec une base de données.

  7. #7
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Par défaut
    Citation Envoyé par Gilles57-H-G Voir le message
    Je t'ai prévenu, je suis loin, très loin d'être un expert.

    Mais ton problème ne se gèrerait t-il pas mieux avec une base de données.
    je comprend
    mais on doit travailler en c++ pas de base de donnée

  8. #8
    Membre confirmé Avatar de Gilles57-H-G
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 88
    Par défaut
    Ben mon Pote, bon courage.

    Je dois aller en Ville, je regarderais plus en précision ce soir, et je te donnerais mon avis d'autodidacte.

    Les autodidactes vont plus facilement à l'essentiel...

  9. #9
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    bonjour,

    srand n'est a appeler qu'une seule fois, c'est préférable.

    Autrement pour les listes/queues/... la stl te propose ceci:
    http://www.cplusplus.com/reference/stl/list/
    http://www.cplusplus.com/reference/stl/queue/
    http://www.cplusplus.com/reference/stl/

    les tutoriels sur les containers c++ ne manquent pas et ils sont assez simple à utiliser.

    Si ton but est plus l'étude des algorithmiques liées aux listes tu devrais trouver pas mal de tutoriel dans la section C/C++ de ce site.

  10. #10
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Par défaut
    une seule fois c a d


    j'ai déja commencé l'implementation des list ds mon projet mais le probleme qd suis sur un seul fichier ça marche les liste c'est vrai j'ai un probleme kd le rand genere un nombre par exemeple 5 el s'execute 10 fois ds chaque intervalle temps

    ça d'une part d'autre part quand j'ai crée des .h j'ai du mal à utiliser les list j'ai tjrs des erreurs

  11. #11
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    Citation Envoyé par angeless Voir le message
    une seule fois c a d
    Sinon tes nombres seront moins aléatoire vu que tu reinitialise a chaque fois le générateur avec un graine qui ne change qu'une fois par seconde.

    Demonstration:


    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
    #include <iostream>
    #include <time.h>
    #include <cstdlib>
     
    void rand_badway() {
      srand((unsigned int) time(NULL));
      std::cout << "rand_badway:" << rand() << std::endl;
    }
     
    void rand_goodway() {
      std::cout << "rand_goodway:" << rand() << std::endl;
    }
     
    int main() {
      std::cout << "Call srand each time rand is called" << std::endl; 
      for (int i = 0; i < 10 ; i++) {
        rand_badway();
      }
     
      std::cout << "Call srand once and call rand several times" << std::endl; 
      srand((unsigned int) time(NULL));
      for (int i = 0; i < 10 ; i++) {
        rand_goodway();
      }
     
      return EXIT_SUCCESS;
    }
    Donne le résultat suivant:
    -*- mode: compilation; default-directory: "~/" -*-
    Compilation started at Sat Dec 11 14:27:29

    g++ srand.cpp -o rand && ./rand

    Call srand each time rand is called
    rand_badway:1031532606
    rand_badway:1031532606
    rand_badway:1031532606
    rand_badway:1031532606
    rand_badway:1031532606
    rand_badway:1031532606
    rand_badway:1031532606
    rand_badway:1031532606
    rand_badway:1031532606
    rand_badway:1031532606

    Call srand once and call rand several times
    rand_goodway:1031532606
    rand_goodway:1005814676
    rand_goodway:1765323824
    rand_goodway:860591038
    rand_goodway:820920849
    rand_goodway:256102964
    rand_goodway:1151484192
    rand_goodway:1242980717
    rand_goodway:283795827
    rand_goodway:1150527440

    Compilation finished at Sat Dec 11 14:27:29

Discussions similaires

  1. Probleme Voyageur de Commerce - Recuit Simulé
    Par dinver dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/06/2009, 22h26
  2. simuler l'execution d'un message
    Par gaut dans le forum C
    Réponses: 14
    Dernier message: 24/07/2003, 23h01
  3. Simuler un coup de molette sur un memo...
    Par dynobremo dans le forum Composants VCL
    Réponses: 2
    Dernier message: 28/02/2003, 11h31
  4. [Wi-Fi]Communicaation Airport-PC
    Par Alexandre T dans le forum Développement
    Réponses: 2
    Dernier message: 21/07/2002, 18h52
  5. Simulation de transmission de paquet entre différent réseaux
    Par MelloW dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 19h51

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