# include & ltstdio.h & gt
# include & ltstring.h & gt
# include & ltconio.h & gt
# incluir & ltstdlib.h & gt
# incluir & ltctype.h & gt
#define STACK_INIT_SIZE 10
# Definir OK 1
#definir verdadero 1
#definir falso 0
#definir error 0
Estructura estudiante/* define estudiante Tipo, utilizado para almacenar libros prestados*/
{
int carnum
char lend book[10];
} estudiantes[ 1000];
Estructura empleado/*definir tipo de empleado*/
{
int empleadonum
char nombre de empleo[15];
int empleo
char empleadoex[2];
char emplear nivel[10];
largo int empleo
p>}Empleo[50];
Libro de estructura /*define el tipo de libro*/
{
int booknum
char bookname[10];
char book creat[10];
int turefalse/*Condiciones para que el módulo de préstamo de libros determine si un libro se toma prestado*/
} book[1000];
Struct car /*tipo de datos de la tarjeta de biblioteca*/
{
int carnum
char nombre del estudiante[10];
int Studentclass
}char[100];
Huanbook() /*función de retorno*/< / p>
{
ARCHIVO *fp, *fp2/*define dos punteros de archivo.
fp2 se utiliza para crear archivos temporales al modificar datos para evitar que se dañen*/
int i, n;
int carnum
char lend book[ 10 ];
Printf("Ingrese su número de tarjeta\ n ");
scanf("%d ", & ampcarnum
fp=); fopen ("car.txt", "r");/*Leer el registro del número de tarjeta*/
for(I = 0; fred(& ampcar, sizeof(struct car), 1, fp) ! =0;I++) /*Bucle For para determinar si el número de tarjeta existe*/
{
If (car.carnum==carnum) /*El número de tarjeta existe, y el siguiente ciclo* /
{
n = I
fclose(FP);
Printf("Por favor, ingrese el nombre del libro que desea devolver \ n ");
scanf("%s ",prestar libro);
fp=fopen("record.txt "," r " );
for(I = 0;Fred(& amp Student,sizeof(struct Student),1,fp)!=0;I++) /*Determinar si el libro ingresado ha sido prestado*/
{
Si (strcmp(student.
Lendbook, Lendbook) = = 0)/*Los libros prestados entrarán en el siguiente ciclo; de lo contrario, se mostrará un error*/
{
fclose(FP);
fp=fopen("record.txt "," r ");
fp2=fopen("bookl.txt "," w ");
for(I = 0; fred(& estudiante,sizeof(struct estudiante),1,fp)!=0;i++)
{
if(strcmp(student.lendbook,lendbook)= =0)
{
Continuar; /*Eliminar el registro de préstamo del libro devuelto*/
}
fwrite(& amp; estudiante, sizeof(struct Student), 1, fp2 /*Escribe un registro de los libros que no han sido devueltos*/
}
fclose(FP);
fclose(fp2);
fp=fopen("record.txt "," w ");
fp2=fopen("libro.txt ", " r ") ;
for(I = 0; fred(& estudiante,sizeof(struct estudiante),1,fp2)!=0;i++)
{
fwrite(& amp; estudiante, sizeof(struct estudiante), 1, FP /*Escribe la información del registro de préstamo de libros*/
}
fclose(FP); ) ;
fclose(fp2);
fopen("bookl.txt ", " w "); /*Borrar registros de archivos temporales*/
fclose (fp2);
fp=fopen("libro.txt "," r ");
fp2=fopen("libro.txt "," w "); p>
p>
for(I = 0; fred(& ampbook, sizeof(struct book), 1, fp)! = 0; I++) /*Escribe el registro del libro en un archivo temporal para evitar que registro anterior de ser Modificar destrucción de información*/
{
If (i==n)
{
libro verdadero falso. = 1;
fwrite(& book, sizeof(struct book), 1, fp2 /*Establece el estado original del libro devuelto como no prestado*/
Continuar;
p>}
fwrite(& libro,sizeof(struct book),1,fp2);
}
fclose(FP ) ;
fclose(fp2);
fp=fopen("book.txt "," w ");
fp2=fopen("bookl. txt "," r ");
for(I = 0; fred(& ampbook, sizeof(libro de estructura), 1, fp2)! =0;i++)
{
fwrite(& book, sizeof(struct book), 1, FP /*Vuelve a escribir el archivo temporal*/
<); p>}fclose(FP);
fclose(fp2);
fopen("bookl.txt ", " w ");/ *Borrar documentos temporales*/
fclose(fp2);
Printf("Devuelva el libro, presione cualquier tecla para regresar\n ");
g
etch();
Return 1;
}
}
Printf("No tomaste prestado ese libro, presiona cualquier clave Retorno\n "); /*Mensaje de error*/
fclose(FP);
getch();
Devuelve 0;
}
}
Printf("Esta tarjeta no existe en el sistema, comuníquese con el administrador y presione cualquier tecla para regresar\n "); */
fclose(FP);
getch();
}
findbook()
{
ARCHIVO * fp
char bookname[10];
int tura, 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; fred(&book,sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp (nombre del libro, libro.nombre del libro)==0)
{
if (book.turefalse==1)
{
Printf("La información detallada de este libro es: %d %s %sEste libro no ha sido prestado\nPresione cualquier tecla para regresar\n", libro. booknum, libro. Título del libro, libro. bookcreat); / p>
}
Else {printf("Este libro ha sido prestado\n "); fclose(FP); retorno 0;}
fclose(FP);
Devuelve FALSE
}
}
Printf("No hay ningún libro que quieras consultar\ n "); p>
fclose(FP);
Devolver FALSO
}
findbook1()
{
ARCHIVO * fp
char book creat[10];
int ture,i;
fp=fopen("book.txt","r ") ;
Printf("Ingrese el nombre del autor que está buscando \ n ");
scanf("%s ", bookcreat);
for (I = 0; fred(& ampbook, sizeof(struct book), 1, fp)! =0;i++)
{
if(strcmp(bookcreat, book.bookcreat)==0)
{
si (book.turefalse==1)
{
Printf("La información detallada de este libro es: %d %s %sEste libro no ha sido prestado\nPresione Cualquier tecla regresa \n ",libro.numerodellibro,libro.títulodellibro,libro.
bookcreat);
}
Else {printf("Este libro ha sido prestado\n "); fclose(FP);}
fclose; (FP);
Return FALSE
}
}
Printf("No hay ningún libro que quieras consultar\n " ) ;
fclose(FP);
Devolver FALSO
}
lendcount()
{< / p>
ARCHIVO * fp
int i, n = 0
fp=fopen("record.txt ", " r "); p >for(I = 0; fred(& estudiante,sizeof(struct estudiante),1,fp)!=0;i++)
{
Printf("número de tarjeta: %d libro:% s \ n ", estudiante. Kanan, estudiante. prestar libro);
n = n+1;
}
fclose( FP);
Printf ("* *Actualmente se ha prestado %d libro\n ", n);
Printf("Presione cualquier tecla\n "); p>
get();
return n;
}
chubuq()
{
char ch5
Do
{
Printf (" -¡Bienvenido al sistema de consulta de libros! -\ n ");
printf(" 1:<Buscar por título>\n");
printf("2:<Buscar por autor>\n");
printf(" 0:& lt; Volver a > \ n ");
Printf("¡Ingrese 0-2, otra entrada es ilegal!\ n ");
scanf("% s ", & ampch5);
Cambiar (ch5)
{
caso ' 1 ':buscar libro(); getch( ); romper;
Caso "2": findbook 1(); getch(); break;
Caso "0": break
Valor predeterminado: printf("No; dicha operación\n "); getch(); break;
}
} while(ch5!='0');
Devuelve FALSO p>
}
lendbook()
{
ARCHIVO *fp, *fp2
int i, n <; /p>
int carnum
Printf("Ingrese su número de tarjeta\ n "
scanf("%d ", & ampcarnum );
fp=fopen("car.txt", "r");
for(I = 0; fred(& ampcar, sizeof(struct car), 1, fp)! =0;i++)
{
if(car.carnum==carnum)
{
n = I; p> p>
fclose(FP);
Printf("Ingrese el nombre del libro que desea pedir prestado\ n ");
scanf("%s ", estudiante[n].
prestar libro);
fp=fopen("book.txt ", " r ");
for(I = 0; fred(& ampbook, sizeof(struct book), 1, fp)! =0;i++)
{
if(strcmp(libro.nombredellibro, estudiante[n]).lendbook)==0)
{
If(book.turefalse==0) {printf("Lo siento, este libro ha sido prestado, por favor tome prestado otros libros\n "); ;}
Otros
fclose(FP);
fp=fopen("record.txt"," a+");
Estudiante. carnum = carnum
fwrite(& estudiante[n], sizeof(estructura estudiante), 1, FP
fclose(FP); fopen("libro.txt ", " r ");
fp2=fopen("libro.txt ", " w ");
for(I = 0; fred( &book,sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(book.bookname,student[n]).
lendbook)==0)
{
libro . verdadero falso = 0
fwrite(& libro, tamaño de (estructura libro), 1, fp2)
Continuar;
}
fwrite(& libro, tamaño de(estructura libro), 1, fp2; /p>
fclose(FP);
fclose(fp2);
fp=fopen("book.txt", "w");
fp2=fopen("bookl.txt", "r");
for(I = 0; fred(& ampbook, sizeof(estructura libro), 1, fp2 )! =0;i++ )
{
fwrite(& libro, tamaño de(estructura libro), 1, FP);
} p>
fclose(FP );
fclose(fp2);
fopen("bookl.txt", "w");
fclose (fp2);
Printf("Presione cualquier tecla para regresar después de tomar prestado el libro\n ");
getch()
Regresar
} p>
}
Printf("No existe tal libro, presione cualquier tecla para regresar\n ");
fclose(FP);
p>getch();
Return;
}
}
Printf("Su número de tarjeta no existe, por favor solicite una nueva tarjeta y presione cualquier tecla para regresar\n ");
fclose(FP);
getch();
}
Recuento de coches()
{
ARCHIVO * fp
int i, n = 0;
fp=fopen (" car.txt "," r ");
for(I = 0; fred(& ampcar, sizeof(struct car), 1, fp)!=0;i++)
{
Printf("Tarjeta %d
n = n+1;
}
fclose(FP);
Printf("Actualmente * * *hay %d libros\n ", n
Printf("Presione cualquier tecla\n "); >getch();
}
delkar()
{
ARCHIVO *fp, *fp2
int I;
int carnum
selección de caracteres;
fp=fopen("car.txt", "r");
fp2=fopen("bookl.txt ", " w ");
Printf("Ingrese el número de tarjeta que desea eliminar \ n "); " Si el número de tarjeta que ingresó existe, ¡el sistema eliminará automáticamente la información! Si no existe, el sistema no realizará ningún cambio \n ");
scanf("%d ", & ampcarnum);
for(I = 0; fred ( &car,sizeof(struct car),1,fp)!=0;i++)
{
if(car.carnum!=carnum)
{
fwrite(& amp; coche, tamaño de(estructura coche), 1, fp2
}
p>
}
fclose(FP);
fclose(fp2);
Printf("¿Está seguro de que desea eliminar esta tarjeta? Eliminar Después de eso, toda la información de este libro no se puede restaurar a Y/N \ N");
scanf("%s ", & amp select);
if( elección=='y '||choice=='Y ')
{
fp=fopen("car.txt "," w ");
fp2=fopen ("bookl.txt","r");
for(I = 0; fred(& auto,sizeof(struct auto),1,fp2)!=0;i++ )
{
fwrite(& coche, tamaño de(estructura coche), 1, FP
}
fclose(FP);
fclose(fp2);
fp2=fopen("libro.txt ", " w "); p> p>
Printf("Presione cualquier tecla para regresar \ n ");
getch()
Regresar
} p>
Otro
{
Printf("Presione cualquier tecla para regresar\n ");
getch();
Regresar
}
}
addcar()
{
ARCHIVO * fp p>
int I = 0;
fp=fopen("car.txt "," a+");
Printf("Por favor, introduzca el número de tarjeta\ n " );
scanf("%d ", & ampcar . carnum);
Printf("Ingrese el nombre del estudiante\ n "); ("%s ", auto . nombre del estudiante);
Printf("Por favor ingrese la clase \ n "
scanf("%d ",& ampcar . clase de estudiante); );
fwrite(& car, sizeof(struct car), 1, FP
fclose(FP);
Printf("Después de la entrada, se devolverá cualquier clave\n ");
getch();
}