Se tiene la siguiente información de un empleado:
· Código del empleado
· Nombres
· Número de horas trabajadas al mes
· Valor hora trabajada
· Porcentaje de retención en la fuente.
Haga un algoritmo que muestre: código, nombres, salario bruto y salario neto.
#include <iostream>
//Se incluye la clase Empleado para despues llamar a sus metodos
#include "Empleado.h"
using namespace std;
//se define e implementa el metodo llenarDatos(), para almacenar la información del empelado
//y luego llamarla desde el main.
void llenarDatos(Empleado* obj)
{
int c, h_t, v_h;//se definen las variables c(codigo), h_t(horas trabajadas)
//v_h(valor hora) de tipo entero
string n;//se define la variable n(nombre) de tipo string
double p_rt;//se define la variable p_rt(porcentaje retencion fuente) de tipo float.
//se pide el codigo
cout << "Digite codigo del empleado" << endl;
cin >> c;//se guarda el codigo en "c";
obj->setCodigo(c);//se encapsula el codigo(c)
//se pide el nombre
cout << "Digite nombre del empleado" << endl;
cin >> n;//se guarda el nombre en "n";
obj->setNombre(n);//se encapsula el nombre(n)
//se pide las horas trabajadas
cout << "Digite las horas trabajadas del empleado" << endl;
cin >> h_t;//se guarda las horas trabajadas en "h_t"
obj->setHorasTrabajadas(h_t);//se encapsula las horas trabajadas(h_t)
//se pide el valor de la hora
cout << "Digite el valor de la hora" << endl;
cin >> v_h;//se guarda el valor de la hora "v_h"
obj->setValorHora(v_h);//se encapsula el valor de la hora(v_h)
//se pide el porcentaje de retencion de fuente
cout << "Digite el porcentaje de retencion de fuente" << endl;
cin >> p_rt;//se el porcentaje de retencion de fuente "p_rt"
obj->setPorcentajeRetencionFuente(p_rt);//se encapsula el valor del porcentaje(p_rt)
}
int main(void)
{
//Se crea un objeto de la clase Empleado (Instanciaciación)
Empleado *obj = new Empleado();
//le pasaremos un objeto de la clase Empleado al metodo llenarDatos()
//para poder llamar a sus metodos, y no tener que instanciar ya que si
//instanciamos en el metodo llenarDatos el constructor volvera a asignar
//atributos por defecto
llenarDatos(obj);
//Se muestra el nombre del empleado
cout << "Nombre del empleado: " << obj->getCodigo() << endl;
//Se muestra el codigo del empleado
cout << "Codigo: " << obj->getNombre() << endl;
//Se muestra el salario bruto
cout << "Salario Bruto: $" << obj->salarioBruto() << endl;
//Se muestra el salario neto
cout << "Salario Neto: $" << obj->salarioNeto() << endl;
}
#ifndef EMPLEADO_H
#define EMPLEADO_H
#include
using namespace std;
class Empleado
{
public:
Empleado();
virtual ~Empleado();
//Se definen los metodos publicos:
int salarioBruto();//salarioBruto() de tipo entero
int retencionEnFuente();//retencionEnFuente() de tipo entero
int salarioNeto();//salarioNeto() de tipo entero
//Se definen los metodos Setters y Getters de los atributos privados
//codigo, nombre, horas_t, valor_h, porcentaje_rt.
void setCodigo(int val);
int getCodigo();
void setNombre(string val);
string getNombre();
void setHorasTrabajadas(int val);
int getHorasTrabajadas();
void setValorHora(int val);
int getValorHora();
void setPorcentajeRetencionFuente(double val);
double getPorcentajeRetencionFuente();
protected:
private:
//se definen los atributos privados:
int codigo;//codigo de tipo entero
string nombre;//nombre de tipo string
int horas_t;//horas_t de tipo entero
int valor_h;//valor_t de tipo entero
double porcentaje_rt;//porcentaje_rt de tipo double
};
#endif // EMPLEADO_H
#include "Empleado.h"
Empleado::Empleado()
{
//se asignan los siguiente valores por defecto al constructor de la clase
codigo = 0;
nombre = "";
horas_t = 0;
valor_h = 0;
porcentaje_rt = 0;
}
Empleado::~Empleado()
{
//dtor
}
//Implementacion del metodo salarioBruto():
int Empleado::salarioBruto()
{
//para calcular el salario bruto, se debe multiplicar las horas
//trabajadas por el valor de la hora
return horas_t * valor_h;
}
//Implementacion del metodo retencionEnFuente()
int Empleado::retencionEnFuente()
{
//definiremos una variable para convertir el porcentaje a decimal
//para poder realizar el calculo de porcentaje...
float convertir_decimal;
//el porcentaje se dividira entre 100 y el resultado sera un decimal
convertir_decimal = porcentaje_rt/100;
//La retención en la fuente es igual al salario bruto por el porcentaje
//de retención en la fuente.
return salarioBruto() * convertir_decimal;//se retorna el resultado
}
//Implementacion del metodo salarioNeto():
int Empleado::salarioNeto()
{
//El salario neto es el salario bruto menos la retencion en fuente.
return salarioBruto() - retencionEnFuente();
}
//Implementacion de los Metodos Setters y Getters de los atributos:
//codigo, nombre, horas_t, valor_h, poercentaje_rt.
void Empleado::setCodigo(int val)
{
codigo = val;
}
int Empleado::getCodigo()
{
return codigo;
}
void Empleado::setNombre(string val)
{
nombre = val;
}
string Empleado::getNombre()
{
return nombre;
}
void Empleado::setHorasTrabajadas(int val)
{
horas_t = val;
}
int Empleado::getHorasTrabajadas()
{
return horas_t;
}
void Empleado::setValorHora(int val)
{
valor_h = val;
}
int Empleado::getValorHora()
{
return valor_h;
}
void Empleado::setPorcentajeRetencionFuente(double val)
{
porcentaje_rt = val;
}
double Empleado::getPorcentajeRetencionFuente()
{
return porcentaje_rt;
}
//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
{
//se define e implementa el metodo llenarDatos(), para almacenar la información del empelado
//y luego llamarla desde el main.
public static void llenarDatos(Empleado obj)
{
int c, h_t, v_h;//se definen las variables c(codigo), h_t(horas trabajadas)
//v_h(valor hora) de tipo entero
String n;//se define la variable n(nombre) de tipo string
double p_rt;//se define la variable p_rt(porcentaje retencion fuente) de tipo float.
//se pide el codigo y se guarda el codigo en "c";
c = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite codigo del empleado"));
obj.setCodigo(c);//se encapsula el codigo(c)
//se pide el nombre y se guarda el nombre en "n";
n = JOptionPane.showInputDialog(null,"Digite nombre del empleado");
obj.setNombre(n);//se encapsula el nombre(n)
//se pide las horas trabajadas y se guarda las horas trabajadas en "h_t"
h_t = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite las horas trabajadas del empleado"));
obj.setHorasTrabajadas(h_t);//se encapsula las horas trabajadas(h_t)
//se pide el valor de la hora y se guarda el valor de la hora "v_h"
v_h = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite el valor de la hora"));
obj.setValorHora(v_h);//se encapsula el valor de la hora(v_h)
//se pide el porcentaje de retencion de fuente y se guarda el porcentaje de retencion de fuente "p_rt"
p_rt = Double.parseDouble(JOptionPane.showInputDialog(null,"Digite el porcentaje de retencion de fuente"));
obj.setPorcentajeRetencionFuente(p_rt);//se encapsula el valor del porcentaje(p_rt)
}
public static void main(String[] args)
{
//Se crea un objeto de la clase Empleado (Instanciaciación)
Empleado obj = new Empleado();
//le pasaremos un objeto de la clase Empleado al metodo llenarDatos()
//para poder llamar a sus metodos, y no tener que instanciar ya que si
//instanciamos en el metodo llenarDatos el constructor volvera a asignar
//atributos por defecto
llenarDatos(obj);
//Se muestra el nombre del empleado
JOptionPane.showMessageDialog(null, "Nombre del empleado: " + obj.getCodigo());
//Se muestra el codigo del empleado
JOptionPane.showMessageDialog(null, "Codigo: " + obj.getNombre());
//Se muestra el salario bruto
JOptionPane.showMessageDialog(null, "Salario Bruto: $" + obj.salarioBruto());
//Se muestra el salario neto
JOptionPane.showMessageDialog(null, "Salario Neto: $" + obj.salarioNeto());
}
}
public class Empleado
{
//se definen los atributos privados:
private int codigo;//codigo de tipo entero
private String nombre;//nombre de tipo string
private int horas_t;//horas_t de tipo entero
private int valor_h;//valor_h de tipo entero
private double porcentaje_rt;//porcentaje_rt de tipo double
public Empleado()
{
//se asignan los siguiente valores por defecto al constructor de la clase
codigo = 0;
nombre = "";
horas_t = 0;
valor_h = 0;
porcentaje_rt = 0;
}
//Implementacion del metodo salarioBruto():
public double salarioBruto()
{
//para calcular el salario bruto, se debe multiplicar las horas
//trabajadas por el valor de la hora
return horas_t * valor_h;
}
//Implementacion del metodo retencionEnFuente()
public double retencionEnFuente()
{
//definiremos una variable para convertir el porcentaje a decimal
//para poder realizar el calculo de porcentaje...
double convertir_decimal;
//el porcentaje se dividira entre 100 y el resultado sera un decimal
convertir_decimal = porcentaje_rt/100;
//La retención en la fuente es igual al salario bruto por el porcentaje
//de retención en la fuente.
return salarioBruto() * convertir_decimal;//se retorna el resultado
}
//Implementacion del metodo salarioNeto():
public double salarioNeto()
{
//El salario neto es el salario bruto menos la retencion en fuente.
return salarioBruto() - retencionEnFuente();
}
//Implementacion de los Metodos Setters y Getters de los atributos:
//codigo, nombre, horas_t, valor_h, poercentaje_rt.
public void setCodigo(int val)
{
codigo = val;
}
public int getCodigo()
{
return codigo;
}
public void setNombre(String val)
{
nombre = val;
}
public String getNombre()
{
return nombre;
}
public void setHorasTrabajadas(int val)
{
horas_t = val;
}
public int getHorasTrabajadas()
{
return horas_t;
}
public void setValorHora(int val)
{
valor_h = val;
}
public int getValorHora()
{
return valor_h;
}
public void setPorcentajeRetencionFuente(double val)
{
porcentaje_rt = val;
}
public double getPorcentajeRetencionFuente()
{
return porcentaje_rt;
}
}