Retroceder   Foros del Web > Temas generales de computación > Programación > C/C++

Respuesta
 
Herramientas Desplegado
Antiguo 16-nov-2007, 06:20   #1 (permalink)
arturito14 ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2007
Mensajes: 1
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);
}
arturito14 está desconectado   Responder Citando
Antiguo 16-nov-2007, 08:46   #2 (permalink)
Eternal Idol está en el buen camino
 
Avatar de Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Europa (VdL)
Mensajes: 5.156
Re: Error q no encuentro

Depura el programa.
Eternal Idol está desconectado   Responder Citando
Antiguo 16-nov-2007, 12:26   #3 (permalink)
_Lucifer_ tiene algunos puntos positivos de karma
 
Avatar de _Lucifer_
 
Fecha de Ingreso: junio-2006
Mensajes: 1.588
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:
_Lucifer_ está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 22:47.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93