Buscando un sistema de gestión de préstamo de libros escrito en lenguaje C

¡Por favor consúltelo!

Diseñar un sistema de gestión de información bibliotecaria. La información del libro incluye: número de libro, título del libro, nombre del autor, hora de publicación, precio, etc.

1. El sistema funciona en modo menú y requiere contraseña para iniciar sesión.

2. Función de entrada de información del libro (añadir datos).

3. Eliminar información del libro (eliminar datos).

4. Función de búsqueda de información del libro (búsqueda de información).

5. Eliminar información del libro (modificar datos).

6. Calcular y ordenar la información del libro. Calcule el precio total y el precio promedio de todos los libros (promedio, precisión simple, salida con un decimal) e imprima los elementos de la matriz que contienen todos los datos en orden del precio mayor al menor.

#incluye & ltstdio.h & gt

#incluye & ltstring.h & gt

#incluye & ltconio.h & gt

#incluye & ltstdlib.h & gt

#incluye & ltctype.h & gt

#define STACK_INIT_SIZE 10

#Definición OK 1

#Definir verdadero 1

#Definir falso 0

#Definir error 0

La estructura estudiante/* define el tipo de estudiante, utilizado para almacenar préstamo de libros*/

{

int carnum

char lend book[10];

}Estudiante[1000];

Estructura empleado/*definir tipo de empleado*/

{

int empleanum

char nombre de empleo[15];

int empleo

char empleadoex[2];

char emplear nivel[10];

largo int empleo

} Empleo [50];

Estructura 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 y devolución de libros determine si un libro es prestado*/

} libro [1000];

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

{

int carnum

char nombre del estudiante [10];

int Studentclass

}Coche [100]

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

{

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[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, próximo ciclo*/

{

n = I;

fclose(FP);

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

scanf("%s ", preste el libro

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

for(I = 0; fred(& estudiante[i], sizeof(struct estudiante), 1, fp)!=0;I++) / *Determinar si el libro ingresado ha sido prestado*/

{

If (strcmp (estudiante [I]). Lendbook, Lendbook) = = 0)/*Tomar prestado el libro, ingrese el siguiente paso Un bucle, de lo contrario se muestra un error*/

{

fclose(FP);

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

fp2=fopen("bookl.txt", "w");

for(I = 0; fred(& 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(& estudiante[i] ], 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[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("libro.txt "," r ");

fp2=fopen("libro.txt "," w ");

for(I = 0; fred(& ampbook[i], sizeof(libro de estructura), 1, fp)! =0;I++) /*Escribe registros del libro en 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>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].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"); ); devuelve 0;}

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("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 %d libro ha sido prestado\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();

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("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 ") ;

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");

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();

Fuente / question/79222926.html? si=5