CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 8 of 8
  1. #1
    Join Date
    Oct 2011
    Posts
    2

    [RESOLVED] help to convert a project from vectors to lists!!!!

    I NEED TO CONVERT THIS CODE TO USE LISTS INSTEAD OF VECTORS IT'S URGENT!!! SOMEONE HELP ME!!! IT'S A CHALLENGE!!!
    Code:
    ESTUDIANTE.CPP
    ---------------
    
    
    #include "Estudiante.h"
    
    Estudiante::Estudiante()
    {
         idEstudiante = new string;
         edad= new int;
         nombre= new string();
         direccion="JAJAJAJAJA";
         email= new string();
         carrera=new string();
         promedio=new float;
    
    }
    
    Estudiante::~Estudiante()
    {
    
    }
    
    Estudiante::Estudiante(string *idEstudiante, int *edad, string *nombre, string direccion, string *email, string *carrera, float *promedio){
    
             this->idEstudiante=idEstudiante;
             this->edad=edad;
             this->nombre=nombre;
             this->direccion=direccion;
             this->email=email;
             this->carrera=carrera;
             this->promedio=promedio;
    
    }
    
    
    //Metodos Set...
    
            void Estudiante::setIdEstudiante(string *idEstudiante){
    
                 this->idEstudiante=idEstudiante;
            }
    
            void Estudiante::setEdad(int *edad){
    
                this->edad=edad;
            }
    
            void Estudiante::setNombre(string *nombre){
    
                this->nombre=nombre;
            }
            void Estudiante::setDireccion(string direccion){
    
                this->direccion=direccion;
            }
            void Estudiante::setEmail(string *email){
    
                this->email=email;
            }
            void Estudiante::setCarrera(string *carrera){
    
                this->carrera=carrera;
            }
            void Estudiante::setPromedioPon(float *promedio){
    
                this->promedio=promedio;
            }
    
    
    // Metodos get...
            string Estudiante::getIdEstudiante(){
    
                return *idEstudiante;
            }
            int Estudiante::getEdad(){
    
                return *edad;
    
            }
            string Estudiante::getNombre(){
    
                return *nombre;
            }
            string Estudiante::getDireccion(){
    
                 return direccion;
            }
    
            string Estudiante::getEmail(){
    
                return *email;
    
            }
    
            string Estudiante::getCarrera(){
    
                return *carrera;
            }
            float Estudiante::getPromedioPon(){
    
                return *promedio;
            }
    
        //Metodo toString..
            string Estudiante::toString(){
    
               stringstream e;
               e<<"El ID es ";
               e<<endl;
               e<<*idEstudiante;
               e<<endl;
               e<<"El nombre es ";
               e<<endl;
               e<<*nombre;
               e<<endl;
               e<<"La edad es ";
               e<<endl;
               e<<*edad;
               e<<endl;
               e<<"La direccion es ";
               e<<endl;
               e<<direccion;
               e<<endl;
               e<<"El email es ";
               e<<endl;
               e<<*email;
               e<<endl;
               e<<"La carrera es ";
               e<<endl;
               e<<*carrera;
               e<<endl;
               e<<"El promedio ponderado es ";
               e<<endl;
               e<<*promedio;
               e<<endl;
               e<<"---------------------"<<endl;
    
               return e.str();
    
            }
    
    
    
    ESTUDIANTE.H
    -----------------
    
    
    
    #ifndef ESTUDIANTE_H
    #define ESTUDIANTE_H
    #include <iostream>
    #include <string>
    #include "sstream"
    #include <stdio.h>
    #include <stdlib.h>
    using namespace std;
    
    
    class Estudiante
    {
        public:
            Estudiante();
            Estudiante(string *id, int *edad, string *nombre, string direccion, string *email, string *carrera, float *promedio);
            virtual ~Estudiante();
    
            void setIdEstudiante(string *id);
            void setEdad(int *edad);
            void setNombre(string *nombre);
            void setDireccion(string direccion);
            void setEmail(string *email);
            void setCarrera(string *carrera);
            void setPromedioPon(float *promedio);
    
            string getIdEstudiante();
            int getEdad();
            string getNombre();
            string getDireccion();
            string getEmail();
            string getCarrera();
            float getPromedioPon();
    
            string toString();
    
    
        private:
          string *idEstudiante;
          int *edad;
          string *nombre;
          string direccion;
          string *email;
          string *carrera;
          float *promedio;
    };
    
    #endif // ESTUDIANTE_H
    
    
    
    ADMINESTUDIANTE.CPP
    -----------------------------
    
    #include "adminestudiante.h"
    
    AdminEstudiante::AdminEstudiante()
    {
    
    }
    
    AdminEstudiante::~AdminEstudiante()
    {
    
    }
    
    AdminEstudiante::AdminEstudiante(int n)
    {
      this->n=n;
      losEstudiantes=new Estudiante *[n];
      for(int i=0;i<n;i++)
        losEstudiantes[i]=new Estudiante();
        posE=0;
    
    }
    
    bool AdminEstudiante::InserEstudiante(Estudiante *e){
    
        if(posE<n){
           losEstudiantes[posE]=e;
           posE++;
           return true;
        }
        else
           return false;
    
    }
    
    int AdminEstudiante::buscarEstudiante(string id){
        int pos=-1;
        for(int i=0;i<n;i++){
         if((losEstudiantes[i]->getIdEstudiante(). compare(id)==0)){
            pos = i;}
        }
        return (pos);
    }
    
    Estudiante *AdminEstudiante::modificarEstudiante(int posE){
    
        return (losEstudiantes[posE]);
    }
    
    void AdminEstudiante::eliminarEstudiante(int pos){
         for (int i=pos; i<n-1;i++){
             losEstudiantes[i]=losEstudiantes[i+1];
             }
        this->posE--;
    
    }
    
    string AdminEstudiante::listarEstudiante(int i){
    
        return losEstudiantes[i]->toString();
    }
    
    
    
    
    ADMIN ESTUDIANTE.H
    
    ------------------------
    
    #ifndef ADMINESTUDIANTE_H
    #define ADMINESTUDIANTE_H
    #include "Estudiante.h"
    #include <iostream>
    #include <string>
    #include "sstream"
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    using namespace std;
    
    class AdminEstudiante
    {
        public:
            AdminEstudiante();
            virtual ~AdminEstudiante();
            AdminEstudiante(int);
            bool InserEstudiante(Estudiante *e);
            int buscarEstudiante(string id);
            Estudiante *modificarEstudiante(int posE);
            void eliminarEstudiante(int posE);
            string listarEstudiante(int i);
            int getPosE();
            //int getN(){return this->n;};
            void setPosE(int);
            int posE;
    
    
        private:
        int n;
    
        Estudiante **losEstudiantes;
    };
    
    #endif // ADMINESTUDIANTE_H
    
    
    
    
    MAIN.CPP
    --------------
    
    #include "Estudiante.h"
    #include "Autor.h"
    #include "Libro.h"
    #include "adminestudiante.h"
    #include "adminautor.h"
    #include "adminlibro.h"
    
    int main()
    {
      int n=20;
      int o=20;
      int p=20;
      AdminEstudiante *listaEstudiante=new AdminEstudiante(n);
      AdminAutor *listaAutor=new AdminAutor(o);
      AdminLibro *listaLibro=new AdminLibro(p);
    
      //menu para preg al administrador que desea mantener
    
      int opcBiblio=0;
      cout<<"Administrador Basico de una Biblioteca"<<endl<<endl;
      cout<<"Que desea administrar?"<<endl;
      cout<<"1. Estudiantes"<<endl;
      cout<<"2. Autores"<<endl;
      cout<<"3. Libros"<<endl;
      cout<<"Digite una opcion: 1-3"<<endl;
      cin>>opcBiblio;
    
    
    system("cls");
    //Menu de opciones de mantenimiento
    
    for(;;){//for infinito
        switch(opcBiblio){
    
    //switch estudiante
          case 1:{
                  system("cls");
                  int opc=0;
                   cout<<"Administrador de Estudiantes"<<endl;
                   cout<<"1. Insertar un Estudiante"<<endl;
                   cout<<"2. Modificar un Estudiante"<<endl;
                   cout<<"3. Elimnar un Estudiante"<<endl;
                   cout<<"4. Consultar Estudiantes"<<endl;
                   cout<<"5. Listar Estudiantes"<<endl;
                   cout<<"6. Salir del administrador"<<endl;
                   cout<<"Digite una opcion: 1-6"<<endl;
                   cin>>opc;
    
             int estado=0;
              while(estado==0){
                switch(opc){
    
          case 1:{//metodo insertar
    
              //Variables para pedir e insertar el nuevo estudiante
    
              system("cls");
              string *idEstudiante = new string;
              int *edad= new int;
              string *nombre= new string();
              string direccion="";
              string *email= new string();
              string *carrera=new string();
              float *promedioPon=new float;
    
    
            cout<<"Digite el nombre del nuevo estudiante: ";
             cin>>*nombre;
            cout<<endl;
            cout<<"Digite el id del estudiante: ";
             cin>>*idEstudiante;
            cout<<endl;
            cout<<"Digite la edad del estudiante: ";
             cin>>*edad;
            cout<<endl;
            cout<<"Digite la direccion del estudiante: ";
             cin>>direccion;
            cout<<endl;
            cout<<"Digite el email del estudiante: ";
             cin>>*email;
            cout<<endl;
            cout<<"Digite la carrera que cursa el estudiante: ";
             cin>>*carrera;
            cout<<endl;
            cout<<"Digite el promedio ponderado del estudiante: ";
             cin>>*promedioPon;
            cout<<endl;
    
            Estudiante *e=new Estudiante(idEstudiante,edad,nombre,direccion,email,carrera,promedioPon);//Estudiante sobre cargado con las variable de arriba
    
            system("cls"); //limpiar valores ingresados para el sobrecargado
            if(listaEstudiante->InserEstudiante(e)==true)
               cout<<"Estudiante insertado correctamente "<<endl;
            else
            cout<<"No se pudo insertar el nuevo estudiante "<<endl;
    
            cout<<"Desea continuar insertando estudiantes?"<<endl;
            cout<<"Digite 0 (cero) para Permanecer "<<endl;
            cout<<"Digite 1 para Abandonar "<<endl;
            cin>>estado;//para salir al while
    
           break;
          }
    
          case 2:{//metodo modificar
    
              system("cls");
              string IdEstudiante;
              cout<<"Dijite el Id del estudiante que desea modificar "<<endl;
              cin>>IdEstudiante;
              int posE=listaEstudiante->buscarEstudiante(IdEstudiante);
    
         system("cls");
         if(posE==-1)
                 cout<<"No se encuentra el estudiante "<<endl;
         else{
            cout<<"Estudiante encontrado; "<<endl<<endl;
    
            string *nombre=new string;
            cout<<"Digite el nuevo nombre del estudiante "<<endl;
            cin>>*nombre;
            listaEstudiante->modificarEstudiante(posE)->setNombre(nombre);
    
            string *carrera=new string;
            cout<<"Digite la nueva carrera del estudiante";
            cin>>*carrera;
            listaEstudiante->modificarEstudiante(posE)->setCarrera(carrera);
    
            string *email=new string;
            cout<<"Digite el nuevo email "<<endl;
            cin>>*email;
            listaEstudiante->modificarEstudiante(posE)->setEmail(email);
    
            int *edad=new int;
            cout<<"Digite la nueva edad "<<endl;
            cin>>*edad;
            listaEstudiante->modificarEstudiante(posE)->setEdad(edad);
    
            string direccion="";
            cout<<"Digite la nueva direccion del estudiante "<<endl;
            cin>>direccion;
            listaEstudiante->modificarEstudiante(posE)->setDireccion(direccion);
    
            }
    
            system("cls"); //Para limpiar la modificacion
            cout<<"Desea continuar modificando estudiantes?"<<endl;
            cout<<"Digite 0 (cero) para Permanecer "<<endl;
            cout<<"Digite 1 para Abandonar "<<endl;
            cin>>estado;//para salir al while
    
           break;
          }
          case 3:{//metodo eliminar
    
              system("cls");
              string IdEstudiante;
              cout<<"Dijite el ID del estudiante que desea eliminar "<<endl<<endl;
              cin>>IdEstudiante;
              int posE=listaEstudiante->buscarEstudiante(IdEstudiante);
    
           if(posE==!(-1)){
              listaEstudiante->eliminarEstudiante(posE);
              cout<<"El estudiante de id: " <<IdEstudiante <<" fue eliminado correctamente "<<endl;}
            else
            cout<<"No se encontrĂ³ el id del estudiante "<<endl<<endl;
    
            cout<<"Desea continuar eliminando estudiantes?"<<endl;
            cout<<"Digite 0 (cero) para Permanecer "<<endl;
            cout<<"Digite 1 para Abandonar "<<endl;
            cin>>estado;//para salir al while
    
           system("pause");
           break;
    
          }
          case 4:{//consultar
              system("cls");
              string idEstudiante;
              cout<<"Digite el id del estudiante que desea consultar: "<<endl;
              cin>>idEstudiante;
              cout<<endl;
              int posE=listaEstudiante->buscarEstudiante(idEstudiante);
    
                system("cls");//limpiar lo digitado
                if(posE==-1)
                   cout<<"No se encuentra el estudiante "<<endl;
                else{
                   cout<<listaEstudiante->listarEstudiante(posE);
                   cout<<endl;
                    }
               system("pause");
    
              system("cls");
              cout<<"Desea continuar consultando estudiantes?"<<endl;
              cout<<"Digite 0 (cero) para Permanecer "<<endl;
              cout<<"Digite 1 para Abandonar "<<endl;
              cin>>estado;//para salir al while
    
           break;
          }
          case 5:{//listar
              system("cls");
              cout<<"Los estudiantes son: "<<endl;
              cout<<"---------------------"<<endl;
              for(int i=0;i<listaEstudiante->posE;i++)
               cout<<listaEstudiante->listarEstudiante(i)<<endl;
    
    
           return 0;//sale del for, sino se encicla
           break;
          }
          default:{
           exit(0);
          }
        }//del swith del estudiante
        }//del while
           break;
          }//del case 1
    // hasta aqui swith estudiante
    
    
    
    
    
    
          case 2:{}
    
    
    
          case 3:{}
    
    
          default:{
           exit(0);
          }
        }
        }
        return 0;
    }

  2. #2
    GCDEF is offline Elite Member Power Poster
    Join Date
    Nov 2003
    Location
    Florida
    Posts
    12,635

    Re: help to convert a project from vectors to lists!!!!

    I don't see any vectors in that code.

  3. #3
    Join Date
    Jul 2002
    Location
    Portsmouth. United Kingdom
    Posts
    2,727

    Re: help to convert a project from vectors to lists!!!!

    What's with all the 'new' statements?
    Are you a recent convert to C++ from Java?
    Your code has loads of memory leaks.
    "It doesn't matter how beautiful your theory is, it doesn't matter how smart you are. If it doesn't agree with experiment, it's wrong."
    Richard P. Feynman

  4. #4
    Join Date
    May 2002
    Location
    Lindenhurst, NY
    Posts
    867

    Re: help to convert a project from vectors to lists!!!!

    I don't think you guys understood the urgency at hand here. Didn't you notice the multiple exclamation points & all caps? Somebody get this guy the codes quick!!!

  5. #5
    Join Date
    Apr 1999
    Posts
    27,449

    Re: help to convert a project from vectors to lists!!!!

    Quote Originally Posted by rafalfaro_18 View Post
    I NEED TO CONVERT THIS CODE TO USE LISTS INSTEAD OF VECTORS IT'S URGENT!!! SOMEONE HELP ME!!! IT'S A CHALLENGE!!!
    You didn't finish converting your program from Java to C++.

    Regards,

    Paul McKenzie

  6. #6
    Join Date
    May 2009
    Posts
    2,413

    Re: help to convert a project from vectors to lists!!!!

    Quote Originally Posted by rafalfaro_18 View Post
    I NEED TO CONVERT THIS CODE TO USE LISTS INSTEAD OF VECTORS
    Replace this array,

    Estudiante **losEstudiantes

    with a list and change the accessor method implementations accordingly.

    Note that C++ doesn't have a garbage collector as standard like Java. This means every new must have a matching delete somewhere.
    Last edited by nuzzle; October 26th, 2011 at 01:31 PM.

  7. #7
    Join Date
    Oct 2011
    Posts
    2

    Re: [RESOLVED] help to convert a project from vectors to lists!!!!

    how do i delete the thread?

  8. #8
    Join Date
    Oct 2006
    Location
    Sweden
    Posts
    3,654

    Re: [RESOLVED] help to convert a project from vectors to lists!!!!

    You can't. Why do you want to delete it?
    Debugging is twice as hard as writing the code in the first place.
    Therefore, if you write the code as cleverly as possible, you are, by
    definition, not smart enough to debug it.
    - Brian W. Kernighan

    To enhance your chance's of getting an answer be sure to read
    http://www.codeguru.com/forum/announ...nouncementid=6
    and http://www.codeguru.com/forum/showthread.php?t=366302 before posting

    Refresh your memory on formatting tags here
    http://www.codeguru.com/forum/misc.php?do=bbcode

    Get your free MS compiler here
    https://visualstudio.microsoft.com/vs

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured