#include #include // 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; }