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;
}