// IG17 2004-05, II17 2005-06 // Empleados.cpp // 26-11-2004 #include using namespace std; #include "Empleados.h" //////////////////////////////////////////////////////////////////////////// // Empleado //////////////////////////////////////////////////////////////////////////// Empleado::Empleado(string n, float sb, float r) : nombre(n), sueldoBase(sb), retenciones(r) { } 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; } //////////////////////////////////////////////////////////////////////////// // 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; } //////////////////////////////////////////////////////////////////////////// // 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; }