Programación General => C/C++ => Mensaje iniciado por: camaradakoba en Jueves 5 de Marzo de 2009, 23:29
Título: problema con clases
Publicado por: camaradakoba en Jueves 5 de Marzo de 2009, 23:29
tengo que hacer un programita que de una lista de empleados me muestre los empleados que tengan mas de 5000 de sueldo y los anteriores al 01/01/2005, con lo primero no hubo mayor problema pero con lo segundo no me sale nada
# include <iostream.h> # include <string.h> # include <conio.h> int i, j, k; class fecha { public: fecha (int mes, int dia, int anio); void mostrar_fecha(void); void clasificar_sueldo(void); void clasificar_permanencia(void);
int mes; int dia; int anio; }; class empleado { public: empleado (char *nombre, int edad, int mes, int dia, int anio, float sueldo); ~empleado(void); void mostrar_empleado(void); empleado (void);
char nombre[64]; int edad; float sueldo; fecha *fecha_contrato; }; fecha::fecha (int mes, int dia, int anio) { fecha::mes=mes; fecha::dia=dia; fecha::anio=anio; } void fecha::mostrar_fecha(void) { cout<<mes<<"/"<<dia<<"/"<<anio<<"n"; } empleado::empleado (char *nombre, int edad, int mes, int dia, int anio, float sueldo) { strcpy(empleado::nombre,nombre); empleado::edad=edad; empleado::sueldo=sueldo; fecha_contrato=new fecha(mes, dia, anio); } empleado::empleado (void) { } empleado::~empleado(void) { delete fecha_contrato; } void empleado::mostrar_empleado(void) { cout<< "Nombre: "<<nombre<<"n"; cout<< "Edad: "<<edad<<"n"; cout<< "Sueldo: "<<sueldo<<"n"; cout<< "Fecha de contrato: "; fecha_contrato->mostrar_fecha(); }
.mostrar_empleado(); } cout<<"Los empleados que ganan mas de 5000 son: n"; for (j=0; j<5; j++) {
if (operarios[j].sueldo>5000) {operarios[j].mostrar_empleado();} } cout<<"Los empleados anteriores a 01/01/2005 : n"; for (k=0; k<5; j++) {
if (operarios[k].fecha_contrato->anio<=2005) {operarios[j].mostrar_empleado();} else {} }
getch(); }[/list] agradeceria cualquier ayuda
Título: Re: problema con clases
Publicado por: m0skit0 en Viernes 6 de Marzo de 2009, 01:26
Hola camarada ^_^
Para poner cachos de código, por favor, utiliza las etiquetas de código.
Cita de: "camaradakoba"
los anteriores al 01/01/2005
Cita de: "camaradakoba"
if (operarios[k].fecha_contrato->anio>=2005)
Si quieres los anteriores a 2005 deberías poner, evidentemente:
Código: C
if(operarios[k].fecha_contrato->anio<=2005)
Salud
Título: Re: problema con clases
Publicado por: camaradakoba en Viernes 6 de Marzo de 2009, 04:27
perdon, error en el copiado, el problema es que compila pero no sale
Título: Re: problema con clases
Publicado por: m0skit0 en Viernes 6 de Marzo de 2009, 14:17
Más cosas
Cita de: "camaradakoba"
for (k=0; k<5; j++)
Debe ser
Código: C
for(k=0; k<5; k++)
y un poco más abajo también el mismo error:
Cita de: "camaradakoba"
{operarios[j].mostrar_empleado();}
Debría ser:
Código: C
{operarios[k].mostrar_empleado();}
Además, no hace falta poner un else si va a estar vacío :P Tampoco necesitas la variable k para el segundo bucle, puedes usar j ya que está libre. Se usan varias variables para los bucles cuando están anidados.
Salud
Título: Re: problema con clases
Publicado por: camaradakoba en Viernes 6 de Marzo de 2009, 15:36