Colección de códigos de biblioteca de gestión de libros
# incluir & ltstring.h & gt
# incluir & ltconio.h & gt
# incluir & ltstdlib. h & gt
# include & ltctype.h & gt
#define STACK_INIT_SIZE 10
#define OK 1
#define true 1
#Definición falsa 0
#Error de definición 0
Estructura estudiante/* define el tipo de estudiante, utilizado para almacenar libros prestados*/ p>
{
int carnum
char lend book[10];
}estudiante[1000];
Estructura Empleado/ *Definir tipo de empleado*/
{
int empleadonum
char nombre de empleo[15];
int empleo
p>char empleadoex[2];
char emplear nivel[10];
long int empleatage
}employ[50]; p>
p>
Estructura del libro /*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 es prestado*/
} libro [1000];
Struct car /*Tipo de datos de la tarjeta de la biblioteca*/
{
int carnum
char nombre del estudiante[ 10];
int Studentclass
}Che[100];
Huanbook() /*función de retorno*/
{
ARCHIVO *fp, *fp2/* definen 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[i], sizeof(struct car), 1, fp)! =0;I++) /*Bucle For para determinar si el número de tarjeta existe*/
{
If (car[i].carnum==carnum) /* El número de tarjeta existe, el próximo ciclo*/
{
n = I;
fclose(FP);
Printf( "Por favor ingrese su El nombre del libro a devolver \ n ");
scanf("%s ", prestar libro
fp=fopen("record.txt); ", " r ");
for(I = 0; Fred(& amp estudiante[i], sizeof(estructura estudiante), 1, fp)!=0;I++) /*Determinar si el el libro ingresado ha sido prestado* /
{
If (strcmp (estudiante [I]).
Lendbook, Lendbook) = = 0)/*Pedir prestados libros e ingresar al 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[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(& estudiante[i], sizeof(struct estudiante), 1, fp2 /*Escribir un registro de libros no devueltos*/
}
fclose( FP);
fclose(fp2);
fp=fopen("record.txt "," w ");
fp2=fopen( "libro .txt", "r");
for(I = 0; fred(& estudiante[i],sizeof(struct estudiante),1,fp2)!=0;i++ )
{
fwrite(& amp; estudiante[i], sizeof(estructura estudiante), 1, FP /*Escribir información del registro de préstamo de libros*/
}
fclose(FP);
fclose(fp2);
fopen("bookl.txt ", " w ");/ *Borrar el registro de archivos temporales*/
fclose(fp2);
fp=fopen("book.txt "," r ");
fp2 =fopen(" bookl.txt", "w");
for(I = 0; fred(& ampbook[i], sizeof(estructura libro), 1, fp)!=0 ;I++) /*Escribir registros del libro a archivos temporales para evitar que los registros anteriores sean destruidos por la información de modificación*/
{
If (i==n)
{
Libro[i].
ture false = 1;
fwrite(& book[i], sizeof(struct book), 1, fp2 /*Establece el estado original del libro devuelto en sin marcar*/ p><); p>Continuar;
}
fwrite(& book[i], sizeof(struct book), 1, fp2);
}
fclose(FP);
fclose(fp2);
fp=fopen("libro.txt", "w");
fp2 =fopen("bookl.txt", "r");
for(I = 0; fred(& ampbook[i], sizeof(estructura libro), 1, fp2)! =0;i++ )
{
fwrite(& book[i], sizeof(struct book), 1, FP /*Escribe el archivo temporal Return */
}
fclose(FP);
fclose(fp2);
fopen("bookl.txt ", " w "); documentos*/
fclose(fp2);
Printf("Devuelva el libro, presione cualquier tecla para regresar\ n ");
getch();
Return 1;
}
}
Printf("No tomaste prestado ese libro, presiona cualquier tecla para regresar \ n "); /*Mensaje de error*/
fclose(FP);
getch();
Devuelve 0;
fclose(FP);
Devuelve 0;
p>
}
}
Printf("Esta tarjeta no existen en el sistema, comuníquese con el administrador y presione cualquier tecla para regresar\n "); /*Mensaje de error*/
fclose(FP);
getch();
}
findbook()
{
ARCHIVO * fp
char nombre del libro[10]; p>
int ture, i;
fp=fopen("book.txt " , " r ");
Printf("Ingrese el título del libro que desea están buscando\ n ");
scanf("%s ", nombre del libro);
for(I = 0; fred(& ampbook[i], sizeof(estructura libro), 1, fp)! =0;i++)
{
if(strcmp(nombre del libro, libro[i]).Nombre del libro)==0)
{
If (book[i].turefalse==1)
{
Printf("Los detalles de este libro son: %d %s %sthis El libro tiene no ha sido prestado\nPresione cualquier tecla para regresar\n ", Libro [i]. Número de libro, Libro [i]. Nombre del libro, Libro [i].
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
}
findbook1()
{< / p>
ARCHIVO * fp
char libro creat[10];
int tura, i;
fp=fopen("book.txt " , " r ");
Printf("Ingrese el nombre del autor que está buscando \ n ");
scanf("%s ", bookcreat);
for(I = 0; fred(&book[i],sizeof(libro de estructura),1,fp)!=0;i++)
{
if(strcmp(bookcreat,libro[i]).bookcreat)==0)
{
if (libro[i].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 [i]. Booknum, Libro[i]. Nombre del libro, libro[i].bookcreat);
}
Else {printf("Este libro ha sido prestado\n"); ); devolver 0;}
fclose(FP);
Devolver FALSO
}
}
Printf("No hay ningún libro que desee consultar\n ");
fclose(FP);
Devuelve FALSE
}
lendcount()
{
ARCHIVO * fp
int i, n = 0;
fp=fopen("registro .txt "," r ");
for(I = 0; fred(& estudiante[i], sizeof(struct estudiante), 1, fp)!=0;i++)
{
Printf("Libro con número de tarjeta %d: % s \ n ", estudiante [i]. Kanum, estudiante [yo].
prestar libro);
n = n+1;
}
fclose(FP);
Printf ("* *Actualmente Se ha prestado %d libro\n ", n);
Printf("Presione cualquier tecla\n ");
getch();
Volver n;
}
charbuck()
{
char ch5
Hacer
p >{
Printf (" -¡Bienvenido al sistema de consulta de libros! -\ n "
printf(" 1:& lt; Buscar por título> \ n); ");
printf(" 2:& lt;Buscar por autor> \n ");
printf(" 0:& lt;Volver a > \n ");
Printf("¡Ingrese 0-2, otras entradas son ilegales! \ n "
scanf("%s ", & ampch5
Cambiar (ch5)
{
caso ' 1 ': buscar libro(); getch();
Caso "2": buscar libro 1; (); getch(); break;
Caso "0": break;
Valor predeterminado: printf ("No existe tal operación\n ");
}
} while(ch5!='0');
Devuelve FALSO
}
lendbook()
{
ARCHIVO *fp, * fp2
int i, n;
int carnum
Printf("Ingrese su número de tarjeta\ n ");
scanf("%d ", & ampcarnum);
fp=fopen("car.txt ", " r ");
for(I = 0; fred(& ampcar[i], sizeof(struct car), 1, fp)!=0;i++)
{
Si (coche [I]. Número de tarjeta = = número de tarjeta)
{
n = I;
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[i], sizeof(estructura libro), 1,fp)! =0;i++)
{
if(strcmp(libro[i]).Título del libro, estudiante[n].lendbook)==0)
{
if (libro[i]. true false == 0){ printf("Lo siento, este libro ha sido prestado, por favor tome prestado otros libros\n "); ); retorno; }
Otros
fclose(FP);
fp=fopen("record.txt", "a+");
fclose(FP); p>
Estudiantes.
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[i],sizeof(estructura libro),1,fp)!=0;i++)
{
if(strcmp(book[i]) .Título del libro, estudiante [n]. lendbook)==0)
{
Libro[i].
ture false = 0;
fwrite(& libro[i], sizeof(struct book), 1, fp2;
Continuar
}
p>
fwrite(& libro[i],sizeof(struct book),1,fp2);
}
fclose(FP);
p>
fclose(fp2);
fp=fopen("libro.txt "," w ");
fp2=fopen("libro.txt ", " r ");
for(I = 0; fred(& ampbook[i], sizeof(libro de estructura), 1, fp2)!=0;i++)
{
fwrite(& libro[i],sizeof(struct book),1,FP);
}
fclose(FP);
fclose(fp2);
fopen("libro.txt ", " w ");
fclose(fp2);
Printf(" Presione cualquier tecla para regresar después de tomar prestado el libro\n ");
getch();
Volver;
}
}
Printf("No existe tal libro, presione cualquier tecla para regresar\n ");
fclose(FP);
getch();
getch();
p>
Retorno;
}
}
Printf(" Su número de tarjeta no existe, solicite una nueva tarjeta, presione cualquier tecla para regresar\n ");
fclose(FP);
getch();
}
Recuento de coches()
{
ARCHIVO * fp
int i, n = 0 ; p>
fp=fopen("car.txt "," r ");
for(I = 0; fred(&car[i],sizeof(struct car),1,fp) !=0;i++)
{
Printf("Tarjeta %d
n = n+1;
} p>
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 ") ;
Printf("Si el número de tarjeta que ingresó existe, la información del sistema se eliminará automáticamente. Si no existe, el sistema no realizará ningún cambio \n ");
scanf("%d ", & ampcarnum);
for(I = 0; fred ( &car[i],sizeof(struct car),1,fp)!=0;i++)
{
if (car[i].canum.
=carnum)
{
fwrite(& amp; car[i], sizeof(struct car), 1, fp2
}
}
fclose(FP);
fclose(fp2);
Printf("¿Está seguro de que desea eliminar esta tarjeta? Después eliminación, toda la información de este libro no se puede restaurar a Y/N \ N");
scanf("%s ", & amp select);
if(choice= ='y' ||choice=='Y ')
{
fp=fopen("car.txt "," w ");
fp2=fopen( "bookl.txt", "r");
for(I = 0; fred(&cars[i],sizeof(struct cars),1,fp2)!=0;i++ )
{
fwrite(& coche[i], tamaño de(estructura coche), 1, FP
}
<); p>fclose(FP);fclose(fp2);
fp2=fopen("bookl.txt", "w");
fclose( fp2);
Printf("Presione cualquier tecla para regresar \ n ");
getch();
Regresar; }
Otros
{
Printf("Presione cualquier tecla para regresar\ n "); p>
Regresar;
}
}
addcar()
{
ARCHIVO * fp
int I = 0;
fp=fopen("car.txt","a+");
Printf("Por favor, introduzca el número de tarjeta \n") ;
scanf("%d ",& car[i].carnum);
Printf("Por favor, introduzca el nombre del estudiante\n"); p>
scanf("%s ", auto[i].nombre del estudiante);
Printf("Por favor ingrese la clase\n ");
scanf(" %d ",& amp car[i].clase de estudiante);
fwrite(& amp;car[i],sizeof(struct car),1,FP);
fclose(FP);
Printf("Después de la entrada, cualquier clave devolverá \n ");
getch();