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