viernes, 11 de septiembre de 2015

Ejercicio 3 modificado Clases y Constructores

Modifique el programa escrito para el ejercicio b para incluir un menu que ofrezca al usuario las siguientes opciones:
1.-Agregar un empleado
2.-Modificar los datos del empleado
3.-Eliminar a un empleado
4.Salir del Menu
En respuesta a una opción el programa deberá iniciar la acción apropiada para implementar la opción.
Problema propuesto del libro C++ para ingeniería y ciencias Gary J. Bronson ejercicio 9.3 problema 8.c pag. 533.


Codificación CodeBlocks


#include <iostream>
#include <iomanip>
using namespace std;
class Empleado
{
private:
    int idEmpleado;
    double tasaSalarial;
    int horasTrabajadas;
public:
    Empleado(int,double,int);
    Empleado();
    void estDatosEmpleado(int, double,int);
    void estId(int);
    void estTasaSal(double);
    void estHorasTrab(int);
    int obtenerId();
    double obtenerTasaSal();
    int obtenerHorasTrab();
    void mostrarDatosEmpleado();
    void mdificarDatosEmp();
};
Empleado::Empleado(int id,double tSalarial,int horas)
{
    idEmpleado=id;
    tasaSalarial=tSalarial;
    horasTrabajadas=horas;
}
Empleado::Empleado()
{
    idEmpleado=0;
    tasaSalarial=0;
    horasTrabajadas=0;
}
void Empleado::estDatosEmpleado(int id, double tSalarial,int horas)
{
    idEmpleado=id;
    tasaSalarial=tSalarial;
    horasTrabajadas=horas;
}
void Empleado::estId(int id)
{
 idEmpleado=id;
}
void Empleado::estTasaSal(double tSalarial)
{
     tasaSalarial=tSalarial;
}
void Empleado::estHorasTrab(int horas)
{
    horasTrabajadas=horas;
}
int Empleado::obtenerId()
{
    return idEmpleado;
}
double Empleado::obtenerTasaSal()
{
    return tasaSalarial;
}
int Empleado::obtenerHorasTrab()
{
    return horasTrabajadas;
}
void Empleado::mostrarDatosEmpleado()
{
     cout<<setw(25)<<" Id Empleado: "<<idEmpleado<<endl;
     cout<<setw(25)<<"Tasa Salarial: "<<tasaSalarial<<endl;
     cout<<setw(25)<<"Horas Trabajadas : "<<horasTrabajadas<<endl;
}
Empleado modificarDatosEmp(Empleado emp)
{
    int opc,id,horas;
    double ts;
    cout<<"1)id\n2)Tasa Salarial\n3)Horas Trabajadas\n4)Todos los datos";
    cout<<"Seleccione opcion: ";
    cin>>opc;
    switch(opc)
    {
    case 1: cout<<"introduce el nuevo ID de empleado: ? ";
            cin>>id;
            emp.estId(id);
            break;
    case 2: cout<<"Introduce la nueva Tasa Salarial : ? ";
            cin>>ts;
            emp.estTasaSal(ts);
            break;
    case 3:cout<<"Introduce las horas trabajadas: ? ";
           cin>>horas;
           emp.estHorasTrab(horas);
           break;
    case 4: cout<<"introduce los datos del empleado\n\n";
                    cout<<"Nuevo Id Empleado: ? ";
                    cin>>id;
                    cout<<"Nuevo Tasa Salarial : ? ";
                    cin>>ts;
                    cout<<"Nuevo Horas Trabajadas : ? ";
                    cin>>horas;
                    emp.estDatosEmpleado(id,ts,horas);
                    break;

    }
    return  emp;
}
int menu()
{
    int opc;
cout<<"\n\n1.-Agregar un empleado\n\n";
cout<<"\n\n2.-Modificar los datos del empleado\n\n";
cout<<"\n\n3.-Eliminar a un empleado\n\n";
cout<<"\n\n4.Salir del Menu\n\n";
cout<<"Seleccione la opcion: ";
cin>>opc;
return opc;
}
int buscarIdEmpleado(Empleado e[10],int Id,int n)
{
    int i=0,x=-1,bandera=0;
    while(i<n && bandera==0)
    {
        if(e[i].obtenerId()==Id)
        {
         bandera=1;
         x=i;
        }
        else
            i++;
    }
    return x;
}
int main()
{
    int id,horas,i=-1,opcion,ne=0,p;
    char sigue;
    double tasa;
    Empleado e1[10],e;
    do
    {
      opcion=menu();
      switch(opcion)
      {
          case 1:
                i++;
                cout<<"\n\nIntroduce Datos Empleado \n\n";
                cout<<"\nIdentificacion Empleado  : ? ";
                cin>>id;
                cout<<"Tasa Salarial: ? ";
                cin>>tasa;
                cout<<"Horas Trabajadas: ? ";
                cin>>horas;
                e1[i].estDatosEmpleado(id,tasa,horas);
                ne++;
                break;
          case 2: cout<<"\n\nmodificacion de datos empleado\n\n";
                  cout<<"Introduzca id empleado : ? ";
                   cin>>id;
                    p=buscarIdEmpleado(e1,id,ne);
                   if(p!=-1)
                   {
                    e1[p].mostrarDatosEmpleado();
                    e1[p]=modificarDatosEmp(e1[p]);
                    cout<<"\n\nNuevo datos del empleado\n\n";
                    e1[p].mostrarDatosEmpleado();
                   }
                   else
                    cout<<"\n\nNo existe id empleado\n\n";
                    break;
          case 3:
               cout<<"\n\nEliminando un empleado\n\n";
               cout<<"Introduce el ID empleado a eliminar : ? ";
               cin>>id;
               p=buscarIdEmpleado(e1,id,ne);
               if(p!=-1)
                   {
                   e1[p].mostrarDatosEmpleado();
                   cout<<"Estas seguro que lo quieres eliminar (s/n): ? ";
                   cin>>sigue;
                   if(sigue=='s' || sigue=='S')
                   {
                   e1[p].estId(0);
                   e1[p].estTasaSal(0);
                   e1[p].estHorasTrab(0);
                    cout<<"\n\nDatos empleado Eliminado\n\n";
                   e1[p].mostrarDatosEmpleado();
                   }
                   }
                else
                    cout<<"No existe "<<id <<" de empleado "<<endl;
                break;
        case 4 : cout<<"\n\nSalida Programa\n\n";
                  break;
      }
    }
   while(opcion !=4);
    return 0;
}

No hay comentarios:

Publicar un comentario