Escribir un programa para establecer un sistema de gestión de bibliotecas usando C++

[Respuesta recomendada a esta pregunta]

# 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>

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

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

}

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>

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

}

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

}

}

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

}

Otro

{

Printf("Presione cualquier tecla para regresar\n ");

getch();

Regresar

}

}

addcar()

{

ARCHIVO * fp

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

}