//el siguiente archivo contiene datos acerca de los empleados de una empresa, estos datos son los siguentes
//nombre
//apellido
//sueldo
//cantidad de cargas familiares
//seguro medico
//fonasa o isapre
//afp
// se pide diseñar un programa que realice los siguentes procesos
//a) un procedimiento que cree los archivos con los datos iniciales( el usuario debe definir cuando no quiera seguir ingresando los datos)
// b) un procedimiento que liste todos los datos del archivo
// c) un procedimiento que permita añadir un empleado
// d) una funcion que retorne la cantidad de empleados que tienen mas de 3 cargas familiares, imprimir es este dato en el programa principal
// e) una funcion que reciba por parametro el apellido de un empleado y retorne su sueldo
// f)una funcion que retorne la suma total de todos los sueldos de los empleados
// el programa principal debe incluir el menu con las siguentes opciones:
// 1 crear archivo
// 2 listar empleados
// 3 agregar empleados
// 4cantidad de cargas
// 5 sueldo de empleado
// 6total sueldo
// ingrese su opcion
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>
void ingresar();
void listar();
void agregar();
int cantidad();
long suel_emple(char apellido[15]);
long sueldos(void);
<br />
<pre style="white-space: pre-wrap; word-wrap: break-word;"></pre>
<pre style="white-space: pre-wrap; word-wrap: break-word;"></pre>
<pre style="white-space: pre-wrap; word-wrap: break-word;"></pre>
<pre style="white-space: pre-wrap; word-wrap: break-word;"></pre>
<pre style="white-space: pre-wrap; word-wrap: break-word;"></pre>
<pre style="white-space: pre-wrap; word-wrap: break-word;"></pre>
<pre style="white-space: pre-wrap; word-wrap: break-word;"></pre>
<pre style="white-space: pre-wrap; word-wrap: break-word;"></pre>
<pre style="white-space: pre-wrap; word-wrap: break-word;"></pre>
<pre style="white-space: pre-wrap; word-wrap: break-word;"></pre>
<pre style="white-space: pre-wrap; word-wrap: break-word;">struct empleado
{
char nomb[10];
char apell[15];
int cargas;
long sueldo;
char seguro[7];
char afp[20];
};
struct empleado emple;
FILE *f;
int main()
{
int opc, cant;
long sueldo;
char a[15];
do
{
system("CLS");
printf("\n\n\n MENU PRINCIPAL ");
printf("\n ==== ========= \n\n\n");
printf(" 1) crear archivo\n");
printf(" 2) listar empleados\n");
printf(" 3) agregar empleados\n");
printf(" 4) cantidad de cargas\n");
printf(" 5) sueldo de empleado\n");
printf(" 6) total sueldos\n");
printf(" 0) salir\n");
printf("Ingrese su opcion : ");
scanf("%d", &opc);
switch (opc)
{
case 1: system("CLS");
ingresar();
break;
case 2: system("CLS");
listar();
getchar();
break;
case 3: system("CLS");
agregar();
break;
case 4: system("CLS");
cant = cantidad();
printf("\n\nLa cantidad de cargas de los empleados es: %d", cant);
getchar();
break;
case 5: system("CLS");
printf("\n\nIngrese el nombre del empleado que desea buscar: ");
fflush(stdin);
gets(a);
fflush(stdin);
sueldo = suel_emple(a);
if (sueldo ==0)
{
printf("\n\nEl empleado no existe");
}
else{
printf("\n\nEl sueldo del empleado es: %ld", sueldo);
}
getchar();
break;
case 6: system("CLS");
sueldo = sueldos();
printf("\n\nEl total de los sueldos de los empleados es: %ld", sueldo);
getchar();
break;
case 0: system("CLS");
printf("\n\n\n\n\nPROGRAMA FINALIZADO......");
getchar();
break;
default: printf("Ingrese opcion nuevamente");
getchar();
}
}while (opc!=0);
}
void ingresar()
{
char resp;
char cadena[100];
if((f=fopen("empleados.dat","w"))==NULL)
{
printf("El archivo no existe");
getchar();
return;
}
do
{
printf("\n\n\nIngrese nombre: ");
fflush(stdin);
fgets(emple.nomb,10,stdin);
fflush(stdin);
printf("\nIngrese apellido: ");
fgets(emple.apell,15,stdin);
fflush(stdin);
printf("\nIngrese cantidad de cargas familiares: ");
scanf("%d",&emple.cargas);
printf("\nIngrese sueldo:");
scanf("%ld",&emple.sueldo);
printf("\nIngrese seguro medico (Fonasa/Isapre): ");
fflush(stdin);
fgets(emple.seguro,7,stdin);
fflush(stdin);
printf("\nIngrese AFP: ");
fgets(emple.afp,20,stdin);
fflush(stdin);
strcpy(cadena,"");
printf("%d",sizeof(struct empleado));system("PAUSE");
fwrite(&emple, sizeof(struct empleado),1,f);
printf ("\n\n\nDesea continuar (S/N):");
resp = toupper(getchar());
}while(resp != 'N');
fclose(f);
}
void listar()
{
if((f=fopen("empleados.dat","r"))==NULL)
{
printf("El archivo no existe");
getchar();
return;
}
rewind(f);
fread(&emple, sizeof(struct empleado),1,f);
printf("%s",emple.nomb);
while (!feof(f))
{
printf("\n\n\nNombre: %s", emple.nomb);
printf("\nApellido: %s", emple.apell);
printf("\nCantidad de cargas familiares: %d", emple.cargas);
printf("\nSueldo: %ld", emple.sueldo);
printf("\nSeguro medico (Fonasa/Isapre): %s", emple.seguro);
printf("\nAFP: %s", emple.afp);
fread(&emple, sizeof(struct empleado),1,f);
}
fclose(f);
}
void agregar()
{
if((f=fopen("empleados.dat","a"))==NULL)
{
printf("El archivo no existe");
getchar();
return;
}
printf("\n\n\nIngrese nombre: ");
fflush(stdin);
gets(emple.nomb);
fflush(stdin);
printf("\nIngrese apellido: ");
fflush(stdin);
gets(emple.apell);
fflush(stdin);
printf("\nIngrese cantidad de cargas familiares: ");
scanf("%d",&emple.cargas);
printf("\nIngrese sueldo:");
scanf("%ld",&emple.sueldo);
printf("\nIngrese seguro medico (Fonasa/Isapre): ");
fflush(stdin);
gets(emple.seguro);
fflush(stdin);
printf("\nIngrese AFP: ");
fflush(stdin);
gets(emple.afp);
fflush(stdin);
fwrite(&emple, sizeof(struct empleado),1,f);
fclose(f);
}
int cantidad()
{
int cont=0;
if((f=fopen("empleados.dat","r"))==NULL)
{
printf("el archivo no existe");
getchar();
return(0);
}
fread(&emple,sizeof(struct empleado),1,f);
while(!feof(f))
{
if (emple.cargas>3)
cont++;
fread(&emple,sizeof(struct empleado),1,f);
}
fclose(f);
return(cont);
}
long suel_emple(char apellido[15])
{
if((f=fopen("empleados.dat","r"))==NULL)
{
printf("el archivo no existe");
getchar();
return(0);
}
fread(&emple,sizeof(struct empleado),1,f);
while(!feof(f))
{
if (strcmp(apellido, emple.apell)==0){
return(emple.sueldo);
}
fread(&emple,sizeof(struct empleado),1,f);
}
fclose(f);
return(0);
}
long sueldos(void)
{
long total=0;
if((f=fopen("empleados.dat","r"))==NULL)
{
printf("el archivo no existe");
getchar();
return(0);
}
fread(&emple,sizeof(struct empleado),1,f);
while(!feof(f))
{
total=total+emple.sueldo;
fread(&emple,sizeof(struct empleado),1,f);
}
fclose(f);
return(total);
}
No hay comentarios:
Publicar un comentario