Buscamos urgentemente el código fuente del sistema de gestión de bibliotecas escrito en lenguaje C
#includelt; stdio.hgt;
#includelt; includelt; stdlib.hgt;
#includelt;ctype.hgt;
#define STACK_INIT_SIZE 10
#define OK 1
# define VERDADERO 1
#define FALSO 0
#define ERROR 0
struct Student /*Define el tipo de estudiante, utilizado para almacenar libros prestados*/
{
int carnum;
char lendbook[10];
}estudiante[1000]
estructura emplear; /*definir tipo de empleado*/
{
int empleadonum;
char nombre de empleo[15]
int empleo; p>
char empleasex[2];
char emplealeve[10];
empleo int largo
}empleo[50]; p>
struct book /*definir el tipo de libro*/
{
int booknum
char bookname[10]; >
p>
char bookcreat[10];
int turefalse; /*Condiciones utilizadas por el módulo de préstamo y devolución de libros para determinar si un libro es prestado*/
} book[1000];
struct car /*tipo de datos de la tarjeta de biblioteca*/
{
int carnum; >char nombre de estudiante[10];
int clase de estudiante;
}car[100];
huanbook() /*Función de devolución de libro*/
{
ARCHIVO *fp, *fp2; /*Define dos punteros de archivo, fp2 se usa para configurar un archivo temporal al modificar datos para evitar que se dañen*/
int i, n;
int carnum;
char lendbook[10];
printf("Ingrese su número de tarjeta\n")
p>
scanf("d", y carnum);
fp=fopen("car.txt", "r"); registro numérico*/
for(i=0; fread(amp; car[i], sizeof(struct car), 1, fp)!=0; i ) /*for bucle para determinar si el el número de tarjeta existe*/
{
if(car[i].carnum==carnum) /*El número de tarjeta existe, ingresa al siguiente ciclo*/
{
n=i
fclose(fp);
intf("Ingrese el nombre del libro que desea devolver\n");
scanf("s", lendbook);
fp=fopen("record.txt); ", "r");
for(i=0; fread(amp; Student[i], sizeof(struct Student), 1, fp)!=0; i) /*Juzga si el la entrada ha sido un libro prestado*/
{
if(strcmp(student[i].lendbook, lensbook)==0) /*Tomé prestado el libro y entré al siguiente ciclo, de lo contrario se produjo un error Mostrar*/
{
fclose(fp
fp=fopen("record.txt", "r"); /p>
fp2=fopen("bookl.txt", "w");
for(i=0; fread(amp; estudiante[i], sizeof(struct estudiante), 1 , fp)! =0;i)
{
if(strcmp(estudiante[i].lendbook, lendbook)==0)
{
continuar; /*Eliminar el registro de préstamo del libro devuelto*/
}
fwrite(amp; Student[i], sizeof(struct Student), 1, fp2 ); /*Escribe el registro del libro original no devuelto*/
}
fclose(fp);
fclose(fp2); /p >
fp=fopen("record.txt", "w");
fp2=fopen("libro.txt", "r"); for( i=0; fread(amp; estudiante[i], sizeof(struct estudiante), 1, fp2)!=0; i )
{
fwrite(amp; estudiante[ i], sizeof(struct Student), 1, fp); /*Vuelve a escribir la información del registro de préstamo*/
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt", "w"); /*Borrar el registro de archivos temporales*/
fclose(fp2);
p>fp=fopen("libro.txt", "r");
fp2=fopen("libro.txt", "w");
for (i=0; fread(amp; book[i], sizeof(struct book), 1, fp)!=0; i) /*Escribe el registro del libro en un archivo temporal para evitar que se eliminen registros anteriores. destruido debido a información modificada* /
{
if(i==n)
{
libro[i].turefalse=1;
fwrite(amp; libro[i], sizeof(struct book), 1, fp2) /*Establece el estado original del libro devuelto como no prestado*/
continue
}
fwrite(amp; book[i] , sizeof( libro de estructuras), 1, fp2);
}
fclose(fp);
fclose(fp2); fopen("libro.txt", "w");
fp2=fopen("libro.txt", "r"); for(i=0 ; fread( amp libro[i], tamaño de (estructura libro), 1, fp2)!=0 )
{
fwrite(y libro[i], tamaño de (estructura) book), 1, fp); /*Escribe el archivo temporal*/
}
fclose(fp);
fclose(fp2 ); /p>
fopen("bookl.txt", "w"); /*Borrar archivos temporales*/
fclose(fp2);
printf( "Después de regresar el libro, presione cualquier tecla para regresar\n");
getch();
devolver 1;
}
}
printf("No has tomado prestado ese libro, ninguna clave regresa\n"); /*Mensaje de error*/
fclose(fp); > getch();
return 0;
}
}
printf("El sistema no tiene dicha tarjeta, y el contacto del administrador, presione cualquier tecla para regresar\n"); /*Mensaje de error*/
fclose(fp);
getch();
} p>
findbook()
{
ARCHIVO *fp
char nombre del libro[10]; >int ture, i;
fp=fopen("book.txt", "r");
printf("Ingrese el título del libro que está buscando\ n");
scanf("s", nombre del libro);
for(i=0; fread(amp; libro[i], sizeof(struct book), 1, fp)!=0; i )
{
if(strcmp(nombre del libro, libro[i].nombre del libro)==0)
{ p>
if( libro[i].turefalse==1)
{
printf("Los detalles de este libro son: d s s Este libro no está marcado actualmente\nPresione cualquier tecla para regresar\n", libro[i].booknum, libro[i].bookname, libro[i].bookcreat ); p>
}
else {printf("Este libro ha sido prestado\n"); fclose(fp); return 0;}
fclose( fp); /p>
return FALSE;
}
}
printf("No hay ningún libro que desee consultar\n"); p>
fclose(fp);
devuelve FALSO
}
findbook1()
{
p>
ARCHIVO *fp;
char bookcreat[10];
int tura, i
fp=fopen("libro .txt" , "r");
printf("Ingrese el nombre del autor que está buscando\n");
scanf("s", bookcreat) ;
for(i=0;fread(amp;book[i],sizeof(struct book),1,fp)!=0;i)
{
if( strcmp(bookcreat,book[i].bookcreat)==0)
{
if(book[i].turefalse==1) p>
{
printf("Los detalles de este libro son: d s s Este libro no está marcado actualmente\nPresione cualquier tecla para regresar\n", libro[i].booknum, libro[i] .bookname, libro [i].bookcreat);
}
else {printf("Este libro ha sido prestado\n");
p>fclose(fp);
devuelve FALSO
}
}
printf(" Nada que quieras consultar libros\n");
fclose(fp);
return FALSE;
}
lendcount( )
{
ARCHIVO *fp;
int i, n=0;
fp=fopen("record.txt" , "r" );
for(i=0; fread(amp; estudiante[i], sizeof(struct estudiante), 1, fp)!=0; i )
{ p>
printf("Número de tarjeta: d libro prestado: s\n", estudiante[i].carnum, estudiante[i].lendbook
n=n 1); ;
n=n 1;
p>
}
fclose(fp);
printf("Actualmente * ** hay d libros en préstamo\n", n);
printf("Presione cualquier tecla\n");
getch();
return n;
}
chabook()
{
char ch5
hacer;
{
printf("---------------¡Bienvenido al sistema de consulta de libros!---------- ---\n");
printf(" 1: lt; buscar por título del libro; \n");
printf(" 2: lt; buscar por autor gt ;\n");
printf(" 0:lt; return gt;\n");
printf("¡Ingrese 0--2, otras entradas son ilegales! \n");
scanf("s",amp;ch5);
cambiar(ch5)
{
caso '1': buscar libro(); getch(); romper;
caso '2': buscar libro1(); romper
caso '0';
predeterminado: printf("No existe tal operación\n"); getch();
}
} while(ch5!='0'
devuelve FALSO
}
lendbook()
{
ARCHIVO *fp, * fp2;
int i, n;
int carnum;
printf("Ingrese su número de tarjeta\n"); >scanf("d", y carnum);
fp=fopen("car.txt", "r");
for(i=0; fread( y ; coche[i], tamaño de(estructura coche), 1, fp)!=0; i )
{
if(car[i].carnum==carnum)
{
n=i;
fclose(fp);
printf("Ingrese el nombre del libro que desea pedir prestado \n");
scanf("s", estudiante[n].lendbook);
fp=fopen("book.txt", "r");
p>
for(i=0;fread(amp;book[i],sizeof(struct book),1,fp)!=0;i)
{
if(strcmp(libro[i].nombredellibro, estudiante[n].lendbook)==0)
{
if(libro[i] .turefalse==0) {printf("Lo siento, este libro está prestado, por favor tome prestados otros libros\n"); fclose(fp); getch();
fclose( fp);
fp=fopen("record.txt", "a ");
um=carnum;
fwrite(amp; estudiante[n], sizeof(struct estudiante), 1, fp>
fclose(fp); fp=fopen("libro.txt", "r");
fp2=fopen("libro.txt", "w"); fread(amp;libro[i],sizeof(struct book),1,fp)!=0;i)
{
if(strcmp(libro[i].nombredellibro , estudiante[n].lendbook)==0)
{
libro[i].turefalse=0
fwrite(amp;book[i; ], tamaño de (libro de estructuras), 1, fp2);
continuar
}
fwrite(amp; libro[i], tamaño de (libro de estructuras) ), 1, fp2);
}
fclose(fp);
fclose(fp2); "libro.txt", "w");
fp2=fopen("libro.txt", "r");
for(i=0; fread(amp; libro[i], tamaño de(estructura libro), 1, fp2)!=0; i )
{
fwrite(amp; libro[i], tamaño de(estructura libro) , 1, fp);
}
fclose(fp);
fclose(fp2); txt", "w");
fclose(fp2);
printf("El préstamo está completo, presione cualquier tecla para regresar\n");
getch();
return;
}
}
printf("No existe tal libro, cualquier clave devuelve\n ");
fclose(fp);
getch();
retorno;
}
}
printf("Su número de tarjeta no existe, solicite una nueva tarjeta, presione cualquier tecla para regresar\n"); >
getch();
}
carcount()
{
ARCHIVO *fp; p>int i , n=0;
fp=fopen("car.txt","r");
for(i=0;fre
ad(amp; car[i], sizeof(struct car), 1, fp)!=0; i )
{
printf("La tarjeta dth lt; número de tarjeta :d Nombre: s Clase: dgt;\n", i 1, coche[i].carnum, coche[i].nombreestudiante, coche[i].claseestudiante);
n=n 1;
}
fclose(fp);
printf("Actualmente *** hay d libros\n", n); p>printf("Presione cualquier tecla\n");
getch();
}
delcar()
{
ARCHIVO *fp, *fp2;
int i;
int carnum; >fp=fopen("car.txt", "r");
fp2=fopen("bookl.txt", "w");
printf("Por favor, ingrese El número de tarjeta que desea eliminar\n");
printf("¡Si el número de tarjeta que ingresó existe, el sistema eliminará automáticamente la información! Si no existe, el sistema no realizará ninguna cambios\n");
scanf("d", amp; carnum);
for(i=0; fread(amp; car[i], sizeof(struct car ), 1, fp)!=0 ; i )
{
if(car[i].carnum!=carnum)
{
fwrite(amp; auto [i], sizeof(struct car), 1, fp2
}
}
fclose(fp); );
fclose(fp2);
printf("¿Realmente desea eliminar la tarjeta? Después de la eliminación, no se puede recuperar toda la información del libro "Y/N". \n");
scanf("s",amp;choice);
if(choice=='y'||choice=='Y')
{
fp=fopen("car.txt", "w");
fp2=fopen("libro.txt", "r"); /p>
for(i=0; fread(amp; car[i], sizeof(struct car), 1, fp2)!=0; i )
{
fwrite(amp; coche[i], tamaño de (estructura coche), 1, fp
}
fclose(fp> fclose); (fp2);
fp2 =fopen("bookl.txt", "w");
fclose(fp2);
printf("Presione cualquier clave para regresar\n");
getch();
regresar;
}
else
{
printf("Presione cualquier tecla devuelve\n");
getch();
retorno
}
}
addcar()
{
ARCHIVO *fp;
int i=0;
fp=fopen("car.txt", "a "); ("Ingrese el número de tarjeta\n");
scanf("d", amp; car[i].carnum
printf("Ingrese el nombre del estudiante); \n" n");
scanf("s", car[i].studentname);
printf("Por favor, ingrese la clase\n"); >
scanf("d", auto[i].studentclass);
fwrite(car[i], sizeof(struct car), 1, fp>); fclose(fp);
printf("Ingreso completado, cualquier clave devuelve\n");