Escribir un sistema de gestión de bibliotecas en lenguaje C

#incluye

#incluye

#incluye

#incluye

#incluye

#define STACK_INIT_SIZE 10

#Definir OK 1

#Definir verdadero 1

#Definir falso 0

#Definir error 0

La estructura estudiante/* define el tipo de estudiante, utilizado para almacenar libros prestados*/

{

int carnum

char lend book[10];< / p>

}Estudiantes[1000];

Estructura Empleado/*Definir tipo de empleado*/

{

int empleadonum

char emplear nombre[15];

int empleo

char emplearex[2];

char emplear nivel[10];

long int empleatage

}Empleo[50];

Libro de estructura /*define el tipo de libro*/

{

int booknum

char bookname[10];

char book creat[10];

int turefalse/*El módulo de préstamo de libros determina si el libro se toma prestado Condiciones*/

} libro[1000];

Estructura coche /*tipo de datos de la tarjeta de biblioteca*/

{

int carnum

char nombre del estudiante[10];

int

}car[100];

Huanbook() /* Función de retorno */

{

FILE *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[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 un archivo temporal 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>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();

Regresar 1;

}

}

Printf("No tomaste prestado ese libro, presiona cualquier tecla para regresar\ n "); /*Mensaje de error*/

fclose(FP);

getch();

Devuelve 0;

fclose(FP);

Return 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];

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].truefalse==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);

}

Otros

fclose(FP);

Devuelve FALSO

}

}

Printf("No hay ningún libro que desee consultar\n ");

fclose(FP);

Devuelve FALSE

}

findbook1()

{

ARCHIVO * fp

char book creat[10];

p>

int tura, i;

fp=fopen("book.txt", "r");

Printf("Por favor ingresa el autor que buscas nombre\n ");

scanf("%s ", bookcreat);

for(I = 0; fred(& ampbook[i] , sizeof(estructura libro ), 1, fp)! =0;i)

{

if(strcmp(bookcreat, book[i]).bookcreat)==0)

{

If (libro[i].truefalse==1)

{

Printf("Los detalles de este libro son: %d %s %sEste libro no ha sido prestado\nPresione cualquier tecla para regresar\n ", Libro [i]. Booknum, Libro [i]. Título del libro, libro [i]. bookcreat);

}

Otro

fclose(FP);

devuelve FALSO

}

}

Printf("No hay ningún libro que desee consultar\n ");

fclose(FP);

Devuelve FALSE

}

lendcount()

{

ARCHIVO * fp

int i, n = 0;

fp=fopen( "record.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 [i].

prestar libro);

n = n 1;

}

fclose(FP);

Printf ("* *Actualmente prestar out %d libro\n ", n);

Printf("Presione cualquier tecla\n ");

getch();

Return n;

}

charbuck()

{

char ch5

hacer

{

Printf (" -¡Bienvenido al sistema de consulta de libros! -\ n ");

printf (" 1:\ n "); (" 2:\ n ");

printf(" 0:\ n "

Printf("¡Ingrese 0-2, otras entradas son ilegales! \ n "); );

scanf("%s ", & ampch5);

cambiar(ch5)

{

caso ' 1 ' : buscar libro(); getch(); roto;

Caso "2": buscar libro 1(); /p>

Valor predeterminado: printf("No existe tal operación\n "); getch();

}

} while(ch5! ='0'; );

Devuelve FALSO

}

lendbook()

{

ARCHIVO * fp, * fp2

int i, n;

int carnum

Printf("Por favor, introduzca su número de tarjeta\n ");

scanf( "%d",& ampcarnum);

fp=fopen("car.txt","r");

for(I = 0; frey de(&car[i ],sizeof(struct car),1,fp)!=0;i)

{

if(car[i].cardnumber==cardnumber )

{

n = I;

fclose(FP);

Printf("Ingrese el nombre del libro que desea tomar prestado\n ");

scanf("%s ", estudiante[n].prestar libro);

fp=fopen("libro.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].truefalse==0)

Otro

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( & ampbook[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();

Regresar;

}

}

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

fp=fopen("car.txt "," r ");

for(I = 0; fred(&car[i],sizeof(struct car),1,fp) !=0;i)

{

Printf ("card %d \ n ", I 1, auto [I]. Carnum, auto [I]. Nombre científico, auto [I].);

n = n 1;

}

fclose(FP);

Printf("Actualmente * * * hay %d libros\n ", n);

Printf("Presiona 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 su tarjeta para eliminarla\n ");

Printf("Si el número de tarjeta que ingresó existe, el sistema automáticamente borra la información! Si no existe, el sistema no realizará ningún cambio \n ");

scanf("%d ", & ampcarnum);

for(I = 0; fred ( & ampcar[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("Ingrese el nombre del estudiante\n");

scanf("%s ", auto[i].nombre del estudiante);

Printf("Por favor ingrese la clase\n ");

scanf(" %d ",& amp car[i].);

fwrite(& amp;car[i],sizeof(struct car),1,FP);

fclose( FP);

p>

Printf("Después de ingresar, cualquier clave devolverá \n "

getch();

}

;