Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: avilaM en 1 Diciembre 2014, 14:34 pm



Título: Lista en c++ Canciones mas escuchadas
Publicado por: avilaM en 1 Diciembre 2014, 14:34 pm
Buenas,
me han mandado crear una clase Lista donde pueda insertar una Canción con estos atributos (Nombre de la Canción, Artista, Año de Publicación, Número de Escuchas Global, Mes, Número de Escuchas en el Mes).

Y después crear un menú donde obtenga las 5 canciones más escuchadas en el mes, ordenadas por el atributo Número de Escuchas en el Mes de mayor a menor, y me piden que muestre en columnas todos los atributos asociados a la canción.



He hecho un menú, que eso es lo de menos.
luego he creado una clase llamada Canciones en la cual he hecho un vector y he metido los atributos nombre, artista, año de publicación y el numero de escuchas global ( ya que del mes y el numero de escuchas de cada mes nose como guardarlo).

después he hecho que esos atributos se guarden en un fichero, tanto por teclado como accediendo directamente al fichero manualmente e introduciendo los datos.

Mi problema es que nose como llamar a los métodos de mi clase lista, por ejemplo como llamo al método insertar de mi clase lista e introduzco hay cada atributo de cada canción , y luego encima tengo que ordenarlos por el numero de escuchas.


Título: Re: Lista en c++ Canciones mas escuchadas
Publicado por: ivancea96 en 1 Diciembre 2014, 15:39 pm
Código
  1. Cancion c;
  2. c.year = 1998;
  3. /// (...)
  4. lista.insert(c);
  5.  
  6. lista.insert(year, name, /**(...)**/);


No entendí muy bien la pregunta.


Título: Re: Lista en c++ Canciones mas escuchadas
Publicado por: avilaM en 1 Diciembre 2014, 16:37 pm
como puedo mezclar vectores y listas?, es decir, por ejemplo tengo un vector con sus atributos.

Los cargo en un txt, y al mismo tiempo quiero crear un metodo insertar lista como el que aparece a continuación, vero quiero insertar cada atributo del vector en mi lista.

void lista::insertar(int v) {
   pnodo anterior;
   if(ListaVacia() || primero->valor > v) {               
      primero = new nodo(v, primero);
   } else {
      anterior = primero;
      while(anterior->siguiente && anterior->siguiente->valor <= v)
         anterior = anterior->siguiente;
      anterior->siguiente = new nodo(v, anterior->siguiente);
   }
}


Título: Re: Lista en c++ Canciones mas escuchadas
Publicado por: ivancea96 en 1 Diciembre 2014, 16:48 pm
Utiliza las etiquetas GeSHi para postear codigo.

¿Por qué pones int v de argumento en el método insertar() de lista? ¿No se insertaba una canción?


Título: Re: Lista en c++ Canciones mas escuchadas
Publicado por: avilaM en 1 Diciembre 2014, 16:59 pm
int v
es el valor de la lista

de todas fromas es la primera vez que uilizo este lenguaje y no tengo ni idea, ya me he leid un monton de ejemplos y he hecho diferentes ejercicios, pero esoy hecha un lio.

¿podrías ayudarme?


Título: Re: Lista en c++ Canciones mas escuchadas
Publicado por: ivancea96 en 1 Diciembre 2014, 19:02 pm
No entendí lo de mezclar vector y lista. Lista, tu clase, vale. Vector, ¿qué vector? vector<> de la librería estándar o un vector cancion var[10]?


Título: Re: Lista en c++ Canciones mas escuchadas
Publicado por: rir3760 en 2 Diciembre 2014, 01:17 am
de todas fromas es la primera vez que uilizo este lenguaje y no tengo ni idea, ya me he leid un monton de ejemplos y he hecho diferentes ejercicios, pero esoy hecha un lio.
Va a ser difícil que termines el programa si como indicas apenas empiezas con C++ y ademas debes desarrollar una clase para el manejo de listas vinculadas.

Para recomendaciones sobre libros y cursos sobre C++ utiliza el motor de búsqueda, en el caso de listas vinculadas te recomiendo los tutoriales de la Stanford CS Education Library (http://cslibrary.stanford.edu/) (en C pero puedes aplicarlos en tu caso con solo modificaciones menores).

Un saludo