Untitled

 avatar
unknown
plain_text
21 days ago
5.8 kB
3
Indexable
#include <iostream>
#include <locale.h>
#include <iomanip>
using namespace std;

class Empleado {
private:
    int ID_Empleado, HorasMax;
    float TasaSal;

public:
    Empleado(int = 0, float = 0.0, int = 0);
    void SetCambiar(float, int);
    void MostrarDatos();
    void IntroducirDatos();
    void modificarEmpleado();
    bool eliminarEmpleado(int id);
    int getId() const;
};

Empleado::Empleado(int ID, float TasaSala, int HorasMaxi) {
	
    ID_Empleado = ID;
    TasaSal = TasaSala;
    HorasMax = HorasMaxi;
}

void Empleado::IntroducirDatos() {
	
    cout << "Introduzca el ID del empleado: "; cin >> ID_Empleado;
    cout << "Introduzca la tasa salarial del empleado: "; cin >> TasaSal;
    cout << "Introduzca el n�mero m�ximo de horas que trabaja el empleado cada semana: "; cin >> HorasMax;
}

void Empleado::SetCambiar(float nuevaTasa, int nuevasHoras) {
	
    TasaSal = nuevaTasa;
    HorasMax = nuevasHoras;
}

void Empleado::MostrarDatos() {
	
    cout<<".----------------------------.\n"
        <<"|    Datos del empleado      |\n"
        <<".----------------------------.\n"
        <<"                              \n\n"
        <<"ID: " << ID_Empleado <<endl
    	<<"Tasa salarial: "<<fixed<<setprecision(2)<<TasaSal<<endl
    	<<"N�mero m�ximo de horas: " << HorasMax << endl;
}

void Empleado::modificarEmpleado() {
    float nuevaTasa;
    int nuevasHoras;
    cout << "Ingrese la nueva tasa salarial: "; cin >> nuevaTasa;
    cout << "Ingrese el nuevo n�mero de horas m�ximas: "; cin >> nuevasHoras;
    SetCambiar(nuevaTasa, nuevasHoras);
}

bool Empleado::eliminarEmpleado(int id) {
    if (getId() == id) {
        ID_Empleado = 0;
        TasaSal = 0.0;
        HorasMax = 0;
        return true;
    }
    return false;
}

int Empleado::getId() const {
    return ID_Empleado;
}

void mostrarDatosEmpleado(Empleado& empleado1, Empleado& empleado2, Empleado& empleado3) {
    int idMostrar;
    cout << "�De cu�l empleado est� interesado en ver sus datos? (1, 2 o 3): ";
    cin >> idMostrar;

    if (idMostrar == 1 && empleado1.getId() != 0) {
        empleado1.MostrarDatos();
    } else if (idMostrar == 2 && empleado2.getId() != 0) {
        empleado2.MostrarDatos();
    } else if (idMostrar == 3 && empleado3.getId() != 0) {
        empleado3.MostrarDatos();
    } else {
        cout << "Empleado no encontrado o vac�o.\n";
    }
}

int main() {
    setlocale(LC_CTYPE, "spanish");
    Empleado empleado1, empleado2, empleado3;
    int opcion;
    bool continuar = true;
    
    cout<< ".------------------------------------------------------------------------------.\n" 
    	<< "| �Bienvenido! Este programa le permite almacenar los datos de sus empleados   |\n"
    	<< "'------------------------------------------------------------------------------'\n"<< endl;

    while (continuar) {
        cout << ".------------------------------------------.\n"
             << "|                MEN�                      |\n"
             << "| Elija una opci�n dependiendo del n�mero  |\n"
             << ".------------------------------------------.\n"
             << "|[1]. Agregar empleado.                    |\n"
             << "|[2]. Modificar datos del empleado.        |\n"
             << "|[3]. Eliminar empleado.                   |\n"
             << "|[4]. Mostrar datos del empleado.          |\n"
             << "|[5]. Salir.                               |\n"
             << ".------------------------------------------.\n"
             << "                                            \n\n"
             << "         Ingrese su opci�n: ";
        cin>>opcion;

        switch (opcion) {
            case 1: {
                if (empleado1.getId() == 0) {
                    empleado1.IntroducirDatos();
                } else if (empleado2.getId() == 0) {
                    empleado2.IntroducirDatos();
                } else if (empleado3.getId() == 0) {
                    empleado3.IntroducirDatos();
                } else {
                    cout << "No se pueden agregar m�s empleados. L�mite alcanzado.\n";
                }
                break;
            }
            case 2: {
                int idModificar;
                cout << "Ingrese el ID del empleado a modificar: ";
                cin >> idModificar;
                if (empleado1.getId() != 0 && empleado1.getId() == idModificar) {
                    empleado1.modificarEmpleado();
                } else if (empleado2.getId() != 0 && empleado2.getId() == idModificar) {
                    empleado2.modificarEmpleado();
                } else if (empleado3.getId() != 0 && empleado3.getId() == idModificar) {
                    empleado3.modificarEmpleado();
                } else {
                    cout << "Empleado no encontrado.\n";
                }
                break;
            }
            case 3: {
                int idEliminar;
                cout << "Ingrese el ID del empleado a eliminar: ";
                cin >> idEliminar;
                if (empleado1.getId() != 0 && empleado1.eliminarEmpleado(idEliminar)) {
                } else if (empleado2.getId() != 0 && empleado2.eliminarEmpleado(idEliminar)) {
                } else if (empleado3.getId() != 0 && empleado3.eliminarEmpleado(idEliminar)) {
                } else {
                    cout << "Empleado no encontrado.\n";
                }
                break;
            }
            case 4: {
                mostrarDatosEmpleado(empleado1, empleado2, empleado3);
                break;
            }
            case 5:
                cout << "Saliendo del programa...\n";
                continuar = false;
                break;
            default:
                cout << "Opci�n no v�lida. Intente de nuevo.\n";
        }
    }

    return 0;
}

Editor is loading...
Leave a Comment