rendered paste body#include <iostream>
#include <string>
// Proyecto Final Programacion II
// Nomina
// Realizado Por:
// Ana Maria Bermudez
// Miguel A. Alvarado V.
using namespace std;
class Empleado {
unsigned long int cedula;
string nombre;
string cargo;
public:
Empleado() {cedula = 0;} //constructor
void Cedula() {
if(cedula == 0)
cout << "No ha ingresado una cedula" << endl;
else
cout << cedula;
}
void setCedula() {
cout << "Ingrese el Numero de Cedula: ";
cin >> cedula;
}
void Nombre() {
if(nombre == "")
cout << "No ha ingresado un nombre." << endl;
else
cout << nombre << endl;
}
void setNombre() {
cout << "Ingrese el Nombre: ";
getline(cin,nombre);
}
void Cargo() {
if(cargo == "")
cout << "No ha ingresado un cargo." << endl;
else
cout << cargo;
}
void setCargo() {
cout << "Ingrese el Cargo: ";
cin >> cargo;
}
virtual void Pago() {}
};
class Obrero : public Empleado {
int diasTrabajados;
unsigned long int salarioDiario;
float seguroSocial;
public:
Obrero() : diasTrabajados(0), salarioDiario(0), seguroSocial(0) {}
void setDiasTrabajados() {
cout << "Ingrese los dias trabajados: ";
cin >> diasTrabajados;
}
void setSalarioDiario() {
cout << "Ingrese el Salario Diario: ";
cin >> salarioDiario;
}
void Pago();
};
void Obrero::Pago() {
unsigned long int basico = diasTrabajados * salarioDiario;
float seguro = (4 * basico)/100;
float neto = basico - seguro;
cout << "Empleado: "; Empleado::Nombre();
cout << "Cargo: "; Empleado::Cargo();
cout << endl;
cout << "Dias Trabajados: " << diasTrabajados << " dias" << endl;
cout << "Salario Diario: Bs.F." << salarioDiario << endl;
cout << "Sueldo Básico: Bs.F. " << basico << endl;
cout << "Seguro (4% Basico) : Bs.F. " << seguro << endl;
cout << "Sueldo Neto: Bs.F. " << neto << endl;
}
class Ejecutivo : public Empleado {
unsigned long int sueldoBasico;
float impuesto;
public:
Ejecutivo() : sueldoBasico(0), impuesto(3.5) {}
void setSueldoBasico() {
cout << "Ingrese el sueldo Basico: ";
cin >> sueldoBasico;
}
void Pago();
};
void Ejecutivo::Pago() { // Es mas pesada como inline, mejor afuera
unsigned long int basico = sueldoBasico / 2;
impuesto = (3 * basico) / 100;
float neto = basico - impuesto;
cout << "Empleado: "; Empleado::Nombre();
cout << "Cargo: "; Empleado::Cargo();
cout << endl;
cout << "Sueldo Básico: Bs.F. " << basico << endl;
cout << "Impuesto (3.5% Basico) : Bs.F. " << impuesto << endl;
cout << "Sueldo Neto: Bs.F. " << neto << endl;
};
int main() {
Obrero A;
Ejecutivo B;
cout << "Obrero: " << endl;
A.setNombre();
A.setCedula();
A.setCargo();
A.setDiasTrabajados();
A.setSalarioDiario();
cout << endl;
cout << "--------------------------------------------------------------------------------";
cout << endl << endl << endl;
A.Pago();
B.setNombre();
B.setCedula();
B.setCargo();
B.setSueldoBasico();
cout << endl;
cout << "--------------------------------------------------------------------------------";
cout << endl << endl << endl;
}