Programa Que Maneja Estructuras De Organizaci N De Archivos En C
#include
#include
#include
using namespace std;
struct empleado{
char nombre[50],puesto[20];
intedad;
float sueldo;
};
typedef struct empleado empleado;
//Funcion que solicita los datos de un empleado y los almacena en un estructura.
void leerEmp(empleado &e){
fflush(stdin);
printf("\n Nombre?");
gets(e.nombre);
printf("\n Edad? ");
scanf("%d",&e.edad);
printf("\n Sueldo? ");
scanf("%f",&e.sueldo);
}
//Funcion que muestra los componentes de un empleado
void escrEmp(empleado e){printf("\n Nombre = %s",e.nombre);
printf(" Edad = %d",e.edad);
printf(" Sueldo = %5.2f",e.sueldo);
}
//Funcion que solicita y almacena en un archivo los datos de n empleados
void grabarEmp(char*nomArch,int n){
FILE *fp;
empleado e;
int i;
fp=fopen(nomArch,"wb");
for(i=1;i<=n;i++){
printf("\n Datos del empleado %d",i);
leerEmp(e);
fwrite(&e,sizeof(empleado),1,fp);
}
fclose(fp);
}//Funcion que muestre datos del archivo
void mostrarEmp(char *nomArch){
FILE *fp;
empleado e;
printf("\n\n Archivo de empleados\n");
fp=fopen(nomArch,"rb");
while(!feof(fp)){fread(&e,sizeof(empleado),1,fp);
if(!feof(fp))
escrEmp(e);
}
fclose(fp);
}
//Funcion que regrese el nombre del empleado con el mayor sueldo
char *empSueldoMayor(char *nomArch,char *nomx){
FILE *fp;empleado e;
float sm=0.0;
fp=fopen(nomArch,"rb");
while(!feof(fp)){
fread(&e, sizeof(empleado),1,fp);
if(e.sueldo>sm){
sm=e.sueldo;
strcpy(nomx,e.nombre);
}
}
fclose(fp);
}
//Funcion quebusca un nombre en el archivo y regresa la posicion que ocupa en el archivo a partir de cero, -1 indica que el nombre no esta en el archivo
int posicion(char *nomArch,char *nomx){
FILE *fp;
empleadoe;
int pos=-1,i=0;
fp=fopen(nomArch,"rb");
while((!feof(fp))&&(pos==-1)){
fread(&e,sizeof(empleado),1,fp);
if(strcmp(e.nombre,nomx)==0)
pos=i;
else
i++;
}
fclose(fp);
return pos;...
Regístrate para leer el documento completo.