Que debo hacer para obtener archivos en este programa?
Tengo una gran duda ya que no me he podido guiar muy bien con el tema de archivos y necesito ayuda con este programa ya que tengo que pasar cada función del programa a archivos, es decir una que muestre todos los datos que se tabularon en el .exe, otro que muestre un archivo de solo la función proceso y otro que muestre solo lo que hay en la función de salida...
#include <iostream>
#include <stdlib.h>
using namespace std;
class nomina {
public:
struct empleado{
char nom[30],carg[30];
int cedula,n;
int salario,sueldo;
int horED,horEN,horEDdom,horENdom,horas,HorTrabaj,RecarN,RecarD,RecarF;
int ValHorED,ValHorEN,ValHorEDdom,ValHorENdom,ValHorO,ValHorDF,ValHorRecarN,ValHorRecarD,ValHorRecarF,ValTOTHor,AuxTrans,Salud,ValPen,ValDeduc,ValDeveng;
};
public:
void leer(empleado *as, int);
void ver(empleado *as, int);
void proceso (empleado *as);
};
void nomina::leer(empleado *as, int n){
cout<<"\t CALCULO DE NOMINA"<<endl;
for(int i=0;i<n;i++)
{
cout<<"\nDigite nombre: "<<endl;
gets(as->nom);
gets(as->nom);
cout<<"\nDigite su cargo: "<<endl;
gets(as->carg);
cout<<"\nDigite cedula: "<<endl;
cin>>as->cedula;
cout<<"\nDigite sueldo: "<<endl;
cin>>as->sueldo;
proceso(as);
as++;
}
}
void nomina::proceso(empleado *as){
//Obtencion de "Valor de hora ordinaria.
as->ValHorO = as->sueldo/(30 * 8); // (30) los dias de un mes.
//Obtencion de recargos
cout<<"\nIngrese los recargos nocturnos(HORAS): "<<endl;
cin>>as->RecarN;
cout<<"\nIngrese los recargos dominicales(HORAS): "<<endl;
cin>>as->RecarD;
cout<<"\nIngrese los recargos festivos(HORAS): "<<endl;
cin>>as->RecarF;
//Obtencion de horas extras
cout<<"\nIngrese las horas extradiurnas: "<<endl;
cin>>as->horED;
cout<<"\nIngrese las horas extranocturnas: "<<endl;
cin>>as->horEN;
cout<<"\nIngrese las horas extradiurnas dominicales o festivas: "<<endl;
cin>>as->horEDdom;
cout<<"\ningrese las horas dominicales o festivas nocturnas"<<endl;
cin>>as->horENdom;
as->horas = as->horED + as->horEN + as->horEDdom + as->horENdom + as->RecarN + as->RecarD + as->RecarF;
//Valor total de las horas extras
if(as->horas <= 48){
//Valor de horas extradiurnas
as->ValHorED = (((as->ValHorO * as->horED) * 1.25));
//Valor de horas extranocturnas
as->ValHorEN = (((as->ValHorO * as->horEN) * 1.75));
//Valor de horas extradiurnas dominicales/festivas
as->ValHorEDdom = (((as->ValHorO * as->horEDdom) * 2.0));
//Valor de horas extranocturnas dominicales/festivas
as ->ValHorENdom = (((as->ValHorO * as->horENdom) * 2.5));
//Valor de recargos noctutnos
as->ValHorRecarN = (((as->ValHorO * as->RecarN) * 1.35));
//Valor de recargos dominicales
as->ValHorRecarD = (((as->ValHorO * as->RecarD) * 1.75));
//Valor de recargos festivos
as->ValHorRecarF = (((as->ValHorO * as->RecarF) * 2.75));
//Valor Total de horas extras y recargos
as->ValTOTHor = as->ValHorED + as->ValHorEN + as->ValHorEDdom + as->ValHorENdom + as->ValHorRecarN + as->ValHorRecarD + as->ValHorRecarF ;
///////Devengos
as->ValDeveng = as->ValTOTHor + as->sueldo;
//Salud
as->Salud = as->sueldo * 0.04;
//Pension
as->ValPen = as->sueldo * 0.04;
////////Deducciones
as->ValDeduc = as->Salud + as->ValPen;
//Salario
as->salario = as->ValDeveng - as->ValDeduc ;
}else{cout<<"Las horas registradas exceden el limite de 48 horas extras como maximo..."<<endl;
system("PAUSE");
}
as++;
}
void nomina::ver(empleado *as,int n){
for(int i=0;i<n;i++){
cout<<"\n \t\tNOMINA"<<endl;
cout<<"\nNombre: "<<as->nom<<endl;
cout<<"Cedula: "<<as->cedula<<endl;
cout<<"Cargo: "<<as->carg<<endl;
cout<<"Sueldo: "<<"$"<<as->sueldo<<endl;
if(as->salario <= 1475434){
cout<<"Aux. Transporte: SI"<<endl;
}else{
cout<<"Aux. Transporte: NO"<<endl;
}
cout<<"\t\tDevengados: "<<"\n\t\t Hrs/Trab"<<endl;
cout<<"Sueldo basico: "<<"\t\t"<<240<<"\t"<<"$"<<as->sueldo<<endl;
cout<<"Hora extradiurna: "<<"\t"<<as->horED<<"\t"<<"$"<<as->ValHorED<<endl;
cout<<"Hora extranocturna: "<<"\t"<<as->horEN<<"\t"<<"$"<<as->ValHorEN<<endl;
cout<<"Hora extradiurna d/f: "<<"\t"<<as->horEDdom<<"\t"<<"$"<<as->ValHorEDdom<<endl;
cout<<"Hora extranoc. D/f: "<<"\t"<<as->horENdom<<"\t"<<"$"<<as ->ValHorENdom<<endl;
cout<<"Recargo Nocturno: "<<"\t"<<as->RecarN<<"\t"<<"$"<<as->ValHorRecarN<<endl;
cout<<"Recargo Dominical: "<<"\t"<<as->RecarD<<"\t"<<"$"<<as->ValHorRecarD<<endl;
cout<<"Recargo Festivo: "<<"\t"<<as->RecarF<<"\t"<<"$"<<as->ValHorRecarF<<endl;
cout<<"\tValor Devengados: "<<"$"<<as->ValDeveng<<endl;
cout<<"\t\tDeducciones: "<<endl;
cout<<"Aporte de salud: "<<"\t"<<"$"<<as->Salud<<endl;
cout<<"Aporte de pension: "<<"\t"<<"$"<<as->ValPen<<endl;
cout<<"\tValor Deducciones: "<<"$"<<as->ValDeduc<<endl;
cout<<"\t\t\t\tSalario: "<<"$"<<as->salario<<endl;
as++;
}
}
int main(){
int n;
nomina d;
cout<<"Ingrese la cantidad de empleados: "<<endl;
cin>>n;
nomina::empleado array[n],*p;
p=&array[0];
d.leer(p,n);
p=&array[0];
d.proceso(p);
p=&array[0];
d.ver(p,n);