Hola....alguien me puede ayudar a modificar esto. para un control de libros. 
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
typedef struct {
   char nom[25];
   int edad;
   char tel[15];
   char dir[35];
}Amigo;
/*Funciones de Archivo*/
void Crear(void);
void Listar(void);
void Agregar(void);
void Modificar(void);
void Borrar(void);
void Encontrar(void);
/*Nombre del Archivo a guardar*/
char nombre_fichero[] = "agenda.dat";
FILE *abrir_fichero_b(char cadena[], int metodo);
void main(){
   FILE *fp;
   int opc;
   char cad[3];   
   fp = abrir_fichero_b(nombre_fichero,0);
   if( fp ){
      fclose(fp);
   }
   else
   {
      printf( "Error (NO ABIERTO)\n" );
      puts("Presiona cualquier tecla para continuar.... y Crear el Archivo");
      fp = abrir_fichero_b(nombre_fichero,1);
      fclose(fp);
      getch();
   }   
   do{
      clrscr();
      puts("1. Crear Archivo (Cuidado, elimina lo que ya se tiene en el Archivo)");
      puts("2. Agregar\n3. Eliminar\n4. Listar\n5. Buscar\n6. Modificar\n7. Salir");
      puts("?Introduce tu opcion y depues enter.");      
      opc = atoi(gets(cad));
      while(opc<0 || opc>7) /*Limitando la entrada de las opciones*/   
         opc = atoi(gets(cad));
      clrscr();   
      switch(opc)
      {
      case 1:
            Crear();
            break;
      case 2:   
            Agregar();
            break;
      case 3:
            Borrar();
            break;
      case 4:
            Listar();
            break;
      case 5:
            Encontrar();
            break;
      case 6:
             Modificar();
            break;         
      }      
      /*Solo parar cuando sea una de las opciones*/
      if(opc<7){
         puts("\n\nPresiona Cualquier Tecla para Regresar al Menu");
         getch();
      }      
   }while(opc!=7);   
}
// FUNCION PARA CREAR UN ARCHIVO
/*****************************************************************
Funcion que sirve para borrar todo el Contenido del Archivo Binario*/
void Crear(void){
   FILE *fp;
   fp = abrir_fichero_b(nombre_fichero,0);
   if(fp)
   {
      printf("\n Error de apuertura del archivo agenda.dat\n");
        fclose(fp);  
   }
}
/********************************************************
Funcion que sirve para imprimir todos los  un registros del Archivo Binario*/
void Listar(void){
   FILE *fp;
   int i=1;
   Amigo aux;
   fp = abrir_fichero_b(nombre_fichero,0);
   if(!(fp))
      printf("\n Error de apuertura del archivo agenda.dat\n");
   else{
      printf("\n U S U A R I O S  E N  L A  A G E N D A\n");
      printf("---------------------------------------------------------------\n");
      while ((fread(&aux, sizeof(aux), 1, fp))!=0){
      printf("=> Datos del Amigo %d\n",i);
      printf("Nombre: %s | Edad: %d | Telefono: %s\n",aux.nom,aux.edad,aux.tel);
      printf("Direccion: %s\n",aux.dir);
      i++;
      }
      printf("---------------------------------------------------------------\n");
      fclose(fp);
   }
}
/********************************************************
Funcion que sirve para agregar un registro dentro del Archivo Binario*/
void Agregar(void){
   FILE *fp;
   Amigo aux;
   char cad[3];
   printf("\n Agregando un Amigo Nuevo al archivo binario agenda.dat\n");
   fp=abrir_fichero_b(nombre_fichero,2);
   if(!(fp))
      printf("\n Error de apuertura del archivo agenda.dat\n");
   else{
      /*Introduciendo los Datos del Amigo*/
      printf("Dame el nombre del Amigo: ");
      gets(aux.nom);
      printf("Dame la Edad del Amigo: ");
      aux.edad=atoi(gets(cad));
      printf("Dame el telefono del Amigo: ");
      gets(aux.tel);
      printf("Dame la direccion del Amigo: ");
      gets(aux.dir);
      fwrite(&aux, sizeof(aux), 1, fp);
      fclose(fp);
   }
}
/********************************************************
Funcion que sirve para Modificar un registro dentro del Archivo Binario*/
void Modificar(void){
   FILE *fp;
   Amigo   aux;
   int n;
   char cadena[25],cad[2];
   fp=abrir_fichero_b(nombre_fichero,3);
   if(!(fp))
      printf("\n Error de apuertura del archivo agenda.dat\n");
   else{
      printf("Como se llama al amigo que quieres Modificar: ");
      gets(cadena);      
      /*Buscando el Amigo dentro del Archivo*/
      while ((n=fread(&aux, sizeof(aux), 1, fp))!=0 && stricmp(aux.nom,cadena)!=0);
      if (n==0)
         printf("No existe el cuate llamado: %s ",cadena);
      else{
         printf("\n Amigo encontrado....!!!\n");
         printf("Nombre: %s ",aux.nom);
         printf("Edad: %d ",aux.edad);
         printf("Telefono %s ",aux.tel);
         printf("Direccion: %s\n",aux.dir);       
         printf("\n CAMBIANDO VALORES \n");       
        printf("Dame el nombre nuevo del Amigo: ");
      gets(aux.nom);
      printf("Dame la nueva Edad del Amigo: ");
      aux.edad=atoi(gets(cad));
      printf("Dame el nuevo telefono del Amigo: ");
      gets(aux.tel);
      printf("Dame la nueva direccion del Amigo: ");
      gets(aux.dir);                
         printf("\n GRABANDO Y CERRANDO ARCHIVO \n");
         fseek(fp,-1*sizeof(aux),SEEK_CUR);
         fwrite(&aux, sizeof(aux), 1, fp);
      }
      fclose(fp);   //Cerramos el archivo
   }
}
/********************************************************
Funcion que sirve para borrar un registro dentro del Archivo Binario*/
void Borrar(void){
   FILE *fp,*fd;
   Amigo   aux;
   int encontrado=0;
   char cadena[25];   
   printf("Introduce el nombre del Amigo a borrar: ");
   gets(cadena);   
   printf("\n BORRANDO REGISTROS  \n");
   fp=abrir_fichero_b(nombre_fichero,0);
   if(!(fp))
      printf("\n Error de apuertura del archivo agenda.dat\n");
   else{
      fd=abrir_fichero_b("paso.$$$",1);
      if(!(fd))
         printf("\n Error Imposible crear archivo auxiliar\n");
      else{
         while ((fread(&aux, sizeof(aux), 1, fp))!=0)
            if(stricmp(aux.nom,cadena)!=0)
              fwrite(&aux, sizeof(aux), 1, fd);
            else
              encontrado=1;
         fclose(fd);
      }
      fclose(fp);
      if(encontrado){
         system("del agenda.dat");
         system("ren paso.$$$ agenda.dat");
         printf("\n Registro BORRADO con Exito!!!\n");
      }
      else{
         system("del paso.$$$");
         printf("\n El Registro NO SE ENCONTRO, no fue borrado!!!");
      }
   }
}
/******************************************
Funcion para Encontrar un Amigo e imprimir sus datos*/
void Encontrar(void){
   FILE *fp;
   Amigo   aux;
   int n;
   char cadena[25];
   printf("Introduce el nomrbre del Amigo que buscas: ");
   gets(cadena);
   printf("\n Buscando a un Amigo  \n");
   fp=abrir_fichero_b(nombre_fichero,0);
   if(!(fp))
      printf("\n Error de apuertura del archivo agenda.dat\n");
   else{
      while ((n=fread(&aux, sizeof(aux), 1, fp))!=0 && stricmp(aux.nom,cadena)!=0);
      if (n==0)
         printf("No existe el cuate llamado: %s ",cadena);
      else{
         printf("\n Amigo encontrado....!!!\n");
       printf("Nombre: %s | Edad: %d | Telefono: %s\n",aux.nom,aux.edad,aux.tel);
       printf("Direccion: %s\n",aux.dir);       
      /* getch();*/      
      }
   }
}
/*************************************************
Funcion que Carga el Archivo y regresa un apuntador con que se va ha manejar el Archivo
Recibe:    El nombre del Archivo , Y el método con que se va abrir el Archivo
      Un Apuntador tipo Archivo, 0 - Solo Lectura , 1 - Para crearlo de nuevo desde cero, 
      2 - Anhadir Informacion, 3 - para Lectura y Escritura.      
 Regresa:   El apuntador de Tipo FILE, con el cual se abrio*/
FILE *abrir_fichero_b(char cadena[], int metodo){
   FILE *x;
   switch(metodo){
      case 0:
         x = fopen(cadena,"rb");
         break;
      case 1:
         x = fopen(cadena,"wb");
         break;
      case 2:
         x = fopen(cadena,"ab");
         break;
      case 3:
         x = fopen(cadena,"r+b");
         break;
   }
   return x;
}
=========================================================================
#include "stdlib.h"
#include "conio.h"
#include "stdio.h"
#include "string.h"
void Agregar()
{
char libro [100];
char autor [100];
char lugar [100];
char dir [100];
int num;
int cod;
int opc;
   clrscr();
   while(opc!=0)
{
   printf("\n\n\t\t\tIngrese el Codigo del libro:      ");
   scanf("%d", &cod);
   printf("\n\n\n\t\t\tIngrese el nombre del libro:   ");
   scanf("%s", &libro);
   printf("\n\n\n\t\t\tIngrese el autor del libro:    ");
   scanf("%s", &autor);
   printf("\n\n\n\t\t\tIngrese el año de edicion: ");
   scanf("%d", &num);
   printf("\n\n\n\t\t\tIngrese el lugar: ");
   scanf("%s", &lugar);
   printf("\n\n\n\t\t\tIngrese la direccion: ");
   scanf("%s", &dir);
   printf("Desea ingresar otro 1 si 0 o no:");
   scanf("%d", &opc);
   clrscr();
}
   getch();
}
void Modificar()
{                                                                                                  
int cod;
   clrscr();
   printf("\n\n\t\tIngres el codigo del libro que desea modificar: ");
   scanf("%d", &cod);
   printf("\n\n\t\tEsta seguro que desea modificar la informacion de libro: ");
   getch();
}
void Eliminar()
{
int cod;
   clrscr();
   printf("\n\n\t\tIngres el codigo del libro que desea eliminar: ");
   scanf("%d", &cod);
   printf("\n\n\t\tEsta seguro que desea eliminar el libro: ");
   getch();
}
void Consultar()
{
int cod;
   clrscr();
   printf("\n\n\t\tIngres el codigo del libro que desea Consultar: ");
   scanf("%d", &cod);
   getch();
}
void Imprimir()
{
int cod;
   clrscr();
   printf("\n\n\t Ingres el codigo del libro que desea desea Imprimir: ");
   scanf("%d", &cod);
   getch();
}
void Integrantes()
{
   clrscr();
   printf("\n\n\n\n\n                        *************************************** ");
   printf("                                        *       INTEGRANTES DEL GRUPO 5       *   ");
   printf("                                      *                                     *   ");
   printf("                                      *                                     *   ");
   printf("                                      *  Fernando Rafael Baldizon Estrada.  *   ");
   printf("                                      *                                     *   ");
   printf("\n                        *  No. de Carne: 1690-06-10030.       *   ");
   printf("                                      *                                     *   ");
   printf("                                      *                                     *   ");
   printf("                                      *  Oscarito Israel Batun Espinoza.    * ");
   printf("                                        *                                     *   ");
   printf("\n                        *  No. de Carne: 1690-06-10035.       *");
   printf("                                         *                                     *   ");
   printf("\n                        *************************************** ");
   getch();
}
void main()
{
int opcion=0;
while (opcion!=7)
   {
   clrscr();
   printf("                   ********************************************* ");
   printf("\n                   *                BIENVENIDOS                *    ");
   printf("                               *                                           * ");
   printf("\n                   *        UNIVERSIDAD MARIANO GALVEZ         * ");
   printf("                                  *                                           * ");
   printf("\n                   *     CONTROL DE LIBRO EN UNA EDITORIAL     *");
   printf("                                   ********************************************* ");
   printf("\n\n                                       MENU    ");
   printf("\n\n                        Agregar      [1] ");
   printf( "\n\n                        Modificar    [2] ");
   printf( "\n\n                        Eliminar     [3] ");
   printf( "\n\n                        Consultar    [4] ");
   printf( "\n\n                        Imprimir     [5] ");
   printf( "\n\n                        Integrantes  [6] ");
   printf( "\n\n                        Salir        [7] ");
   printf("\n\n                        Seleccione una Opcion: ");
   scanf("%d",&opcion);
   switch(opcion)
   {
   case 1:
      Agregar();
            break;
   case 2:
        Modificar();
            break;
   case 3:
        Eliminar();
             break;
   case 4:
        Consultar();
             break;
   case 5:
        Imprimir();
             break;
   case 6:
        Integrantes();
             break;
   //case 7:
      //Salir();
             //   break;
    }
   getch();
   }
}