#include #include #include ////////********** Declaración del registro struct estudiante{ int cedula; char nombre[20]; }; //////********** Declaración de Prototipos void eliminar(int ced); void anadir(); int buscar(int ced); //////********** Menú Principal main(){ char resp, resp1; struct estudiante E1; int ced; for(;;){ printf("1.Anadir datos\n"); printf("2.Eliminar datos\n"); printf("3.Buscar un dato dado\n"); printf("4.Salir\n"); printf("Elija opcion\n"); resp=getchar(); switch(resp){ case '1': anadir(); //Llamada al procedimiento de insertar getchar(); break; case '2': printf("\nIntroduzca cedula a eliminar\n"); scanf("%i",&ced); eliminar(ced); //Llamada al procedimiento de eliminar getchar(); break; case '3': printf("\nIntroduzca cedula a buscar\n"); scanf("%i",&ced); if (buscar(ced)==1) //Función que verifica si existe una cédula dada printf("Cedula Encontrada\n"); else printf("Cedula NO encontrada\n"); getchar(); break; case '4': exit(1); break; default: printf("\nDato erroneo\n"); break; } } getchar(); } void eliminar(int ced) { FILE *pf; FILE *f; struct estudiante E; if (buscar(ced)==0){ printf("Cedula NO encontrada\n"); } else { if (!(pf=fopen("datos.txt","r+"))) /* controlamos si se produce un error */ { printf("Error al abrir el fichero"); exit(1); /* abandonamos el programa */ } if (!(f=fopen("datos1.txt","w+"))){ printf("Error al abrir el fichero"); exit(1); /* abandonamos el programa */ } else { fscanf(pf,"%8d %20s",&E.cedula,&E.nombre); //lee del archivo do{ if(ced!=E.cedula){ //escribe en el archivo fprintf(f,"%8d %20s\n",E.cedula,E.nombre); } //lee del archivo fscanf(pf,"%8d %20s",&E.cedula,&E.nombre); }while(!feof(pf)); } fclose(pf); fclose(f); //Borra el archivo datos.txt remove("datos.txt"); //El archivo "datos1" ahora se va a llamar "datos" rename("datos1.txt","datos.txt"); } } void anadir() { FILE *f; int ced; char nom[20]; // busca la cedula a ver si no existe printf("\nCedula : "); scanf("%8d", &ced); if (buscar(ced)==1){ printf("Cedula YA existe\n"); } else { if (!(f=fopen("datos.txt","a+"))) /* controlamos si se produce un error */ { printf("Error al abrir el fichero"); exit(1); /* abandonamos el programa */ } else { printf("\nNombre : "); scanf("%20s", nom); fprintf(f,"%8d %20s\n",ced,nom); //escribe en el archivo } fclose(f); } } int buscar(int ced) { FILE *pf; int band=0; struct estudiante E; if (!(pf=fopen("datos.txt","r"))) /* controlamos si se produce un error */ { printf("Error al abrir el fichero"); exit(1); /* abandonamos el programa */ } else { fscanf(pf,"%8d %20s",&E.cedula,E.nombre); //lee del archivo do{ if(ced==E.cedula){ band=1; fclose(pf); return band; } fscanf(pf,"%8d %20s",&E.cedula,&E.nombre); //lee del archivo }while(!feof(pf)); } fclose(pf); return band; }