Necesito ayuda con el comando Sleep.

Iniciado por bichis_29, 27 Noviembre 2011, 19:24 PM

0 Miembros y 2 Visitantes están viendo este tema.

bichis_29

Hola a todos: Miren lo este es mi proyecto aun no lo acabo,pero mi problema es el siguiente,en la clase ctest hay un test de inteligencia, lo que quiero es que si el usuario no introduce la respuesta correcta en un tiempo de 5 segundos pase  a la otra pregunta, lógicamente que si no puso nada en la respuesta la tome como mal¿ Donde pongo el comando sleep? o algun otro comando que me ayude. gracias

#include <iostream>
#include <string>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <dos.h>
#include <windows.h>

using namespace std;

class cocupar{
      public:
             double capturanum(string msj)
             {
                    double v;
                    cout<<msj;
                    cin>>v;
                    return v;
             }
             string capturacad(string msj)
             {
                    string c;
                    fflush(stdin);
                    cout<<msj;
                    getline(cin,c);
                    return c;
             }
             
      };
class cpeso:public cocupar{
       protected:
              float altura;
              float peso;
              float masacorp;
              float todo;
             
      public:
           cpeso(){}
           ~cpeso(){}     
virtual void leer1()
  {
        fflush(stdin);
        cout<<"Tendras que introducr tu altura y tu peso."<<endl;
        cout<<"El programa te dira como estas de peso"<<endl;
        cout<<" "<<endl;
        altura=capturanum("Introduzca la altura:");
        cout<<" "<<endl;
        peso=capturanum("Introduzca el peso:");
       
  }
void calcumasacorp()
        {
                   masacorp=peso/pow(altura,2);
                   
                   cout<<"Tu masa corporal es:"<<masacorp<<endl;
                   if(masacorp<=18.5)
                   {
                      cout<<"Usted tiene bajo peso"<<endl;
                      cout<<"-----------------------"<<endl;
                   }
                   
                   else if(masacorp>=18.5 && masacorp<=24.9)
                   {
                      cout<<"Usted tiene peso normal"<<endl;
                      cout<<"-----------------------"<<endl;
                   }
                   
                   else if(masacorp>24.9 && masacorp<=29.9)
                   {
                       cout<<"Usted tiene sobrepeso"<<endl;
                       cout<<"Tiene riesgo MODERADO de padecer algun infarto"<<endl;
                       cout<<"-----------------------"<<endl;
                   }
                   
                   else if(masacorp==30)
                   {
                     cout<<"Sufres de obesidad y los riesgos de padecer un infarto son altos"<<endl;
                     cout<<"-----------------------"<<endl;
                   }
                   
                   else if(masacorp>30 && masacorp<=34.9)
                   {
                      cout<<"Sufres de obesidad tipo 1"<<endl;
                      cout<<"El riesgo de padecer un infarto es ALTO.Cuidado"<<endl;   
                      cout<<"-----------------------"<<endl;             
                   }
                   
                   else if(masacorp>34.9 && masacorp<=39)
                   {
                        cout<<"Sufres de obesidad tipo 2"<<endl;
                        cout<<"El riesgo depadecer un infarto es MUY ALTO"<<endl;
                        cout<<"-----------------------"<<endl;
                   }
                       
                  else
                  {
                      cout<<"Sufres de obesidad tipo 3"<<endl;
                      cout<<"El riesgo de padecer un infarto es MUY ELEVADO"<<endl;
                      cout<<"-----------------------"<<endl;
                  }
}
virtual void imprimir1()
{       
         cout<<"Tu altura es:"<<altura<<"cm"<<endl;
         cout<<"Tu peso es de:"<<peso<<"Kg"<<endl;
         cout<<" "<<endl;
         cout<<"ESTOS SON LOS RESULTADOS:"<<endl;
         cout<<" "<<endl;
         
         calcumasacorp();
}
};
class ctest:public cocupar{
     
             
        protected:
              float n1,t2,t3,t4,t5;
              char t1;
              int p;
        public:
            ctest(){p=0;}
           ~ctest(){p=0;}
virtual void leer()
{
        cout<<"Test de inteligencia"<<endl;
        cout<<"Continua cada una de las sucesiones segun el criterio que te parezca mas sencillo"<<endl;
        cout<<"1.A-D-G-J: ";
        Sleep(3000);
        cin>>t1;
        if(t1=='M'|| t1=='m')
        {
           cout<<"Correcto"<<endl;
           p++;
        }   
       
        else
        {   
             cout<<"Incorrecto"<<endl;
        }
        cout<<" "<<endl;
        cout<<"2)1,3,6,10:";
        cin>>t2;
        if(t2==15)
        {
          cout<<"Correcto"<<endl;
          p++;
        }
        else
        {
            cout<<"Incorrecto"<<endl;
        }
        cout<<" "<<endl;
        cout<<"3)1,1,2,3,5:";
        cin>>t3;
        if(t3==8)
        {
            cout<<"Correcto"<<endl;
                 p++;
        }
       
        else
        {
            cout<<" "<<endl;
            cout<<"Incorrecto"<<endl;
        }
        cout<<" "<<endl;
        cout<<"4)21,20,18,15:";
        cin>>t4;
        if(t4==11)
        {
                 cout<<"Correcto"<<endl;
                 p++;
        }
       
        else
        {
            cout<<"Incorrecto"<<endl;
        }
        cout<<" "<<endl;
        cout<<"5)8,6,7,5,6,4:";
        cin>>t5;
        if(t5==5)
        {
                 cout<<"Correcto"<<endl;
                 p++;
        }
       
        else
        {
            cout<<"Incorrecto"<<endl;
        }
}
       
virtual void imprimir()
  {
       cout<<"Has terminado el test de inteligencia"<<endl;
       cout<<"Tu puntuacion es: "<<p<<endl;
       if(p==0)
       cout<<"Eres igual que un burro"<<endl;
       
       else if(p==1)
       cout<<"Necesitas entrenar mas tu mente"<<endl;
       
       else if(p==2)
       cout<<"Necesitas entrenar mas tu mente"<<endl;
       
       else if(p==3)
       cout<<"Bien"<<endl;
       
       else if(p==4)
       cout<<"Muy bien"<<endl;
       
       else
       cout<<"Excelente tenes muy buena inteligencia"<<endl;
       
       
  } 
};
     
int main()
     {
         int na,i,n;
         cpeso *aproyecto;
         ctest *aproyecto1;
         
         cout<<"Este programa es para el proyecto de P.O.O."<<endl;
         cout<<" "<<endl;
         cout<<"Escoje cualquiera de  las tres opciones:"<<endl;
         cout<<" "<<endl;
         cout<<"1.- Masa corporal     ";
         cout<<"2.-Test de inteligencia     ";
         cout<<"3.-Curp";
          cout<<" "<<endl;
         cin>>n;
         switch(n)
       {
                     case 1:
                          system("cls");
                          cout<<"Numero de pacientes:";
                          cin>>na;
                          if(na<1)
                          {
                            cout<<"Error en la creacion de la memoria dinamica:"<<endl;
                          }
                          else
                          {
                              aproyecto=new cpeso[na];
                             
                              cout<<"Inicia la captura de datos"<<endl;
                              system("pause");
                              system("cls");
                              for(i=0;i<na;i++)
                              aproyecto.leer1();
                              system("cls");
                             
                              cout<<"LISTA DE PACIENTES:"<<endl;
                              cout<<" "<<endl;
                              for(i=0;i<na;i++)
                              aproyecto.imprimir1();
                              delete[]aproyecto;
                              }
                     break;
                     
                     case 2:
                           system("cls");
                          cout<<"Cuantas veces quieres repetir el juego:";
                          cin>>na;
                          if(na<1)
                          {
                            cout<<"Error en la creacion de la memoria dinamica:"<<endl;
                          }
                          else
                          {
                              aproyecto1=new ctest[na];
                             
                              cout<<"Inicia la captura de datos"<<endl;
                              system("pause");
                              system("cls");
                              for(i=0;i<na;i++)
                              aproyecto1.leer();
                              system("cls");
                             
                              cout<<"Puntuaciones:"<<endl;
                              cout<<" "<<endl;
                              for(i=0;i<na;i++)
                              aproyecto1.imprimir();
                              delete[]aproyecto1;
                          }
                       break;
                     
                     case 3:
                   
                     break;
                     
                     default:cout<<"Opcion no valida"<<endl;
         }
         
         system("pause");
         return 0;
   }
             

naderST

En ese caso no deberías usar Sleep sino un temporizador. En la API de Windows existe una función llamado SetTimer. Acá te dejo un link.

SetTimer

bichis_29

Y ese tal temporizador como funciona. Donde es que iría....

naderST

Te invito a que investigues un poco sobre los temporizadores o timers y créeme que sabrás donde ponerlos.