Programación General > C/C++

 necesito la idea principal del algoritmo a realizar

(1/2) > >>

pacorubio77:
Hola,espero saber explicarme y que alguien me ayude con el algoritmo a realizar.
Tengo una estructura Tcancion que tiene los siguiente campos

struct Tcancion{
     string autor;
     string titulo;
    string album;
    int valoracion;
    string url;
    string imagen;
};

Tendre fichero que en cada linea tendré dichos datos de la cancion, y en ese fichero habrá canciones.
Vale,pero habrá una opcion que se llame Buscar que nos pedirá la busqueda desde teclado y por teclado puede meter lo siguiente:

autor="Juan" y titulo="Hola a todos" o autor="Felipe"    ->esto es lo que se meterá por teclado
Es decir buscará la cancion  cuyo autor sea Juan y titulo Hola a todos   O    buscará la cancion cuyo autor sea Felipe, estoy buscando la idea principal de realizar el algoritmo.Pero no tengo una idea clara.
Repito que quiero que me ayudeis en la idea, NO PIDO CODIGO ....sino la idea principal a seguir.

Muchas Gracias.
Espero Ayuda.

tyrell:
Pues pides mas o menos una base de datos, quizas una forma sencilla de implementar sea usando indices.
Tienes el fichero de datos desordenado, luego creas indices ordenados por un campo (lo que hace que la busqueda sea mas sencilla) y la linea (registro) del fichero
de datos principal que le corresponde.
Ej
Fichero datos
Felipe|Hola a todos|...
Alberto|Adios a todos|...
Carlos|nada mas|....

Indice de autor
Alberto|2
Carlos|3
Felipe|1

De esta forma puedes ir anidando la consulta.

gonza_fs:
Que tal. Lo de usar indices es la idea mas eficiente, creo yo tambien. No se si sabes algo sobre estructuras de bases de datos, cosas como arboles b y b+, tablas de hash, gridfiles, etc, entre los cuales estan incluidos los indices, que son los mas basicos para buscar registros en un archivo. Pero solo te hablo de esto si conoces estas estrcucturas, sino simplemente haz caso a los indices.
Lo que se suele hacer a veces es utilizar una clase para buscar. Por ejemplo, esto se hace en java para ordenar registros por varios campos. Podrias usarlo tambien para buscar.
La idea basica seria crear una clase busqueda o buscar con los parametros necesarios para buscar y un parametro de "tipo busqueda" como sigue:

class busqueda{
string campo         //campo de busqueda por ejemplo, el titulo, por decir alguno.
....                       //otros parametros que quiza se requieran dentro de la clase.
busqueda siguiente  //este contendra el siguiente campo de busqueda, si es que el titulo no esta especificado.

Bueno, no me extiendo mas porque quiza no te interese esta idea, sin embargo es algo tambien eficiente y con costo muy bajo. Cualquier cosa me preguntas y te digo mas detalles si esto te interesa. Suerte.

pacorubio77:
No es tan complicado, no es nada de base de datos...yo tengo tanto fichero de texto como fichero binario....y el criterio de busqueda lo tengo que meter por teclado...al tener fichero de texto y fichero binario...no es necesario nada de base de datos..ya que en dichos ficheros tengo los datos...es decir yo leo de un fichero y lo almaceno en un NODO,,,para luego para cada cancion que vaya leyendo formar una lista de punteros..teniendo en cada nodo una cancion...

Pero mi dificultad está en la filtracion del criterio de busqueda...

Espero haberme explicado bien...
Un saludo,espero respuesta.

Gracias.

m0skit0:

--- Cita de: "pacorubio77" ---no es nada de base de datos
--- Fin de la cita ---
Pues sí que lo es. Es decir, no es nada de bases de datos avanzadas como MySQL, pero tú pretendes crear una base de datos sencillota en un fichero.


--- Cita de: "pacorubio77" ---Pero mi dificultad está en la filtracion del criterio de busqueda...
--- Fin de la cita ---
Lees las estructuras y comparas los campos con los pedidos. No veo dónde radica la dificultad...

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa