0 votos
por (20 puntos) en C/C++
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 &amp;,const Empleado &amp;);

};

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 &amp; p,const Empleado &amp; 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);

}


Por favor, accede o regístrate para responder a esta pregunta.

Preguntas relacionadas

0 votos
1 respuesta
0 votos
11 respuestas
preguntado por xaviml (220 puntos) Ene 28, 2016 en C/C++
0 votos
1 respuesta
preguntado por Gustavo (20 puntos) Ene 28, 2016 en Java
0 votos
0 respuestas
preguntado por alexjjj (20 puntos) Dic 4, 2022 en C/C++
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...