# incluir ltfstream gt
# incluir ltconio.h gt
Uso del espacio de nombres std
Clase bibliotecario //Bibliotecario clase
{
Público:
Bibliotecario();
Bibliotecario(int n, int j, char na[20], int w);
int get número();
int getjobage();
char * getname();
int obtener salarios();
anular restablecer jobage(int j);
anular restablecer salarios(int w);
anular restablecer nombre(char na[20 ]);
Privado:
número int;
int jobage
nombre char[20];
int salario;
};
Bibliotecario::Bibliotecario() //implementación de su función
{
Número = 0 ;
char b[20] = "Nadie"
trabajo = 0
strcpy(nombre, b);
}
Bibliotecario::Bibliotecario(int n, int j, char na[20], int w)
{
Número = n p>
trabajo = j;
stracpy(nombre, no aplicable);
Salario = w; int Librarian::getjobage()
{return jobage}
char *Librarian::getname()
{return name ;}
int Librarian::getnumber()
{Devolver número;}
int Librarian::getwages()
{Devolver salario;}
void Librarian::reset jobage(int j)
{
jobage = j;
} p>
void Librarian : restablecer nombre(char na[20])
{
strcpy(nombre, no aplicable);
}
void Librarian ::resetwages(int w)
{
Salario = w;
}
Clase Lector //Clase Lector
{
Privado:
número int;
edad int
nombre char[20];
char libro prestado[20];
Público:
lector();
lector (int c, int a, char b[20] , char e[20]);
int obtener número();
int getage();
char * getname();
char * getborrowbook();
anular el libro de préstamo de reelaboración (char a[20]);
};
Reader::reader() //implementación de su función
{
Char a[20]=" Nadie";
Char c[20] = "No se permiten préstamos de libros";
Número = 0;
Edad = 0;
}
lector::lector(int a, int c, char d[20], char e[20])
{
Número = a;
Edad = c;
strcpy(nombre, d
strcpy(libro de préstamo, e); /p>
int lector::obtener número(){ devolver número;}
int lector::getage(){ devolver edad;}
char * lector:: getname(){ devolver nombre;}
char * lector::getborrowbook(){ devolver libro de préstamo;}
void lector::reelaborar libro de préstamo(char a[20]){ strcpy(libro prestado, a);}
Estructura del libro //La estructura del libro
{
int num
char name[ 20];
char escritor[20];
};
voidobookinf()// Genera toda la información del libro.
{
int I;
ifstream infile("allbook.txt", IOs::in);
Cable de carga[ 50];
cout lt lt"título"
for(I = 1; i lt=10; i)
{
infile.getline(line, 50, '\n');
cout lt ltline lt ltendl
}
infile(); p>
p>
}
void serchlanif()//Función de información del bibliotecario
{
int n, I;
ifstream file(" serchlanif . txt ");
if(archivo){ archivo gtn; archivo }
else { cout lt; "No hay administrador de libros"; exit(0);}
ifstream is("controlloer.txt", ios_base::binary);
if(for)
{
Bibliotecario* A = nuevo bibliotecario[n];
for(I = 0;iltn;i)
{
es .read((char *) amp;A[i],sizeof(A[I]);
}
for(I = 0 ;i ltn; i )
{
cout lt lt"No"< lt\ t ' lt lt"Años de servicio"
cout lt ltA[ i]. ) lt; lt" \ t " lt lt. obtenertrabajo() lt" \ t " lt A[I].
obtener salarios() lt; ltendl
}
}
Otros
{
cout lt lt" Error al abrir el archivo de texto'"
}
es . close();
}
void biblioteca()//biblioteca Todo información
{
Sistema("cls");
Sistema(" color 2e");
cout lt lt " " " lt ltendl
cout lt lt" " " lt ltendl
cout lt lt" " " lt ltendl
cout lt lt" " nuestra biblioteca escolar Es compuesta por la biblioteca principal y la biblioteca del campus de Pengzhou, con una superficie total de * * * * metros cuadrados";
cout lt lt" (La biblioteca ahora cuenta con * * * 10.000 libros, * * * 10,000 libros , * * * Diez mil libros, * * * Diez mil libros * * * * * Diez mil libros),";
cout lt lt "* * * Nombre del personal de la biblioteca existente";
cout lt lt"El moderno equipo existente en la biblioteca vale * * * *más de diez mil yuanes..."< ltendl
}
Void storelibrarian() //Almacena la información del nuevo administrador.
{
Entero, n, número, salario;
nombre char[20];
archivo ifstream(" serchlanif . txt ");
if(archivo){ archivo gt; gtn; archivo . close();}
si no { n = 0;}
cout lt lt"Número de bibliotecarios existentes:";
cout lt ltn lt ltendl
cout lt Ingrese el número, años de servicio, nombre y salario del nuevo bibliotecario:
CIN gt; gtnum gt gtagegt gtnamegt gtsalary;
Bibliotecario A (número, edad, nombre, salario);
cout lt ltNúmero de personas, años de servicio, nombre y salario
cout lt lta . get number() lt; " " lt lta . getjobage() lt; lt" " " lt getname() lt; obtener salarios() lt; ltendl
de flujo de salida(" control loer . txt ", IOs_base::app
escribir((char *) & A,sizeof). (A));
outfile . close();
n;
de flujo tfile(" serchlanif . txt "); p>tfile lt ltn;
tfile . close();
cout lt lt" ¡Guardado correctamente! ";
}
Void reLaninf() //Modificar bibliotecario
{
int i, n, h, jobage,wage ,j;
nombre de char[20];
ifstream file(" serchlanif . txt ");
if(file){ file gt; file . close(); }
else { cout lt "Sin bibliotecario"
Salir(0); bibliotecarios existentes:";
cout lt ltn lt ltendl
Bibliotecario* A = Nuevo bibliotecario[n];
ifstream is("controlloer.txt", IOs_base::binary);
if(for)
{
for(I = 0 ;iltn;i)
{
es . read((char *) amp;A[i], sizeof(A[I]);
}
for(I = 0 ;i ltn;i)
{
cout lt ltNúmero de personas, años de servicio, nombre y salario
cout lt ltA[i]. () lt; lt" "" lt ltA[i].
getjobage() lt; lt" " " lt ltA[i]. getname() lt; lt" " " lt ltA[i]. obtener salarios() lt; ltendl
}
}
Otros
{
cout lt lt" Se produjo un error al abrir el archivo"
}
is . close();
cout lt lt"Seleccione el número de administrador que desea modificar: ";
CIN gt; gth;
cout lt ltIngrese la nueva duración del servicio, nombre y salario.
CIN gt; gtjobage gt gt nombre gt gt salario
A[h-1]. restablecer jobage(jobage);
A[h-1]. resetname(nombre);
A[h-1]. Salario;
cout lt lt"El nombre modificado de este administrador es:"
ofstream tfile("controlloer.txt", IOs_base::binary);
for(j = 0; j ltn; j )
{
tfile . write((char *) amp; A[j], sizeof(A[j] );
}
tfile . close();
}
void EAD book()//Agregar nuevo libro
{
int num nombre de carácter[12]; char escritor[10]; int n;
Respuesta:
ofstream fout("allbook . txt ",IOs::app);
cout lt lt"Ingrese la información del libro:"
cout lt lt"Título"
CIN gt; gt nombre; fout lt lt nombrelt lt\ t';
CIN gt; gtnumfout lt ltnum lt\ t';
CIN gtwriter; /p>
fout . close();
cout lt lt" ¿Continuar ingresando? 1. Sí 2.
No "
CIN gt; gtn;
Si (n==1)
Ir a;
Otro
{ void Studentland();
Student Land();}
}
Void delate() //Eliminar función
{ int m;
cout lt lt"Seleccione la opción de operación:"
cout lt lt"1. Eliminar toda la información"
cout lt lt "2. Eliminación única"
CIN gt;
If (m==1)
{ofstream file(" allbook.txt ", IOs ::trunc);
cout lt lt"¡Eliminar todo, presione cualquier tecla para regresar! " lt ltendl
archivo . close();
getch();
system("cls");
void Studentland ();
tierra estudiantil();
}
char str[10][80], buf[20];
Respuesta:
int i=0, flag=100, c = 0;
ifstream fin(" all book . txt ");
If ( ! fin){
cout lt lt"¡Error al abrir el archivo! " lt ltendl
getch();
System("cls");
void Studentland();
Tierra de estudiantes( );
}
cout lt lt"Ingrese el título del libro que desea eliminar:"
CIN gtbuf
strcat (buf, " \ t ");
while(fin.getline(str[i], 80))
{
if( strncmp(str [i], buf, strlen(buf))==0)
{
bandera = I;
}
i ;
}
fin . cerrar();
if(flag==100)
{
cout lt lt"¡No hay libros que quieras eliminar! Presione 1 nuevamente, de lo contrario 0..." int b; CIN gt; gtb; if(b==1) vaya a a ; else c = 1; } if(c==0){ de la secuencia fout(" all libro .txt "); for(int j = 0; j lti; j ){ if(j==flag)continue; fout lt ltstr[j] lt; ltendl } fout . cout lt "La información sobre el libro que desea eliminar tiene sido eliminado. Continúe presionando 1, de lo contrario presione 0..." int b; CIN gt; gtb; if(b==1) ir a a; } cout lt lt"La operación ha finalizado, presione cualquier tecla para regresar..."< ltendl getch(); system("cls"); void Studentland(); Student Land(); } Void searchbook() //Buscar libros { Respuesta: ifstream fin int flag=0, b, longitud; char string[20]; char f[200]; char g[200]; fin open(" todo el libro. . txt "); if(!fin) { cout lt lt"Error al abrir f1.dat....." lt ltendl Salir(1); } mientras(1) { cout lt ltPor favor, introduzca el título: "; CIN gt; gtstr strcat(str, "\t"); longitud = strlen(str); cout lt "-" lt; ltendl mientras(fin.getline(f, 199)) { strcpy(g, f ); if(strncmp(str, f, length)==0) { bandera = 1; Romper ; } } if(flag==1) { cout lt lt" El libro consultado ha sido encontrado: " cout lt lt"-" lt; ltendl cout lt lt"Title" cout lt ltg lt ltendl cout lt lt"-" lt; ltendl flag = 0; cout lt ltPara continuar con la consulta, presione 1; de lo contrario, presione 0 CIN gt; gtb; if(b = = 0)break } Otros { fin . close(); cout lt lt "Si no hay ningún libro, continúe presionando 1; de lo contrario, presione 0..." lt ltendl CIN gt; gtb; if(b = = 0)break; Ir a; } } p> fin . close( ); cout lt lt"Después de completar la consulta, presione cualquier tecla para regresar..."< ltendl getch(); Sistema ("cls" ); vacío tierra estudiantil(); tierra estudiantil() } void sea hreader()//consulta de lectura de información del dispositivo< /p> { Respuesta: ifstream fin int flag=0, b, length; cadena de caracteres [20]; char f[200]; char g[200]; fin . (!fin) { cout lt lt "¡No existe tal archivo de información!" p> } while(1) { cout lt lt"Ingrese el nombre del lector que está buscando:"; CIN gt; gtstr strcat(str, "\t"); longitud = strlen(str); cout lt lt " -" lt; ltendl mientras(fin.getline(f, 199)) { strcpy(g, f); if( strncmp(str, f, length)==0) { bandera = 1; Romper; } p> } if(flag==1) { cout lt lt"Lector de consulta encontrado:" cout lt lt"-" lt; ltendl cout lt lt"nombre" cout lt ltg lt ltendl cout lt lt" -" lt; ltendl flag = 0; cout lt ltPara continuar con la consulta, presione 1; de lo contrario, presione 0 CIN gtb; if(b = = 0)break; Ir a a; } Otros { fin . close(); cout lt lt "Si no existe tal persona, continúe presionando 1; de lo contrario, presione 0..." lt ltendl CIN gt; gtb; if(b = = 0)break; Ir a; } } fin . close(); cout lt lt"Una vez completada la consulta, presione cualquier tecla para regresar..."< ltendl getch (); system("cls"); void Studentland(); Student Land(); } / * void sea hreader()//Consultar información del lector { int i, b, h = 0 char; a[20]; p> ifstream file(" lector num. txt "); if(archivo){ archivo gtb; ; } else { cout lt lt"Sin archivo";} cout lt lt"Número de lectores existentes:"; cout lt ltb lt ltendl lector*A = nuevo lector[b]; ifstream es ("reader.txt", IOs_base::binary if (para) { for(I = 0;iltb;i) { es read((char * ) amp; A[i], tamaño de(A[I]); } } Otros { p> cout lt lt"Error al abrir el archivo txt" } es close(); cout lt lt"Ingrese su nombre del archivo. lector que se encontrará: "; CIN gt; gta; for(I = 0;iltb;i) { if(strcmp(A[i].getname(), a)==0) { cout lt lt"El número, la edad, el nombre y el estado del préstamo" < ltendl cout lt ltA[i]. get número() lt" " " lt ltA[i]. lt" " " lt ltA[ I].getname() lt" " " ltA[I].getborrowbook() lt; ltendl h } } if(h == 0) cout lt; lt "¡No existe tal lector!"; } */ Void Librarianland() //Función de inicio de sesión de administrador { int q, l=1, I, h; Sistema ("cls" Sistema(" color 2e "); cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltPara confirmar su identidad inmediatamente, ingrese su contraseña: CIN gt; gtme; Cuando (l) { Si (i==00000) { Sistema (" cls"); sistema("color3e"); cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt lt" | * * * * * * * " lt lt0, volver al menú anterior. < lt "* * * * * * * |" lt; ltendl cout lt lt" " " lt lt" | * * * * * * * " lt lt1, consultar información del bibliotecario p> cout lt lt" " " lt lt" | * * * * * * * " lt lt" 2. Almacene la nueva información del administrador. cout lt lt" " " lt lt" | * * * * * * * " lt lt"3. Modificar la información del bibliotecario" cout lt lt" " " lt lt " | * * * * * * * " lt lt" 4. Nuevo libro" cout lt lt" " " lt lt" | * * * * * * * " lt lt" 5. Eliminar libro " cout lt lt" Por favor seleccione la acción a realizar: "; CIN gt; gtq; if(q gt; = 0 amp ampq lt6 ) { Interruptor (q) { Caso 0: l = 0; /p> Pausa; Caso 1: serchlanif(); Sistema("pausa"); Pausa; Caso dos: bibliotecario de la tienda(); Sistema("pausa"); Caso tres: reLaninf(); Sistema("pausa" ) "); Pausa; Caso 4: anular un libro de anuncios(); aadbook(); Pausa; Caso 5: void delate(); delate(); Pausa; p > Valor predeterminado: Interrupción; } } Otro {< / p> system("cls"); system("color4e"); cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt lt"¡Operación no válida! " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl p> p> Sistema("pausa"); } } Otro { system("cls"); system(" color 2e "); cout lt lt" " " lt ltendl cout lt lt " " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt lt"Error de confirmación de identidad" cout lt lt " " " lt lt "¿Le gustaría confirmar nuevamente? " lt ltendl cout lt lt" " " lt lt"Presione 1 para reconfirmar, presione 0 para darse por vencido"< lt;endl cout lt lt" "; CIN gt; gth; si(h = = 0)l = 0; si (h==1) { Sistema("cls"); Sistema(" color 2e "); cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltPor favor, ingrese su contraseña nuevamente: "; CIN gtme; } } } } Void Studentland() //Función de inicio de sesión para estudiantes { int h ; char l = ' y while(l=='y ') { system("cls") ; System("color3e"); cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt lt"* * * * * * *" lt; lt|Para generar información de la biblioteca, presione 1 | cout lt lt" " " lt lt"* * * * * * *" lt; lt | Para buscar libros por título, presione 3 |. cout lt lt" " " lt lt"* * * * * * *" lt; lt | Para obtener información para los lectores, presione 4 |. cout lt lt" " " lt lt"* * * * * * *" lt; lt | Para regresar al menú anterior, presione 0 |. cout lt lt"Seleccione la acción que realizará:" CIN gt; If (h gt= 0 amp amph lt5) Interruptor (h) { Caso 0: l = ' n Romper; Caso 1: outbook INF(); Sistema("pausa"); Pausa; Caso 2: libary() ; System("pausa"); Pausa; Caso 3: buscar libro(); System("pausa " "); Pausa; Caso 4: sea hreader(); Sistema ("pausa"); } Otro { Sistema("cls"); Sistema("Color4e "); cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl p> p> cout lt lt" " lt lt"¡Su operación no es válida! !" } } Void main() //función principal { int h, l = 1; /p> Cuando(l) { system("cls"); system("color7c"); p> cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt lt"Sistema de gestión de biblioteca" cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt"-" lt; ltendl cout lt lt" " " lt lt" ||Por favor presione 1 | " " lt lt" |||Presione 2 || " cout lt lt" " " lt lt|||Para salir del sistema, presione 0 ||. cout lt lt"-" lt; ltendl cout lt lt" " " lt ltendl cout lt lt"Seleccione el método de inicio de sesión: "; CIN gt; gth; Si (h gt= 0 amp amph lt3) { Interruptor (h) p > { Caso 0: cout lt lt"¡Gracias por visitar nuestra biblioteca! " lt ltendl Salir(0); Caso 1: librarianland(); Sistema("pausa"); Pausa; Caso 2: tierra estudiantil(); Sistema("pausa"); Romper; } } Otro { Sistema("cls"); System("color4e"); cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt ltendl cout lt lt" " " lt lt"¡Su operación no es válida! ! ! !" lt ltendl Sistema("pausa"); } } } Libros Sistema de gestión de biblioteca