Nómina (C++)

//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;
}