Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Error q no encuentro

Estas en el tema de Error q no encuentro en el foro de C/C++ en Foros del Web. Hola amigos, tengo un problema en mi programa, el programa me deveria mostrar los datos de los obreros cuando entre en el menu de reportes ...
  #1 (permalink)  
Antiguo 16/11/2007, 07:20
 
Fecha de Ingreso: noviembre-2007
Mensajes: 1
Antigüedad: 17 años, 1 mes
Puntos: 0
Error q no encuentro

Hola amigos, tengo un problema en mi programa, el programa me deveria mostrar los datos de los obreros cuando entre en el menu de reportes pero no lo hace, mas bien me vota un error en tiempo de ejecucion a ver si me hechan una mano
ok???

#include "iostream.h"
#include "string.h"
#include "stdlib.h"
struct datos
{
char nombre[20];
char apellido[20];
int edad;
float salario;
float bono;
float h_trabajadas;
float h_extras;
};

void llenar(datos vector[],FILE *archivo, int nro)
{
archivo=fopen("empresa.txt","a+");

int cont;
for (cont=0;cont<nro;cont++)
{
cout<<"\n\n------------INGRESE SUS DATOS CORRESPONDIENTES--------------\n\n";
cout<< "Ingrese el nombre: ";
cin>>vector[cont].nombre;
cout<< "Ingrese el apellido: ";
cin>>vector[cont].apellido;
cout<< "Ingrese la edad: ";
cin>>vector[cont].edad;
cout<< "Ingrese el salario: ";
cin>>vector[cont].salario;
cout<< "Ingrese el bono : ";
cin>>vector[cont].bono;
cout<< "Ingrese las horas trabajadas: ";
cin>>vector[cont].h_trabajadas;
cout<< "Ingrese horas extras: ";
cin>>vector[cont].h_extras;
fprintf(archivo, "%s %s %d %f %f %f %d\n",vector[cont].nombre,vector[cont].apellido,vector[cont].edad,vector[cont].salario,vector[cont].h_trabajadas,vector[cont].h_extras);


}
fclose(archivo);
}
void cantidad(int *nro)
{
cout<< "Ingrese la cantidad de pesonas:";
cin>>*nro;
}

void crear(FILE *archivo)
{
archivo=fopen("empresa.txt","w+");
fclose(archivo);
}

void menu(int *opc)
{
cout<<"\n\n--------ELIJA ENTRE EL 1 a 4 ---------------\n\n";
cout<<"1. Crear Archivo\n";
cout<<"2. Catidad de datos\n";
cout<<"3. Imprimr Datos\n";
cout<<"4. Salir\n";
cout<<"Ingrese la opcion: ";
cin>>*opc;
}
void menu2(int *opc1)
{
cout<<"1. las personas q ganan mas de 500\n";
cout<<"2. Las personas con bono mas de 125.25\n";
cout<<"3. las horas extras trabajadas\n";
cout<<"4. EL sueldo\n";
cout<<"Ingrese la opcion: ";
cin>>*opc1;
}
void reportes(FILE *archivo, datos vector[])
{
archivo=fopen("empresa.txt","r");
int opc1;
int cont=0;
int n;
menu2(&opc1);
switch(opc1)
{
case 1:
//mayores a 500
{
while (!feof(archivo))
{
fscanf(archivo, "%s %s %d %f %f %f %d\n",vector[cont].nombre,vector[cont].apellido,vector[cont].edad,vector[cont].salario,vector[cont].h_extras,vector[cont].h_trabajadas);
cont++;
}
int cont2;
for(cont2=0;cont2<cont;cont2++)
{
if(vector[cont2].salario>500)
{
printf("%s %s %f",vector[cont2].nombre, vector[cont2].apellido,vector[cont2].salario );
}

}

}
break;
case 2:
while (!feof(archivo))
{
fscanf(archivo, "%s %s %d %f %f %f %d",vector[cont].nombre,vector[cont].apellido,vector[cont].edad,vector[cont].salario,vector[cont].h_extras,vector[cont].h_trabajadas);
cont++;
}
int cont2;
for(cont2=0;cont2<cont;cont2++)
{
if(vector[cont2].salario>125.25)
{
printf("%s %s %f",vector[cont2].nombre, vector[cont2].apellido,vector[cont2].bono );
}

}
break;
case 3:
while (!feof(archivo))
{
fscanf(archivo, "%s %s %d %f %f %f %d",vector[cont].nombre,vector[cont].apellido,vector[cont].edad,vector[cont].salario,vector[cont].h_extras,vector[cont].h_trabajadas);
cont++;
}

for(cont2=0;cont2<cont;cont2++)
{
if(vector[cont2].h_extras>20)
{
float t;
t=vector[cont2].h_extras*0.50;

printf("%s %s %f",vector[cont2].nombre, vector[cont2].apellido,t );
}
if(vector[cont2].h_extras>10)
{
float t;
t=vector[cont2].h_extras*0.25;
printf("%s %s %f",vector[cont2].nombre, vector[cont2].apellido,t );
}


}

break;

case 4:
{
while (!feof(archivo))
{
fscanf(archivo, "%s %s %d %f %f %f %d",vector[cont].nombre,vector[cont].apellido,vector[cont].edad,vector[cont].salario,vector[cont].h_extras,vector[cont].h_trabajadas);
cont++;
}
int cont2;
for(cont2=0;cont2<cont;cont2++)
{
float tg;
tg= vector[cont2].salario + 1.25 * vector[cont2].h_trabajadas + vector[cont2].bono *vector[cont2].h_extras;

printf("%s %s %f %f %f\n\n",vector[cont2].nombre, vector[cont2].apellido,vector[cont2].salario,vector[cont2].bono,tg );


}

}
break;
default:
cout<<"Ingrese un valor entre 1 y 4\n";
break;

}

}

void main()
{
datos vector[100];
FILE *archivo;
//int opc1;

int n;
int opc;
do
{

menu(&opc);
switch(opc)
{
case 1:
crear(archivo);
break;
case 2:
cantidad(&n);
llenar(vector,archivo, n);
// menu2(*opc1);
break;
case 3:
reportes(archivo,vector);
break;

case 4:

cout<<"Gracias....\n";
break;
default:
cout<<"Ingrese un valor entre 1 y 4\n";
break;
}
}
while (opc != 4);
}
  #2 (permalink)  
Antiguo 16/11/2007, 09:46
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 7 meses
Puntos: 74
Re: Error q no encuentro

Depura el programa.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 16/11/2007, 13:26
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 7 meses
Puntos: 28
Re: Error q no encuentro

Cada día los posts son más crípticos....tengo 3 recomendaciones para ti amigo arturito14:
1 .- Pon el todo lo que sea código entre las etiquetas CODE para que sea más fácil de leer por quienes te quieran prestar su ayuda (Iir a avanzado, el botón que tiene el numeral "#")

2 .- Postea el error que te dio el programa o compilador (dependiendo de en que momento se arroja), en tu caso particular es en tiempo de ejecución

3 .- Coloca cualquier información que consideres necesaria, no pretendas que pongamos tu código "bonito", lo entendamos, lo arreglemos y luego te lo enviemos listo para ejecutar.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:16.