Problema programación listas.

Iniciado por Josh13, 21 Abril 2018, 18:04 PM

0 Miembros y 1 Visitante están viendo este tema.

Josh13

Hola, tengo ciertos problemas programando en listas en c++. Soy muy principiante en esto como se puede observar, aun no he aprendido a programar lo suficiente. Tengo que elaborar una practica para la universidad. Y sencillamente no me funciona el código, me da un error de operando que a veces sale y otras veces no, cosa que no entiendo.
Y los códigos no me funcionan correctamente como deberían, no entiendo exactamente que me piden. Por ejemplo en eliminar película, me elimina todas. Y no se exactamente como hacer que me elimine la que me llega por el titulo, no se como aplicar ese string al código.

Es una lista enlazada con cabecera y centinela para implementar la lista calificada ordenada de películas

Estos son los códigos que he realizado hasta ahora:

bool Filmoteca::insertarPelicula (Pelicula peli) {
   bool resul = false;
   string x;
   pNodo anterior = cab, actual = cab->sig, nuevo;
   cent->info = x;
   while(actual->info< x){ //A partir de aquí me da error de operando en todas las x
      anterior = actual;
      actual=actual->sig;
   }
   if(actual->info>x || actual == cent){
      nuevo = new NodoF(x, actual);
      anterior->sig = nuevo;
      resul = true;
   }
   else resul = false;

return resul;
}

bool Filmoteca::eliminarPelicula (string titulo) {
   bool resul = false;
   string x;
   pNodo anterior = cab, actual = cab->sig;
   cent->info = x;
   while(actual->info < x){
      anterior = actual;
      actual=actual->sig;
      }
      if(actual->info >x || actual == cent)
         resul = false;
         else{
            anterior->sig=actual->sig;
            delete actual;
            resul = false;
   }
      return resul;

}

Pelicula Filmoteca::buscarPelicula (string t) {
   bool resul = false;
   string titulo = t;
string x;
pNodo actual = cab->sig;
cent-> info = x;
while(actual->info<x)
   actual = actual->sig;
if(actual->info == x && actual != cent)
   resul = true;
return resul;
}


void Filmoteca::mostrarFilmoteca () {
   pNodo aux = cab->sig;
   while (aux != cent){
      cout << aux-> info << " ";
      aux = aux->sig;
   }

Primera parte de filmoteca.cpp
https://ibb.co/cRSGGx

Filmoteca.h
https://ibb.co/c4uSpH    

Lo que me piden:
https://ibb.co/k9YL9H

MAFUS

En insertarPelicula, es lo que he visto así por encima y ya no he buscado más:

Declaras string x, sin inicializar ni darle valor alguno pero asignas el valor de ésta a otra variable y después la comparas. Insisto, sin haberle dado valor alguno. Tal vez por eso te de fallo.