Dev - C++ - Ejercicio de empleados con C++ en MVC

 
Vista:
sin imagen de perfil
Val: 11
Ha disminuido su posición en 12 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ejercicio de empleados con C++ en MVC

Publicado por Mario Perez (3 intervenciones) el 25/04/2020 03:57:13
En una empresa el departamento de Recursos Humanos manejan 3 tipos de empleados: administrativos, obreros y ventas.

Todos los empleados tienen nombre (string) y sueldo base (float); los empleados administrativos tienen una comisión que se calcula en base al 5% del sueldo base; los obreros tienen un bono del 1% del sueldo base por cada hora extra trabajada; y los vendedores generan una comisión de 3% si tienen mas de 10 ventas.

El programa corre una vez por cada empleado. Al terminar de llenar los datos me debe mostrar el nombre, el sueldo y los atributos según el tipo de empleado que está registrando.

PUNTAJE EXTRA: Si creas un programa donde me permita registrar empleados hasta que yo lo desee, tendrás 2 puntos netos extras en tu evaluación. Se te suman 3 puntos netos mas si además al finalizar el programa me muestra el Total de dinero (entre sueldo base y comisiones/bonos) que debe cancelar el departamento de recursos humanos para todos los empleados que yo registre.


Hola amigos, necesito de ayuda de gente que sabe mucho en programación básica para resolver este ejercicio. Abajo anexo los 12 archivos .cpp que tengo del ejercicio anterior que solo hay que modificarle unas cosas para que nos proporcione el resultado deseado, pero de verdad que no entiendo que hacer. Espero su ayuda, gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de Alfil
Val: 3.422
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ejercicio de empleados con C++ en MVC

Publicado por Alfil (937 intervenciones) el 25/04/2020 12:39:59
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include <iostream>
#include <string>
#include <vector>
#include <cctype> // toupper
 
using namespace std;
 
struct Empleado
{
	string nombre;
	float base;
	float comision;
};
 
char menu();
void imprimirInforme(const vector<Empleado>& v);
 
int main()
{
    Empleado e;
    vector<Empleado> v;
    char opcion;
    int temp;
 
    do {
        cout << "\nDatos del empleado " << v.size() + 1 << ":\n";
        cout << "Nombre: "; getline(cin, e.nombre);
        cout << "Salario base: "; cin >> e.base;
 
        opcion = menu();
 
        switch (opcion)
        {
            case '1':
                e.comision = e.base * 0.05;
                break;
 
            case '2':
                cout << "Horas extra realizadas: "; cin >> temp;
                e.comision = e.base * temp * 0.01;
                break;
 
            case '3':
                cout << "Ventas realizadas: "; cin >> temp;
                e.comision = temp > 10 ? e.base * 0.03 : 0;
                break;
 
            default:
                break;
        }
 
        cout << "\n\nNombre: " << e.nombre;
        cout << "\nSueldo base: " << e.base;
        cout << "\nTipo: ";
 
        if (opcion == '1')
            cout << "Administrativo"
                 << "\nComision 5% s/" << e.base << ": " << e.comision;
 
        else if (opcion == '2')
            cout << "Obrero"
                 << "\nHoras extra: " << temp
                 << "\nComision 1% * " << temp << " s/" << e.base << ": " << e.comision;
 
        else
        {
            cout << "Ventas"
                 << "\nVentas realizadas: " << temp;
 
            if (temp > 10)
                cout << "\nComision por mas de 10 ventas, 3% s/" << e.base << ": " << e.comision;
            else
                cout << "\nComision: Sin comision";
        }
 
        v.push_back(e);
 
        cout << "\n\nOtro empleado (S/n): "; cin >> opcion;
        opcion = toupper(opcion);
        cin.ignore(80, '\n');
 
    } while (opcion == 'S');
 
    imprimirInforme(v);
 
    return EXIT_SUCCESS;
}
 
char menu()
{
    char opcion;
 
    do {
        cout << "\n    TIPO DE EMPLEADO"
             << "\n========================="
             << "\n1.- Administrativo .. [1]"
             << "\n2.- Obrero .......... [2]"
             << "\n3.- Ventas .......... [3]"
             << "\n========================="
             << "\nOPCION (1-3): ";
 
        cin >> opcion;
 
    } while (opcion != '1' && opcion != '2' && opcion != '3');
 
    return opcion;
}
 
void imprimirInforme(const vector<Empleado>& v)
{
    float base = 0.0f, comisiones = 0.0f;
 
    for (size_t i = 0; i < v.size(); i++)
    {
       base += v[i].base;
       comisiones += v[i].comision;
    }
 
    cout << "\nInforme final:"
         << "\nTotal emplados: " << v.size()
         << "\nTotal sueldos base: " <<  base
         << "\nTotal comisiones: " << comisiones
         << "\nGran total: " << base + comisiones
         <<  endl;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 11
Ha disminuido su posición en 12 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ejercicio de empleados con C++ en MVC

Publicado por Mario (3 intervenciones) el 25/04/2020 16:25:08
Muchas gracias amigo! Has hecho un gran trabajo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar