Lista en c++ Canciones mas escuchadas

Iniciado por avilaM, 1 Diciembre 2014, 14:34 PM

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

avilaM

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.

ivancea96

Código (cpp) [Seleccionar]
Cancion c;
c.year = 1998;
/// (...)
lista.insert(c);

lista.insert(year, name, /**(...)**/);



No entendí muy bien la pregunta.

avilaM

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

ivancea96

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?

avilaM

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?

ivancea96

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]?

rir3760

Cita de: avilaM en  1 Diciembre 2014, 16:59 PMde 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 (en C pero puedes aplicarlos en tu caso con solo modificaciones menores).

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language