Dudas de Programacion » Lenguajes de Proposito General » C++

Fallo al hacer el ejercicio

(1 post)
  • Started 1 year ago by juni85

Tags:

No tags yet.

  1. 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<<"\n\nVector ordenado\n\n"<<endl;
    le.ordenar();
    le.listar();

    le.ordenarInv();
    cout<<"\n\nVector ordenado al reves\n\n"<<endl;
    le.listar();

    return (0);
    }

    Posted 1 year ago #



Reply

You must log in to post.

934 posts in 393 topics over 36 months by 348 of 784 members. Latest: kardelen133, hugoivand, danymota19

Acerca de...

Dudas de Programación es una Web, dentro del proyecto aulambra.com que nace con la idea de propocionar un foro de consultas sobre diferentes temas de programación. Orientado a ayudar a los internautas hispano-hablantes en Internet.

Ir al Blog de Linea de Código

Otras Webs