1
« en: Jueves 11 de Febrero de 2010, 07:26 »
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