Título: estoy haciendo una programa con archivo en tengo problema con la parte de consul Publicado por: swagger14 en 5 Diciembre 2011, 17:44 pm 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 Código: #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"); } |