• Jueves 2 de Mayo de 2024, 14:08

Autor Tema:  una gran duda para los grandes analisadores en c++  (Leído 697 veces)

havok182

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
una gran duda para los grandes analisadores en c++
« en: Jueves 11 de Febrero de 2010, 07:26 »
0
bueno por la hora termine tarde pero al fin lo logre y lo interesante es q lo hice averiguando bueno al grano xD este programa sirve para calcular los datos de N personas y  q se pueda saber sus horas de trabajo y su retraso lo interesante es q no entiendo aun en mi funcion de retraso q ahi es donde me tarde como 3 horas en descifrar es esto:
# include <iostream>
# include <iomanip>
using namespace std;
struct datos
{ int item;
  char nombre[60];
  char entrada[15];
  char salida[15];

 
};
void reco(datos [],int );
void hora(datos [],int );
void retraso(datos [],int );

main ()
{   datos a[50];
    char fecha[40];
    int n,t,h;
    cout << "cuantas personas se les tomara datos:"; cin >> n;
    cout << "Fecha:";cin >>fecha;cout <<fecha<< endl;
    reco(a,n);
    hora(a,n);
    retraso(a,n);

    system("pause");
}
     
void reco(datos a[],int n)
{
     for (int i=0;i<n;i++)
  {
  cout << "Item:";cin >>a.item;cout << endl;
  cout << "Nombre:";cin>>a.nombre;cout << endl;
  cout << "Hora de entrada:";cin>>a.entrada;cout << endl;
  cout << "Hora de salida:";cin >>a.salida;cout << endl;
  }

}
void hora(datos a[],int n)
{    for (int i=0;i<n;i++)
     { int llega,t,sale,m,l,k;
       llega=atoi(a.entrada);
       sale=atoi(a.salida);
      t=sale-llega;
      a.salida;
      char *p1,*p2,*p3,*p4;
      a.salida;
      p1=strtok(a.entrada,":");
      p2=strtok(NULL,":");
      m=atoi(p2);
      p3=strtok(a.salida,":");
      p4=strtok(NULL,":");
      l=atoi(p4);
      if(m>l)
      {t--;
       k=60-m;
       k=k+l;
       cout<<"total horas trabajadas"<<t<<":"<<k<<endl;}
      else
      {k=l-m;
      cout<<"total horas trabajadas"<<t<<":"<<k<<endl;}
      }
}
void retraso(datos a[],int n)
{    for (int i=0;i<n;i++)
     { int llega,t,sale,y,l,h=0;
       llega=atoi(a.entrada);
                                // aki intenta poner todo ese codigo de abajo y comprueba
          if(llega<8)
               {cout<<"retraso(minutos):"<<"0";}
    else
        {if(llega>=8 && y>0)
                h=llega-8;
                h=h*60;
                h=h+y;
                cout<<"retraso(minutos):"<<h;}
                 
      char *p1,*p2;// si tratan de poner desde esta linea
      p1=strtok(a.entrada,":");
      p2=strtok(NULL,":");
      y=atoi(p2);                                          // asta aca y lo llevan a la linea de arriba veran q ya no es lo mismo pero porque???
     }
}

como dice aber si lo intentan y despues pueden explicarme sera por el echo q cuando lo utiliza como apuntador cambio el valor del vector?? la verdad no c aver si me ayudan a despejar la ayuda