//PROGRAMA EN C QUE GENERA UN ARCHIVO DE ENTRADA DE EMPLEADO QUE //REALIZA DIFERENTES CÁLCULOS EN LA NÓMINA.
//10/12/2012 <> 10:45 A.M
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
int HT,PpH,d,IA,SB,i=0;
float AFP,ARS,UnoD,TD,SN,SSN=0,pro=0,var=0,mm=999999999;
char nombre[20],opc,n[20],c[20],ce[20],HoT[20],PHo[20],des[20],IAd[20],codigo[30],cedula[15];
FILE *arch;
arch = fopen("empleado.txt","a+");
if(arch == NULL)
{
fprintf(stderr,"El archivo no se pudo crear o abrir");
getch();
exit(1);
}
do
{
system("cls");
cout<<" FECHA: ";system("date/t");
cout<<" HORA: ";system("time/t");
cout<<"+---------------------------------------------------+\n";
cout<<"| NOMINA DE EMPLEADO |\n";
cout<<"+---------------------------------------------------+\n";
cout<<"\n";
printf("NOMBRE.............: " );gets(nombre);
printf("CODIGO.............: " );gets(codigo);
printf("CEDULA.............: " );gets(cedula);
printf("HORAS TRABAJADAS...: " );scanf("%d",&HT);
printf("PAGO POR HORA......: " );scanf("%d",&PpH);
printf("DESCUENTO..........: " );scanf("%d",&d);
printf("INCENTIVO ADICIONAL: " );scanf("%d",&IA);
fprintf(arch,"%15s %15s %15s %10d %10d %10d %10d\n",codigo,nombre,cedula,HT,PpH,d,IA);
printf("\nDeseas continuar (S/N): ");scanf("%c",&opc);
opc=getch();
} while ((opc=='S') || (opc=='s'));
cout<<"\n\n";
cout<<"\n+----------------------------------------------------------------------------------------------------------------------------+\n";
cout<<"| CODIGO NOMBRE CEDULA HT P*H Desc. IA SB AFP ARS 1% Desc. TD SB |\n";
cout<<"+----------------------------------------------------------------------------------------------------------------------------+\n";
fclose(arch);
arch = fopen("empleado.txt","r");
while(feof(arch)=='\0')
{
fscanf(arch,"%15s %15s %15s %10s %10s %10s %10s\n",c,n,ce,HoT,PHo,des,IAd);
SB=(atoi(HoT)*atoi(PHo))+atoi(IAd); //Calcula Sueldo neto
AFP=(0.0272*SB)/100; //Calcula AFP
ARS=(0.0301*SB)/100; //Calcula ARS
UnoD=(0.01*SB)/100; //Calcula 1% de descuento
TD=AFP+ARS+UnoD+atoi(IAd); //Calcula Total de descuento
SN=SB-TD; //Calcula Sueldo neto
SSN+=SN;
i++;
if(SN>=var) //Calcula Sueldo neto mayor
{var=SN;}
if(SB<mm) //Calcual sueldo neto menor
{mm=SN;}
printf(" %-6s %-12s %-11s %6s %8s %8s %8s %8d %10.2f %8.2f %8.2f %8.2f %6.2f \n",c,n,ce,HoT,PHo,des,IAd,SB,AFP,ARS,UnoD,TD,SN);
fflush(stdin);
}
cout<<"+----------------------------------------------------------------------------------------------------------------------------+\n";
fclose(arch);
pro=SSN/i;
printf("PROMEDIO SUELDO NETO => %10.2f\n ",pro);
printf(" SUELDO NETO MAYOR => %10.2f\n ",var);
printf(" SUELDO NETO MENOR => %10.2f ",mm);
getch();
return 0;
}