• Asignatura: Informática
  • Autor: golivaslopez124
  • hace 7 años

programa en c++
En una empresa automotriz se tienen 3 tipos de empleados: administrativos, mecanicos y vendedores.

En general, para todos los empleados se tiene los datos RFC (Registro Federal de Contribuyentes), el nombre, el departamento y el puesto.

En particular; para el empleado administrativo se tiene el dato sueldo mensual; para el mecánico se tiene el precio del trabajo, tantas veces como trabajos haya realizado; y para el vendedor se tiene el precio del auto, por cada auto que vendió.

El sueldo quincenal se calcula:

Para el administrativo, sueldo mensual entre 2.

Para el mecánico, el 4% del valor total.

Para el vendedor, el salario mínimo, mas el 2 porciento del valor de la venta realizada.


robertomayorga2016: tienes el programa compelto? necesito entregar el programa y no se nada de poo :c

Respuestas

Respuesta dada por: LeonardoDY
11

El programa en C++ puede resolverse mediante una clase genérica "empleado" y luego según la categoría de cada uno crear clases derivadas. Un miembro declarado como protected en la clase base es private en la clase derivada, las clases quedan:

class empleado{

   public:

           int empleado();

           void SetSueldoMinimo(int iSueldoMinimo) {sueldo_minimo=iSueldoMinimo};

   protected:

           int sueldo_minimo;

};

class admin: public empleado{

     public:

          int getSueldo(void) {return sueldo_minimo/2};

};

class mecanico: public empleado{

    public:

          mecanico(int iTrabajos, int iValorTrabajo){nTrabajos=iTrabajos; ValorTrabajo=iValorTrabajo};//Es el constructor de la clase

          int getSueldo(void) {return sueldo_minimo+0.04*nTrabajos*ValorTrabajo};

    private:

          int nTrabajos;

          int iValorTrabajo;

};

class vendedor: public empleado{

    public:

          vendedor (int valor_ventas){iValorVentas=valor_ventas};//Es el valor de todas las ventas realizadas, una mejora incluiría una lista enlazada donde se cargaría cada venta con su valor y luego sumaría todo.

           int getSueldo(void){return sueldo_minimo+0.02*iValorVentas},

    private:

           int iValorVentas;

};

Luego el programa principal instancia un objeto de cada clase por cada empleado de cada categoría y se inicializan sus valores:

int main(void)

{

         int sueldo_minimo, ventas, valor_reparacion, valor_ventas1, valor ventas2,..., cantidad_rep1, .......;

         admin admin1, admin2, ...;

//Rutina de ingreso de datos ya sea desde teclado o desde un archivo

         vendedor vendedor1(valor_ventas1), vendedor2(valor_ventas2), ...;

         mecanico mecanico1(cantidad_rep1, valor_reparación), mecanico2(, cantidad_rep2, valor_reparacion), ...;

         admin1.SetSueldoMinimo()=admin2.SetSueldoMinimo()=...=sueldo_minimo;//cargo el sueldo mínimo a todos los objetos,

     //muestro el resultado:

      cout<<sueldo administrativo<<admin1.getSueldo()<<endl;

      cout<<sueldo administrativo<<admin2.getSueldo()<<endl;

    ...

}

Preguntas similares