Está en la página 1de 5

/*

Name: TRABAJO PRACTICO COMPUTACION I (323)


Autor: Alexis Flores
Date: 26/03/17 13:29
Description: Progama para el Registro, Modificacion, Eliminacion y Calculo
de un trabajador de la UNATec
*/
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>

typedef struct {
int cedula;
char nomemple[80];
float sueldo;
int nivel;
int edad,dia,mes,anio,diaa,mesa,anioa;

} Empleado;

void Imprimir(void);
void Agregar (void);
void Modificar(void);
void Borrar(void);

int op,cent;

main(){
cent=5;
while(cent<=5){
printf("\nTRABAJO PRACTICO COMPUTACION I (323)\n ...ALEXIS FLORES V-
17.245.978...\n\n");
printf("\nBIENVENIDO AL MENU PARA REGISTRO DE EMPLEADOS\n\n\t:::ELIGE UNA
OPCION:::");
printf("\n\n1.- Agregar Empleados a la lista");
printf("\n\n2.- Mostrar la lista de Empleados existente");
printf("\n\n3.- Modificar el registro de un Empleado");
printf("\n\n4.- Borrar el registro de un Empleado");
printf("\n\n5.- Salir del Menu");
printf("\n\nOpcion: ");
scanf("%d",&op);

switch(op){
case 1:
Agregar();
break;
case 2:
Imprimir();
break;
case 3:
Modificar();
break;
case 4:
Borrar();
break;
case 5:
cent=6;
break;
default:
printf("\n\n!!!ERROR, VERIFIQUE LA OPCIÓN, POSIBLEMENTE NO EXISTE!!!");
printf("\n\n INTRODUCE UNA OPCION VALIDA...\n\n");
getch();
break;
}
}
getch();
}
//FUNCION PARA AGREGAR DATOS AL REGISTRO DE EMPLEADOS//
void Agregar(void){
FILE *fp;
Empleado empl;
empl.diaa=31;
empl.mesa=1;
empl.anioa=2017;

printf("\n\tELIGIO LA OPCION 1: AGREGAR EMPLEADOS AL ARCHIVO");


printf("\n\n!!Se Agregaran nuevos empleados al registro!!\n");
if(!(fp=fopen("registro.empl","ab")))
printf("\n ERROR DE APUERTURA DEL REGISTRO\n");
else{
fflush(stdin);
printf("\nIntroduce el numero de cedula del Empleado: ");
scanf("%i",&empl.cedula);
fflush(stdin);
printf("\n\nIntroduce el nombre del Empleado: ");
gets(empl.nomemple);
printf("\nIntroduce la fecha de Nacimiento: ");
scanf("%i/%i/%i", &empl.dia, &empl.mes, &empl.anio);

//FUNCION PARA CALCULAR LA EDAD DEL EMPLEADOS//


if(empl.mes!=empl.mesa)
{
empl.edad=empl.anioa-empl.anio;
}
else{
empl.edad=empl.anioa-empl.anio-1;
}
printf("\nIntroduce el salario del Empleado: ");
scanf("%f",&empl.sueldo);

//FUNCION PARA CALCULAR EL NIVEL SALARIAL DE LOS EMPLEADOS//


if (empl.sueldo>=15000 && empl.sueldo<20000)
{
empl.nivel=1;
}
else if (empl.sueldo>=20000 && empl.sueldo<25000)
{
empl.nivel=2;
}
else if (empl.sueldo>=25000 && empl.sueldo<30000)
{
empl.nivel=3;
}

fwrite(&empl, sizeof(empl), 1, fp);


printf("\n!!!ANEXO REALIZADO CON EXITO!!!");
printf("\nPresiona una tecla para continuar...\n");
getch();
fclose(fp);
}
}
//FUNCION PARA MOSTRAR EL REGISTRO DE EMPLEADOS//
void Imprimir(void){
FILE *fp;
Empleado empl;
int n;

if(!(fp=fopen("registro.empl","rb")))
printf("ERROR DE APUERTURA DEL REGISTRO");
else{
printf("\n\tELIGIO LA OPCION 2: IMPRIMIR REGISTRO DE EMPLEADOS");

printf("\n\n------------------------------------------------------------------------\n");
printf("\n\t\t\t R E G I S T R O D E U N A T e c \n");

printf("\n--------------------------------------------------------------------------\n");
printf("CEDULA\t EMPLEADO\t\tEDAD\t SUELDO\t NIVEL");

printf("\n--------------------------------------------------------------------------\n");
while ((n=fread(&empl, sizeof(empl),1, fp))!=0)
{
printf("%d\t", empl.cedula);
printf("%s \t", empl.nomemple);
printf("%i\t ", empl.edad);
printf("%0.0f\t ", empl.sueldo);
printf("%d \t\n", empl.nivel);

printf("\n--------------------------------------------------------------------------\n");
printf("\t SUMA TOTAL= ");

printf("\n--------------------------------------------------------------------------\n");
printf("\nPresiona una tecla para continuar...\n");
getch();
fclose(fp);
}
}

//FUNCION PARA MODIFICAR UN REGISTRO CON BUSQUEDA


void Modificar(void){
FILE *fp;
Empleado empl;
int n,c,opc;

if(!(fp=fopen("registro.empl","r+b")))
printf("\n ERROR DE APUERTURA DEL REGISTRO");
else{

printf("\n\tELIGIO LA OPCION 3: MODIFICAR EL REGISTRO DE UN EMPLEADO");


printf("\n\nIntroduzca el numero de cedula del Empleado: ");
scanf("%d",&empl.cedula);
c=empl.cedula;
while ((n=fread(&empl, sizeof(empl), 1, fp))!=0 && empl.cedula!=c);
if (empl.cedula!=c)
printf("NO EXISTE LA CEDULA: %d ",c);
else{

printf("\n!!Se encontro al Empleado!!");


printf("\n¿Que desea cambiar?, Seleccione una opcion");
printf("\n\n1.-No. de cedula");
printf("\n\n2.-Nombre");
printf("\n\n3.-Fecha de Nacimiento");
printf("\n\n4.-Salario del Empleado");
printf("\n\nIntroduzca opicion: ");
scanf("%d",&opc);
switch(opc){
case 1:
printf("\nIntroduza el nuevo numero de cedula: ");
scanf("%d",&empl.cedula);
break;
case 2:
fflush(stdin);
printf("\nIntroduzca el nuevo nombre: ");
gets(empl.nomemple);
break;
case 3:
printf("\nIntroduzca la nueva Fecha de Nacimiento: ");
scanf("%i/%i/%i",&empl.dia,&empl.mes,&empl.anio);
break;
case 4:
printf("\nIntrodizca el nueva Salario del Empleado: ");
scanf("%f",&empl.sueldo);
break;
default:
printf("\n\Error, opcion inexistente");
break;
}
printf("\nGrabando registro\n");
fseek(fp,-sizeof(empl),SEEK_CUR);
fwrite(&empl, sizeof(empl), 1, fp);
printf("\nREGISTRO GRABADO CON EXITO");
printf("\nPresiona una tecla para continuar...");
getch();
}
fclose(fp);
}
}

//FUNCION PARA BORRAR REGISTROS DE EMPLEADOS//

void Borrar(void){
FILE *fp,*fd;
Empleado empl;
int n,c,encontrado=0;

printf("\n\tELIGIO LA OPCION 4: BORRAR EL REGISTRO DE UN EMPLEADO");


printf("\n\nIngrese el numero de cedula del Empleado para borrar el registro: ");
scanf("%d",&empl.cedula);
c=empl.cedula;
if(!(fp=fopen("registro.empl","rb")))
printf("\n Error de apuertura del registro");
else{
if(!(fd=fopen("auxregis.txt","wb")))
printf("\n Error,imposible borrar registro, el registro no existe");
else{
while ((n=fread(&empl, sizeof(empl), 1, fp))!=0){
if(empl.cedula!=c)
fwrite(&empl, sizeof(empl), 1, fd);
else
encontrado=1;
}
fclose(fd);
}
fclose(fp);
if(encontrado){
system("del registro.empl");
system("ren auxregis.txt registro.empl");
printf("\n!!!REGISTRO BORRADO SATISFACTORIAMENTE!!!\n");
printf("\n\nPresiona una tecla para continuar…");
getch();
}
else{
system("del auxregis.txt");
printf("\n!!!No se encontro ningun Empleado con ese numero de cedula!!!");
printf("\n\nPresiona una tecla para continuar…");
getch();
}
}
}

También podría gustarte