urgenciaaa tengo problema con la consultaa!!

Iniciado por swagger14, 7 Diciembre 2011, 17:55 PM

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

swagger14

el pragrama debe almacenar los archovos y  realizar busqueda de los archivos de  mediante busqueda y etc...


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

void Escribirlibros();
void Escribireditoras();
void Escribirautor();
void Escribirtemas();
void Consultar();
void Menuconsultorio();
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 TEditoras
{
   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 TLibros

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


struct TTemas
{
   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:
         void Consultar();
         break;
       case 3: return 0;
       
       default: printf("un pecosa por estar poniendo opciones que no son validas...");
       system("pause");       
    }
  }
}
int Menu(){
  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);
               fflush (stdin);
               printf ("Digite Nombre\n\n"); 
               gets  (Autores.Nombre);             
               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 Escribireditoras()
{
    system ("cls");
    int ps=1;
    FILE *AR = fopen("editoras.dat","a+b");   
    TEditoras Editoras;
    if (AR==NULL)
       {
          printf ("No se pudo abrir el archivo");
          }
           else
          do {
               fseek(AR, (ps-1) * sizeof(TEditoras), 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(TEditoras), 1, AR);
               ps++;
               }while(!feof(AR));
                fclose(AR);
                 printf("\n\n\n");
                 system("pause");   
         }
         
void MenuConsulta()
{
    puts   ("1.Todo" );
    puts   ("2.Por Libros");
    puts   ("3.Por Autor");
    puts   ("4.Por Editora");
   
    }   
             
   void consultar()
   {   
        void MenuConsulta();
        void Consultaporlibro();
         
   }       
             

   
  void Escribirlibros()
{
    system ("cls");
    int ps=1;
    FILE *AR = fopen("libros.dat","a+b");   
    TLibros 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",&Libros.Codigo);
               printf ("Digite Nombre\n\n"); 
               gets  (Libros.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.CodigoEditora);
               
               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");   
                 
}
 
  void Consultaporlibro()
  {
     int op=0; 
     printf ("1.Nombre,2.Tema,3.Autor,4.Editora"); 
     scanf  ("%d",&op);
     if (op=1)
     {
      system("cls");
      char Nombre[25];
      FILE *AR = fopen("libros.dat","a+b");
      printf ("Digite Nombre");
      fflush (stdin);
      while (feof(AR)==0)
      {
        fread(&Libros,sizeof(struct TLibros),1,AR);
        if ((strcmp(Nombre,Libros.Nombre)==0))
          {
           if(feof(AR)==0)
            fread(&Libros,sizeof(TLibros),1,AR);
               printf("\tCodigo\n\n",&Libros.Codigo);
               printf ("\tNombre\n\n"); 
               gets  (Libros.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.CodigoEditora);
           
                        }
           
           
            }
      }               
                   
                   
  }

Ferno

Si especificas el problema es más fácil encontrar la solución :)