• Jueves 14 de Noviembre de 2024, 23:03

Autor Tema:  Operaciones con listas enlazadas  (Leído 3004 veces)

Manzanit0

  • Nuevo Miembro
  • *
  • Mensajes: 15
  • Nacionalidad: es
  • Sometimes we can’t feel the vibe of our heart...
    • Ver Perfil
    • Lapso de Imaginación
Operaciones con listas enlazadas
« en: Lunes 30 de Abril de 2012, 18:38 »
0
Hola!

Estoy haciendo un programa para  poder crear una base de datos. Os comento  :food:

Me interesa:
1) Que el programa lea una serie de datos que se introducen por teclado (se almacenan en un registro)
2) Que se guarden en un fichero de texto (para su posterior uso)
3) Que se puedan leer, añadir más o borrar un elemento en concreto

Ahora bien, yo he estado planteando el programa y he pensado en hacerlo mediante una lista enlazada. La idea es que siempre que se ejecute el programa inmediatamente cargue los datos del fichero de texto y se pueda trabajar sobre ellos, y al cerrarlo modifique el fichero con lo trabajado.

No sé si me estoy complicando mucho. De primeras no resulta un trabajo dificil, pero no estoy acostumbrado a trabajar con listas enlazadas y me resulta complejo. A ver si me podeis echar una mano.  :ayuda:

Os dejo la estructura general del código:

Código: C
  1. main()
  2. {
  3.         int m;
  4.         char nombre_proyecto[6];
  5.  
  6.         typedef struct{
  7.                 char nick[20];
  8.                 char skype[15];
  9.                 char correo[30];
  10.                 char observaciones[200];
  11.         } miembro;
  12.  
  13.         system("color A");
  14.         printf("\nEste programa esta realizado mediante listas enlazadas.");
  15.  
  16.         printf("\n\npresione una tecla para continuar...");
  17.         while(getchar() != '\n');
  18.         system ("cls");
  19.  
  20.         printf("\tMenu\t");
  21.  
  22.         printf("\n1.- Ver lista de miembros");
  23.         printf("\n2.- A%cadir un miembro, 164");
  24.         printf("\n3.- Modificar un miembro");
  25.         printf("\n4.- Cambiar el nombre del protecto");
  26.        
  27.         switch(m)
  28.         {
  29.         case 1: mostrar_miembros();
  30.         case 2: anyadir_miembro();
  31.         case 3: modificar_miembro();
  32.         case 4: borrar_miembro()
  33.         case 5: cambiar_nombre_proyecto();
  34.         }
  35.  
  36.         system("pause");
  37. }

Ahora tengo que trabajar sobre cada función. Voy a seguir, pero si me podeis dar ideas os lo agradecería mucho  :kicking:

david_lomber

  • Miembro activo
  • **
  • Mensajes: 34
  • Nacionalidad: mx
  • Impossible is nothing, just do it!!
    • Ver Perfil
    • Pelis DVDRip
Re:Operaciones con listas enlazadas
« Respuesta #1 en: Miércoles 2 de Mayo de 2012, 21:18 »
0
Una idea que se me ocurrio es que, por ejemplo dices que al ejecutarse cargaras todos los datos del registro en un lista enlazada, con la cual estaras trabajando y puedes agregar, modificar y eliminar miembros verdad?

Primero se me habia ocurrido, que cargaras los registro y una vez cargados todos pusieras un apuntador a final de la lista, que seria el ultimo del registro y al momento de cerrar unicamente empezaras a leer apartir de ahi para, si habia uno nuevo, agreegarlo al registro. Pero parece que si eliminas uno existente asi habria problemas :(.

La unica forma que se me ocurre seria que igual cargues todo a la lista y al momento de cerrar sobreescribas todo el registro con todo lo de la lista.

¿Que es lo que se te dificulta con las listas?

Saludos!!

Manzanit0

  • Nuevo Miembro
  • *
  • Mensajes: 15
  • Nacionalidad: es
  • Sometimes we can’t feel the vibe of our heart...
    • Ver Perfil
    • Lapso de Imaginación
Re:Operaciones con listas enlazadas
« Respuesta #2 en: Jueves 3 de Mayo de 2012, 14:16 »
0
El tema de las listas en sí  :rain:

Es decir, por ser más concretos, no sé cómo leer los datos del fichero y convertirlo en lista enlazada. Me explico:

inicialmente, la primera vez que se inicia el programa, las listas podría crearlas bien. El código seria cuestión de ponerme a machacarlo un poco, el problema entra cuando, una vez grabados los datos en el fichero (con fwrite), los quiero volver a leer y, por decirlo de alguna manera, enlazarlos, es decir, leerlos y reconvertirlos en una lista enlazada para comenzar a editarlos.

¿Tiene sentido? ¿Me explico bien?  :think:

¡Gracias!

david_lomber

  • Miembro activo
  • **
  • Mensajes: 34
  • Nacionalidad: mx
  • Impossible is nothing, just do it!!
    • Ver Perfil
    • Pelis DVDRip
Re:Operaciones con listas enlazadas
« Respuesta #3 en: Miércoles 9 de Mayo de 2012, 18:44 »
0
Pues lo que se me viene a la mente es que por ejemplo al momento de guardarlo se guardo como de este tipo:

Pedro;Garcia;Lopez;25;Soltero;
Maria;Chavez;Garcia;30;Casada;

Y ver como se puede leer linea por linea un fichero, para al momento de leer el archivo lees una linea y ya solo vas obteniendo los datos que estan separados por ; ya ahi sabes que desde el inicio hasta el primer ; es el nombre, de ahi hasta el siguiente ; es el apellido y asi hasta que termines. Despues con la siguiente linea y asi :P

Saludos!!