Base de datos elemental

 Amaia Ganuza
 
// Bases de datos elemental consistente en  una lista enlazada de N fichas.

#include <stdio.h>
#include <stdlib.h>
#include<string.h>

struct ficha
{
 char autor[20];
 char titulo [50];
 int anio;
 struct ficha*sig;
};
typedef struct ficha Ficha;

void leer_ficha(Ficha*);
Ficha* buscar_ficha(Ficha*, char*);

int main()
{
 int N,i;
 char autor[30];
 Ficha *p,*ppio,*q;

 printf("cuantas fichas?: ");
 scanf("%d",&N);

 ppio= (Ficha*) malloc(sizeof (Ficha));  // lectura de primera ficha
 leer_ficha(ppio);
 q=ppio;
 for(i=1;i<N;i++)    // lectura y encadenado de siguientes fichas 
 {
  p=(Ficha*) malloc (sizeof (Ficha));
  leer_ficha(p);
  q->sig = p;
  q = p;
 }
 q -> sig =  NULL;

 do{                                 // búsqueda de fichas por autor
    fflush(stdin);
    printf("Dame el autor del libro a buscar: ");
    gets (autor);

    q = buscar_ficha(ppio, autor);
    if (q==NULL) printf ("No esta esa fichan");
    else {
          printf("El titulo del libro es %s n",q-> titulo);
          printf("El anio de publicacion del libro es %d n",q-> anio);
          }
    printf("quieres buscar otro libro?: y=1,n=0n");
    scanf("%d",&i);
    } while (i==1);

      system("PAUSE");
      return 0;
}

void leer_ficha(Ficha*q)
{
 fflush(stdin);
 printf("Dame autor del libro: n");
 gets(q->autor);

 printf("Dame titulo del libro: n");
 gets(q->titulo);
 printf("Dame anio de publicacion: ");
 scanf("%d",&(q-> anio));
}

Ficha* buscar_ficha(Ficha*q, char*autor)
{
  while (q!= NULL)
  {
   if (strcmp(autor,q-> autor)== 0) return q;
   else q = q-> sig;
  }
  return q;
}

Esta entrada fue publicada en Sin categoría. Guarda el enlace permanente.

Una respuesta a Base de datos elemental

  1. Ricardo dijo:

    he añadido comentarios..bien,ric.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s