// IG17 2004-05 // Empleados.cpp (version para Tema 3b) // 10-12-2004 #include using namespace std; #include "Empleados.h" //////////////////////////////////////////////////////////////////////////// // Empleado //////////////////////////////////////////////////////////////////////////// Empleado::Empleado(string n, float sb, float r) : nombre(n), sueldoBase(sb), retenciones(r) { } string Empleado::Nombre() const { return nombre; } void Empleado::Ver() const { cout << "Nombre: " << nombre << endl; cout << "Sueldo base: " << sueldoBase << " euros" << endl; cout << "Retenciones: " << retenciones << " %" << endl; } float Empleado::CalcularSueldo() const { return sueldoBase * (100-retenciones)/100; } void Empleado::CambiarRetenciones(float r) { retenciones = r; } Empleado * Empleado::Clonar() const { return new Empleado(*this); } //////////////////////////////////////////////////////////////////////////// // Comercial //////////////////////////////////////////////////////////////////////////// Comercial::Comercial(string n, float sb, float r, float c) : Empleado(n, sb, r), ventas(0), comision(c) { } void Comercial::SumarVentas(float v) { ventas +=v; } void Comercial::Ver() const { cout << "Tipo de empleado: comercial" << endl; Empleado::Ver(); cout << "Ventas: " << ventas << " euros" << endl; cout << "Comision por ventas: " << comision << " %" << endl; } float Comercial::CalcularSueldo() const { return Empleado::CalcularSueldo() + ventas * comision/100 * (100-retenciones)/100; } Empleado * Comercial::Clonar() const { return new Comercial(*this); } //////////////////////////////////////////////////////////////////////////// // Mecanico //////////////////////////////////////////////////////////////////////////// Mecanico::Mecanico(string n, float sb, float r, float sr) : Empleado(n, sb, r), sueldoReparacion(sr), reparaciones(0) { } void Mecanico::SumarReparaciones(int r) { reparaciones +=r; } void Mecanico::Ver() const { cout << "Tipo de empleado: mecanico" << endl; Empleado::Ver(); cout << "Reparaciones: " << reparaciones << endl; cout << "Sueldo por reparacion: " << sueldoReparacion << " euros" << endl; } float Mecanico::CalcularSueldo() const { return Empleado::CalcularSueldo() + reparaciones * sueldoReparacion * (100-retenciones)/100; } Empleado * Mecanico::Clonar() const { return new Mecanico(*this); }