Acabo de hacer el siguiente ejercico y me gustaria cambiar el nombre a un Empleado,pero al introducirlo no me lo cambia, si me lo podeis corregir lo agradeceria. El jercico esta hecho con Netbeans
#include <stdlib.h>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Empleado{
public:
string nombre;
int edad;
public:
Empleado(string nom, int ed=18){
nombre=nom;
edad=ed;
}
Empleado(){
nombre=" ";
edad=18;
}
void set_Empleado(string nom, int ed=18){
nombre=nom;
edad=ed;
}
void set_nombre(string nom){
nombre=nom;
}
void set_edad(int ed){
edad=ed;
}
string get_nombre(){
return nombre;
}
int get_edad(){
return edad;
}
void mostrarEmpleado();
friend bool operator<(const Empleado &,const Empleado &);
};
Empleado leerEmpleado(){
string nombre;
int edad;
cout<<"INTRODUCIR EMPLEADO "<<endl;
cout<<" Nombre :"<<endl;
getline(cin,nombre);
cout<<" Edad :"<<endl;
cin>>edad;
char aux=getc(stdin);
Empleado * pa =new Empleado(nombre,edad);
return * pa;
}
void Empleado::mostrarEmpleado(){
cout<<"MOSTRAR TRABAJADOR "<<endl;
cout<<"Nombre : "<<nombre<<endl;
cout<<"Edad : "<<edad<<endl;
}
bool operator<(const Empleado & p,const Empleado & s){
return p.nombre<s.nombre;
}
class listaEmpleado{
public:
vector<Empleado >v;
void anadir1(Empleado e){
v.push_back(e);
}
void anadir2(string nom,int ed){
Empleado *e=new Empleado(nom,ed);
v.push_back(*e);
}
bool borrar(string n){
int i=0,u;
u=v.size();
bool borrado=false;
while(i<u){
if(v[i].nombre==n){
v[i]=v[u-1];
v.pop_back();
borrado=true;
}
i++;
}
return(!borrado);
}
int get_edad(string n){
int i=0;
while(i<v.size()){
if(v[i].nombre==n)return v[i].edad;
i++;
}
return -1;
}
void listar(){
int i=0,u;
u=v.size();
while(i<u){
v[i].mostrarEmpleado();
i++;
}
}
int BuscarEmpleado(string d){
int i=0,u;
u=v.size();
while(i<u){
if(v[i].nombre==d){
cout<<"encontrado"<<endl;
return (1);
}
i++;
}
cout<<"No encontrado"<<endl;
return -1;
}
void cambiar_nombre(){
string nom,nuevo;
Empleado pa;
int em;
cout<<"Introduce el nombre del empleado a cambiar "<<endl;
getline(cin,nom);
em=BuscarEmpleado(nom);
if(em==-1)cout<<"Nombre no valido "<<endl;
else{
cout<<"Introduce el nuevo nombre "<<endl;
getline(cin,nuevo);
pa.set_nombre(nuevo);
}
}
void ordenar(){
sort(v.begin(),v.end());
}
void ordenarInv(){
reverse(v.begin(),v.end());
}
void reset(){
v.clear();
}
};
int main() {
string nombre;
listaEmpleado le;
le.anadir2("Palomo",5);
le.anadir1(leerEmpleado());
le.anadir1(leerEmpleado());
le.anadir1(leerEmpleado());
cout<<"La edad de Palomo es "<<le.get_edad("Palomo")<<endl;
le.listar();
cout<<"Buscar Empleado"<<endl;
cout<<"Introduce nombre del empleado a buscar "<<endl;
getline(cin,nombre);
le.BuscarEmpleado(nombre);
cout<<"----"<<endl;
le.BuscarEmpleado("Palomo");
le.borrar("Palomo");
le.listar();
le.cambiar_nombre();
le.listar();
cout<<"FIN"<<endl;
cout<<"nnVector ordenadonn"<<endl;
le.ordenar();
le.listar();
le.ordenarInv();
cout<<"nnVector ordenado al revesnn"<<endl;
le.listar();
return (0);
}