9/21/2016

Ejercicio 12

Un empleado trabaja 48 horas en la semana a razón de $5.000 hora. El porcentaje de retención en la fuente es del 12,5% del salario bruto. Se desea saber cuál es el salario bruto, la retención en la fuente y el salario neto del trabajador.


#include <iostream>
// se incluye la clase Empleado para despues llamar a sus metodos 
#include "Empleado.h"

using namespace std;

int main(void)
{
    // se crea un objeto de la clase Empleado (Instanciaciación) 
    Empleado *obj = new Empleado(); 
    // se imprime en pantalla el salario bruto. 
    cout << "Salario bruto: $" << obj->salarioBruto() << endl;
    // se imprime en pantalla la retencion en fuente. 
    cout << "Retencion en Fuente: $" << obj->retencionEnFuente() << endl;
    // se imprime en pantalla el salario neto. 
    cout << "Salario neto: $" << obj->salarioNeto() << endl;
} 
     

#ifndef EMPLEADO_H
#define EMPLEADO_H

class Empleado
{
    public:
        Empleado();// metodo constructor 
        virtual ~Empleado();// metodo destructor 

        // se definen los metodos publicos para calcular el salario bruto,
        // retencion en la fuente y el salario neto. 
        int salarioBruto();
        int retencionEnFuente();
        double salarioNeto();
    protected:

    private:
        // se definen los atributos privados 
        int h_trabajadas;// horas trabajadas por el empleado de tipo entero 
        int v_hora;// valor de la hora de tipo entero 
        double r_fuente;// retención en la fuente de tipo double 
};

#endif // EMPLEADO_H 
     

#include "Empleado.h"

// se le asignan los siguientes valores al constructor de la clase Empleado 
Empleado::Empleado()
{
    h_trabajadas = 48;// numero de horas trabajadas (48) 
    v_hora = 5000;// valor de la hora (5000) 
    r_fuente = 0.125;// porcentaje de la retención en la fuente (12.5%) 
}

Empleado::~Empleado()
{
    //dtor 
}

// implementacion del metodo salarioBruto() 
int Empleado::salarioBruto()
{
    // el salario bruto es igual al número de horas trabajadas por el valor de la hora. 
    return h_trabajadas * v_hora;// se retorna el resultado 
}

// implementacion del metodo retencionEnFuente() 
int Empleado::retencionEnFuente()
{
    // la retención en la fuente es igual al salario bruto por el porcentaje
    // de retención en la fuente. 
    return salarioBruto() * r_fuente;// se retorna el resultado 
}


// implementacion del metodo salarioNeto() 
double Empleado::salarioNeto()
{
    // el salario neto es igual al salario bruto menos la retencion en la fuente 
    return salarioBruto() - retencionEnFuente();// se retorna el resultado 
}
     

// se importa paquete "JOptionPane" para dibujar un cuadro de dialogo en pantalla
// que muestre información o para llenar información. 
import javax.swing.JOptionPane; 

public class Main
{
    public static void main(String[] args)
    {
        // se crea un objeto de la clase Empleado (Instanciaciación) 
        Empleado obj = new Empleado();
       // se muestra un mensaje de dialogo con el salario bruto. 
        JOptionPane.showMessageDialog(null, "Salario bruto: $" + obj.salarioBruto());
        // se muestra un mensaje de dialogo con la retención en la fuente. 
        JOptionPane.showMessageDialog(null, "Retención en la Fuente: $" + obj.retencionEnFuente());
        // se muestra un mensaje de dialogo con el salario neto. 
        JOptionPane.showMessageDialog(null, "Salario Neto: $" + obj.salarioNeto());
    }

}
     

public class Empleado
{
    // se definen los atributos privados 
    private int h_trabajadas;// horas trabajadas por el empleado de tipo entero 
    private int v_hora;// valor de la hora de tipo entero 
    private double r_fuente;// retención en la fuente de tipo double 
    
    // Se le asignan los siguientes valores al constructor de la clase Empleado 
    public Empleado()
    {
        h_trabajadas = 48;// numero de horas trabajadas (48) 
        v_hora = 5000;// valor de la hora (5000) 
        r_fuente = 0.125;// porcentaje de la retención en la fuente (12.5%) 
    }
    
    // implementacion del metodo salarioBruto() 
    public int salarioBruto()
    {
        // el salario bruto es igual al número de horas trabajadas por el
        //valor de la hora. 
        return h_trabajadas * v_hora;// se retorna el resultado 
    }
    
    // implementacion del metodo retencionEnFuente() 
    public double retencionEnFuente()
    {
        // la retención en la fuente es igual al salario bruto por el porcentaje
        //de retención en la fuente. 
        return salarioBruto() * r_fuente; // se retorna el resultado
    }

    // implementacion del metodo salarioNeto() 
    public double salarioNeto()
    {
        // el salario neto es igual al salario bruto menos la retencion en la fuente 
        return salarioBruto() - retencionEnFuente(); // se retorna el resultado 
    }
}