estoy haciendo una programa con archivo en tengo problema con la parte de consul

Iniciado por swagger14, 5 Diciembre 2011, 17:44 PM

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

swagger14


El programa debe permitir hacer consulta de:
Libros:
-   Por Nombre
-   Por Tema
-   Por Autor
-   Por Editora
-   Por ISBN
Autor:
-   Por Libro
-   Por Ciudad
-   País
-   Por Editora
-   Por Tema
Editora
-   Por Libro
-   Por Ciudad
-   Por Autor
-   Por País


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

void Escribirlibros();
void Escribireditoras();
void Escribirautor();
void Escribirtemas();
Consultar();
int Menu();

struct TAutores
{
   int  Codigo;
   char Nombre[25];
   char Apellido[25];
   char Direccion[25];
   char Telefono[14];
   char Fax[14];     
   char Correoelectronico[100];
   
};

struct TEdictoras
{
   int  Codigo;
   char Nombre[25];
   char Apellido[25];
   char Direccion[25];
   char Telefono[14];
   char Fax[14];     
   char Pagina[50];
   char Correoelectronico[100];
   char Representate[50];
   
};



struct Libros

{
   int  Codigo;
   char Nombre [60];
   int  Tema;
   int  CodigoTema;
   int  CodigoAutor;
   int  CodigoEdictora; 
   
};


struct Temas
{
   int  Codigo;
   char Descripcion [25];         

};

struct Domicilio

{
   char Calle[40];   
   char Numero[10];
   char Sector[40];
   char Ciudad[40];
   char pais[40];
           
};     
int main(){
  int r = 1;
  int Opcion = 0;
  while(Opcion != 3){
    system("cls");
    Opcion = Menu();
    switch(Opcion){     
      case 1:
        while(r){
                    Escribirlibros();
                    Escribireditoras();
                    Escribirautor();
                    Escribirtemas();
          printf("Desea continuar (1. Si, 0. No): ");
          scanf("%d", &r);         
        }
        break;
       case 2:
         Consultar();
         break;
       case 3: return 0;
       
       default: printf("un pecosa por estar poniendo opciones que no son validas...");
       system("pause");       
    }
  }
}
int Menu(void){
  int op;
  printf("1. Entrada\n\r2.Consulta\n\r3.Salir\n\n\nDigite una opcion: ");
  scanf("%d", &op);
  return op;   
}

void Escribirautor()
{
    system ("cls");
    int ps=1;
    FILE *AR = fopen("autores.dat","a+b");   
    TAutores Autores;
    if (AR==NULL)
       {
          printf ("No se pudo abrir el archivo");
          }
           else
          do {
               fseek(AR, (ps-1) * sizeof(TAutores), SEEK_SET);
               printf("Digite codigo\n\n");
               scanf ("%d",Autores.Codigo);
               printf ("Digite Nombre\n\n"); 
               gets  (Autores.Nombre);
               fflush (stdin);
               printf ("Digite el apellido\n\n");
               gets  (Autores.Apellido);
               fflush (stdin);
               printf ("Digite la direccion\n\n");
               gets  (Autores.Direccion);
               fflush (stdin);
               printf ("Digite el telefono\n\n");
               gets  (Autores.Telefono);
               fflush (stdin);
               printf ("Digite el fax\n\n");
               gets  (Autores.Fax);
               printf ("Digite el correo electronico\n\n");
               gets  (Autores.Correoelectronico);
               fflush (stdin);
               fread(&Autores, sizeof(TAutores), 1, AR);
               ps++;
               }while(!feof(AR));
                fclose(AR);
                printf("\n\n\n");
                system("pause"); 
}

           
void Escribireditora()
{
    system ("cls");
    int ps=1;
    FILE *AR = fopen("edictoras.dat","a+b");   
    TEdictoras Edictoras;
    if (AR==NULL)
       {
          printf ("No se pudo abrir el archivo");
          }
           else
          do {
               fseek(AR, (ps-1) * sizeof(TEdictoras), SEEK_SET);
               printf("Digite codigo\n\n");
               scanf ("%d",Editoras.Codigo);
               printf ("Digite Nombre\n\n"); 
               gets  (Editoras.Nombre);
               fflush (stdin);
               printf ("Digite el apellido\n\n");
               gets  (Editoras.Apellido);
               fflush (stdin);
               printf ("Digite la direccion\n\n");
               gets  (Editoras.Direccion);
               fflush (stdin);
               printf ("Digite el telefono\n\n");
               gets  (Editoras.Telefono);
               fflush (stdin);
               printf ("Digite el fax\n\n");
               gets  (Editoras.Fax);
               printf ("Digite el correo electronico\n\n");
               gets  (Editoras.Correoelectronico);
               fflush (stdin);
               fread(&Editoras, sizeof(TEdictoras), 1, AR);
               ps++;
               }while(!feof(AR));
                fclose(AR);
                 printf("\n\n\n");
                 system("pause");   
                 
}
             
  void Escribirlibros()
{
    system ("cls");
    int ps=1;
    FILE *AR = fopen("edictoras.dat","a+b");   
    TLiboros Libros;
    if (AR==NULL)
       {
          printf ("No se pudo abrir el archivo");
          }
           else
          do {
               fseek(AR, (ps-1) * sizeof(TLibros), SEEK_SET);
               printf("Digite codigo\n\n");
               scanf ("%d",Edictoras.Codigo);
               printf ("Digite Nombre\n\n"); 
               gets  (Edictoras.Nombre);
               fflush (stdin);
               printf ("Digite el codigo del tema\n\n");
               scanf  ("%d",Libros.Codigotema);
               printf ("Digite el codigo de autor\n\n");
               scanf  ("%d",Libros.CodigoAutor);
               printf ("Digite el codigo de la editora \n\n");
               scanf  ("%d",Libros.Editora);
               
               fread(&Libros, sizeof(TLibros), 1, AR);
               ps++;
               }while(!feof(AR));
                fclose(AR);
                 printf("\n\n\n");
                 system("pause");   
                 
}
                       
   void Escribirtemas()
{
    system ("cls");
    int ps=1;
    FILE *AR = fopen("temas.dat","a+b");   
    TTemas Temas;
    if (AR==NULL)
       {
          printf ("No se pudo abrir el archivo");
          }
           else
          do {
               fseek(AR, (ps-1) * sizeof(TTemas), SEEK_SET);
               printf("Digite codigo\n\n");
               scanf ("%d",Temas.Codigo);
               printf ("Digite Descripcion\n\n"); 
               gets  (Temas.Descripcion);
               fflush (stdin);   
               fread(&Temas, sizeof(TTemas), 1, AR);
               ps++;
               }while(!feof(AR));
                fclose(AR);
                 printf("\n\n\n");
                 system("pause");   
                 
}