Está en la página 1de 21

PRACTICA DE FUNCIONES

INTEGRANTES:
• Santisteban Torres, Carlos Santisteban
• Contreras Silva Oscar Eduardo
• Cortegana Silva Carlos Arturo
• Cortijo Canaza Omar André
Planteamiento del problema:

 Se desea crear un programa de boletas con las siguientes especificaciones:

 Solicite la fecha de cierre de planillas, tipo de sistema de pensiones, numero de hijos,


fecha de nacimiento del último hijo, adelantos recibidos. Para luego imprimir en la
pantalla un tipo de boleta con la fecha de cierre de plantilla, sueldo básico, asignación
familiar, descuentos de sistema de pensiones, descuentos adelantados recibidos y sueldo
neto.
 Donde las reglas de negocio son:

1) Sueldo neto= sueldo básico+ asignación familiar- descuento de pensiones – descuento


de adelantos recibidos.

2) Descuento sistema de pensiones= sueldo básico * tasa de descuento

3) Se otorga asignación familiar para hijo menores de 18 años(le corresponde asignación


familiar hasta que el hijo mas pequeño cumpla 18 años hasta la fecha de cierre de plantillas)

4) Asignación familiar = Sueldo básico * 0.10

5) El adelanto no puede ser mayor que el sueldo básico

6) Si no tiene hijos, no debe solicitarse la fecha de nacimiento del ultimo hijo.


DATOS:

TIPO DE TRABAJADOR SUELDO BÁSICO


A 1000
B 1200
C 1500

TIPO DE SISTEMA DE SISTEMA DE PENSIONES TASA DE DESCUENTO


PENSIONES
X SISTEMA NACIONAL 13%
Y AFP 1 12.5%
W AFP 2 11.8%
Z AFP 3 12.3%
 EL PROGRAMA DEBE TENER LAS SIGUIENTES FUNCIONES:

 FUNCION PARA ASIGNAR SUELDO BASICO

 FUNCION PARA ASIGNAR DESCUENTO SISTEMA DE PENSIONES

 FUNCION PARA DETERMINAR SI LE CORRESPONDE ASIGNACION PERSONAL

 FUNCION PARA DETERMINAR EDAD DEL ULTIMO HIJO.

 FUNCION PARA VALIDAR FECHA

 FUNCIONES PARA VALIDAR TODAS LAS ENTRADAS


ANÁLISIS DEL PROBLEMA:
ESPECIFICACIONES DE ENTRADA:

Variables:
Ingrese sus datos:
dia (float) adel(float)
Fecha de cierre de planillas:
mes (float) sueldo(float)
Tipo de trabajador:
año(float) tasa(float)
Tipo sistema de pensiones: b(float) hijo(float)
Número de hijos: asig(float) dia2(float)
Fecha de nacimiento ultimo hijo: h(float) mes2(float)
Adelantos recibidos: año2(foat)
ESPECIFICACIONES DE SALIDA:

Variables:
FECHA DE CIERRE DE PLANILLAS:

h (float) asig (float)


BOLETA DE REMUNERACIONES

SUELDO BASICO: tasa (float) adel (float)

ASIGNACION FAMILIAR:
DESCUENTO SISTEMA DE PENSIONES:
dia(float) mes(float)
DESCUENTOS ADELANTADOS RECIBIDOS:

año(foat)
SUELDO NETO:
CODIGO C++

FUNCIONES PROGRAMADAS:

FUNCION SUELDO BASICO: FUNCION DIFERENTE DE VOID, SIN PARAMETROS

int sueldobasic()
{char X;
float sueldo;
cout<<" ingrese tipo de trabajador: "; cin>>X;
while(X!='A'&&X!='B'&&X!='C'&&X!='a'&&X!='b'&&X!='c')
{cout<<"Letra invalida,ingrese denuevo."<<endl;
Sleep(1000);
cout<<" ingrese tipo de trabajador: ";cin>>X;}
if(X=='A'||X=='a')
sueldo=1000;
if(X=='B'||X=='b')
sueldo=1200;
if(X=='C'||X=='c')
sueldo=1500;
return(sueldo);}
FUNCION PARA ASIGNAR SISTEMA DE PENSIONES:
DIFERENTE DE VOID (float), CON PARAMETROS:

float Tasa(int sueldo)


{char Y;
float tasa;
cout<<" ingrese tipo de sistema de pensiones: ";cin>>Y;
while(Y!='X'&&Y!='x'&&Y!='Y'&&Y!='y'&&Y!='W'&&Y!='w'&&Y!='Z'&&Y!='z')
{cout<<"letra invalida,ingrese denuevo"<<endl;
Sleep(1000);
cout<<" ingrese tipo de sistema de pensiones: ";cin>>Y;}
if(Y=='X'||Y=='x')
tasa=sueldo*0.13;
If(Y=='Y'||Y=='y')
tasa=sueldo*0.125;
if(Y=='W'||Y=='w')
tasa=sueldo*0.118;
if(Y=='Z'||Y=='z')
tasa=sueldo*0.123;
return(tasa);}
FUNCION PARA VALIDAR FECHAS (INCLUYENDO LA EXISTENCIA DE AÑO BICIESTO)

int fechitas(int dia, int mes, int ano)


{int i, b=0;
bool bisiesto=0;
{if((ano%4==0)&&((ano%100!=100)||(ano%400==0)))
bisiesto=1;
if((dia>0)&&(dia<32)&&(mes>0)&&(mes<13)&&(ano>0))
{if((mes==1)||(mes==3)||(mes==5)||(mes==7)||(mes==8)||(mes==10)||(mes==12))
{b=1;}
else
{if((mes==2)&&(dia<30)&&(bisiesto))
b=1;
else
if((mes==2)&&(dia<29)&&(!bisiesto))
b=1;
else
If((mes!=2)&&(dia<31))
b=1;
else
b=0;}}
else
b=0; }
FUNCION PARA DETERMINAR SI LE CORRRESPONDE ASIGNACION FAMILIAR Y EDAD DEL ULTIMO HIJO
Función diferente de void(float), con parámetros

float fechadelhijo(int dia,int mes,int ano,int dia2,int mes2,int ano2,int sueldo)


{ float edad0,dias,dias2,asigfam,edad,x;
dias=((ano*12)*30)+(mes*30)+dia;
dias2=((ano2*12)*30)+(mes2*30)+dia2;
edad0=dias-dias2;
edad=edad0/(30*12);
if(edad<18)
asigfam=sueldo*0.10;
else
asigfam=0;
return(asigfam); }
FUNCION PRINCIPAL:
int main()
{float dia, mes, ano, b,asig,h,c;
float adel, sueldo,tasa,hijo,dia2,mes2,ano2;
//menu
cout<<"*****************************************************************"<<endl;
cout<<"* Tipo trabajador * Sueldo Basico *"<<"\n";
cout<<"* A * 1000 *"<<"\n";
cout<<"* B * 1200 *"<<"\n";
cout<<"* C * 1500 *"<<endl;
cout<<"*****************************************************************"<<endl;
cout<<"*************************************************************************************************"<<endl;
cout<<"* Tipo sistema pension * Sistema de pensiones * Tasa de descuento
*"<<"\n";
cout<<"* X * Sitema nacional * 13%
*"<<"\n";
cout<<"* Y * AFP1 * 12.5%
*"<<"\n";
cout<<"* W * AFP2 * 11.8%
*"<<"\n";
cout<<"* Z * AFP3 * 12.3%*"<<endl;
cout<<"*************************************************************************************************"<<endl;
cout<<"*INGRESE SUS DATOS:"<<"\n";
cout<<"-Fecha de cierre de planillas."<<"\n";
do
{cout<<" Ingrese dia: ";
cin>>dia;
cout<<" Ingrese mes: ";
cin>>mes;
cout<<" Ingrese año: ";
cin>>ano;
b=fechitas(dia,mes,ano);
if(ano-int(ano)!=0)
b=0;
if(mes-int(mes)!=0)
b=0;
If(dia-int(dia)!=0)
b=0;
if(b==0)
{cout<<"Vuelva ingresar datos."<<"\n";Sleep(800);} }
while(b==0);
cout<<"-Tipo de trabajador."<<"\n";
h=sueldobasic();
cout<<"-Tipo sistema de pensiones."<<"\n";
tasa=Tasa(h);
do{cout<<"-Numero de hijos: "; cin>>hijo;}
while(edadhijo(hijo)==1);
if (hijo>0){
cout<<"-Ingrese fecha de nacimiento de su ultimo hijo: "<<endl;
do{cout<<" Dia: ";cin>>dia2;
cout<<" Mes: ";cin>>mes2;
cout<<" A\xA4o: ";cin>>ano2;
c=fechitas(dia2,mes2,ano2);
if(ano2-int(ano2)!=0) c=0;
if(mes2-int(mes2)!=0)
c=0;
if(dia2-int(dia2)!=0)
c=0;
if(c==0)
{cout<<"Vuelva ingresar datos."<<"\n";Sleep(800);}}
while(c==0);}
else {dia2=0;mes2=0;ano2=0;}
adel=adelantos(h);
sueldo=sueldo-adel;
system ("cls");
if(dia<10&&mes<10)
cout<<"*Fecha cierre de plantilla: "<<"0"<<dia<<"/"<<"0"<<mes<<"/"<<ano<<"*"<<"\n";
else
{if(dia<10)
cout<<"*Fecha cierre de plantilla: "<<"0"<<dia<<"/"<<mes<<"/"<<ano<<"*"<<"\n";
else
cout<<"*Fecha cierre de plantilla: "<<dia<<"/"<<mes<<"/"<<ano<<" *"<<"\n";}
//Boleta
cout<<"************************************************"<<endl;
cout<<"************BOLETA DE REMUNERACIONES************"<<endl;
cout<<"************************************************"<<endl;
//Salidas de funciones
cout<<"*Sueldo basico: "<<h<<"*"<<endl;
asig=fechadelhijo(dia,mes,ano,dia2,mes2,ano2,h);
cout<<"*Asignacion familiar: "<<asig<<"*"<<endl;
cout<<"*Descuento de sistemas de pensiones: "<<tasa<<"*"<<endl;
cout<<"*Descuentos adelantados recibidos: "<<adel<<"*"<<endl;
cout<<"*SUELDO NETO: "<<h+asig-tasa-adel<<"*"<<endl;
cout<<"************************************************"<<endl;

getch();}
PRUEBAS DE ESCRITORIO
FECHA DE CIERRE DE 10/05/1990 30/08/2000 15/03/2000 02/01/2000 05/11/2048
PLANILLAS

TIPO DE A B C C A
TRABAJADOR

TIPO DE SISTEMA DE Y X W Z Z
PENSIONES

FECHA DE NACIMENTO DEL 05/04/1990 0 06/08/1990 05/01/1992 0


ÚLTIMO HIJO

ADELANTOS 100 20 200 150 250


RECIBIDOS
FECHA DE CIERRE DE 10/05/1990 30/08/2000 15/03/2000 02/01/2000 05/11/2048
PLANILLAS

BOLETA DE REMUNERACIONES

SUELDO BASICO 1000 1200 1500 1500 1000

ASIGNACION FAMILIAR 100 0 150 184.5 0

DESCUENTO SISTEMA DE 125 156 177 150 123


PENSIONES

DECUENTOS 100 20 200 150 250


DELANTADOS RECIBIDOS

SUELTDO NETO 875 1024 1273 1315.5 627


FECHA DE CIERRE DE 04/12/2030 12/05/1990 15/07/2010 30/01/2000 15/05/1999
PLANILLAS

TIPO DE B A B C A
TRABAJADOR

TIPO DE SISTEMA DE Y Z W X W
PENSIONES

FECHA DE NACIMENTO DEL 03/12/2012 12/04/1970 12/07/2000 31/01/1982 14/05/1980


ÚLTIMO HIJO

ADELANTOS 30 300 700 800 600


RECIBIDOS
FECHA DE CIERRE DE 04/12/2030 12/05/1990 15/07/2010 30/01/2000 15/05/1999
PLANILLAS

BOLETA DE REMUNERACIONES

SUELDO BASICO 1200 1000 1200 1500 1000

ASIGNACION FAMILIAR 0 100 120 150 100

DESCUENTO SISTEMA DE 150 123 141.6 195 118


PENSIONES

DECUENTOS 30 300 700 800 600


DELANTADOS RECIBIDOS

SUELTDO NETO 1020 677 478.4 655 382


GRACIAS

También podría gustarte