# incluir ltiomanip gt
# incluir ltstring gt
# incluir ltfstream gt
# incluir ltstdio.
Usar espacio de nombres std
const int Maxb = 10000; //La mayoría de los libros
Libros del aula//libros
{
int tag; // Eliminar marca 1: Eliminado 0: No eliminado.
int número; //número ISBN
char nombre[20]; //título del libro
char autor[10]; jefe
char número 2[10]; //Versión
Posición del carácter[20]; //Presione
Tiempo de carga[20]; año p>
int precio; //Precio
int en el estante//Está en el estante No. 1: En el estante No. 0: ¿Prestado?
Público:
Libro() {}
char * getname(){ return name;}//Obtener el nombre
int get number(){ return number;}//Obtener el número ISBN
int gettag(){ return tag;}//Obtener la etiqueta de eliminación
char * getauthor( ){ return Author;}//Obtener el editor
char * get number 2(){ return number 2;}//Obtener el número de versión
char * get position() { return position;} //Obtener el editor
char * gettime(){ return time;}//Obtener el año de publicación
char getprice(){ return price;}/ /Obtener el precio del libro void del book(){ tag = 1;}//Eliminar libro
Void addbook (int n, char * na, char * au, char * N2, char * da, char * ti, int pr)/ /Agregar libros.
{
etiqueta = 0;
número = n;
precio = pr
strcpy(nombre) , no aplicable);
strcpy (autor, AU);
strcpy (número 2, N2); p>
strcpy(time, ti);
on Shelf = 1;
} void disp() //Libros de salida
{< / p>
cout lt ltsetw(10) lt; ltnumberlt ltsetw(10) lt; ltnamelt ltsetw(10)
lt ltsetw(10) lt; (10) lt; ltlocationlt ltsetw(10) lt; lttimelt ltsetw(10) lt; ltpricelt ltendl
}
} ;Base de datos tipo B//Clase de biblioteca
{
int top//Puntero de registro de libro
libro libro[Maxb];//Registro de libro
Público:
BDatabase() //Constructor, lee book.txt en book[].
{
libro b;
top =-1;
archivo fstream("libro.txt", IOs::in );
mientras (1)
{
archivo read((char *) amp; b, sizeof(b));
si (! archivo) se rompe;
arriba;
libro[top]= b;
}
archivo. close();
}
Nulo clear() //Eliminar todo
{
top =-1;
}
Intaddbook (int n, char * na, char * au, char * N2, char * da, char * ti, int pr) // Agregar libro.
{
libro * p = búsqueda 1(n);
if (p==NULL)
{
arriba;
Libro [arriba]. addbook(n, na, au, n2, da, ti, pr
Devuelve 1;
}
Devuelve 0; p>}
libro * buscar 1(intbookid)//Buscar libros.
{
for(int I = 0; i lt= topi)
if (libro[i].getnumber()= = bookid amp; amp
Libro[I].gettag()==0)
Devolver libro amp[I];
Devolver NULL
} book * search2 (int bookmark, char * name)//Buscar libros por título.
{
for(int I = 0; i lt= topi)
if(strcmp(libro[i]).
getname(), nombre)==0)
{bookid=libro[i]. get number(); ltbr gt devuelve amp libro[I]; ltbr gt}
devuelve NULL
} libro * búsqueda3 (int bookid, char * autor) // presiona editor Buscar libros.
{
for(int I = 0; i lt= topi)
if(strcmp(libro[i]).getauthor(),autor) ==0)
{bookid=libro[i]. get number(); ltbr gt devuelve amp book [I]; ltbr gt}
Devuelve NULL
} void book data() //Mantenimiento de la biblioteca
>Visualización no válida()
{
cout lt ltsetw(10) lt; lt"número de libro"
for(int I = 0; i lt= topi )
if (libro[i].gettag()==0)
libro[i]. disp();
}
~BDatabase() //Destructor, escribe libro[] en el archivo book.txt.
{
fstream file("book.txt", IOs::out);
for(int I = 0; ilt=topi)< / p>
if(libro[i].
gettag()==0)
archivo . write((char *) & libro[i], tamañode(libro[I]);
archivo . close();
}
};void BDatabase::bookdata()
{
int elección = 1;
int elección 2 = 1;
int elección 3 = 1;
int elección4
char bname[40];
Editor de caracteres [40];
char banci[40];
Posición de carga[40];
char año[40];
int valor;
int bookid
libro * b;
y (select!=0)
{
cout lt ltendl lt ltendl
cout lt lt"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" lt; ltendl
cout lt "* * * 1 más libro* * * *" lt; ltendl
cout lt lt"****tres libros eliminados ***"
cout lt lt"**** 4 libros para consultar***"
cout lt lt"**** 5 para mostrar este libro***"
cout lt lt"**** 6Eliminar todo * * * * *" lt; ltendl
cout lt lt"**** 7Préstamo de libros***"
cout lt lt"**** 8 devolver el libro***"
cout lt lt"**** 0 salir* * * * *" lt; lt lt"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" lt; ltendl lt lt"Presione el botón para seleccionar la operación que necesita:";
CIN gt;
Y (¡Seleccione! =1.
amplificador elige! = 2 amperios a elegir! = ¡3 amperios a elegir! = 4 amperios a elegir! = 5 amperios a elegir! = ¡6 amperios para elegir! =0){
cout lt ltendl lt lt"* *El número que ingresaste no existe en el menú, vuelve a ingresarlo* *" lt\ a ' lt ltendl lt ltendl
cout lt lt" Seleccione la operación que necesita: ";
CIN gt;
}
Cambiar (seleccionar) p>
{
Caso 1:
cout lt lt"Ingrese el ISBN (debe ser un número, de lo contrario será anormal):";
CIN gt; gtbookid
cout lt lt"Ingrese el título: ";
CIN gt; gtbname
cout lt lt"Ingrese el editor: "; p>
CIN gt; gt edit;
cout lt lt "Versión de entrada (debe ser un número, de lo contrario será anormal):"; banchi;
cout lt lt"Ingrese el editor:";
CIN gt; posición gt;
cout lt lt"Ingrese el año de publicación (debe ser un número, de lo contrario no funcionará correctamente):";
CIN gt; gt año;
cout lt lt"Ingrese el precio (debe ser un número, de lo contrario funcionará ser anormal):";
CIN gt; gt valor;
addbook(bookid, bname, editor, banci, posición, año, valor);
cout lt lt" ISBN " < ltbookid lt lt" agregado exitosamente, si desea regresar al menú principal, presione 1, para salir del sistema, presione 0 (asegúrese de ingresar un número)";
CIN gt; gtSelect 4;
while(Select 4 ! = 0 amp ampSelect 4! =1)
{
cout ltError de entrada, por favor volver a ingresar
CIN gt; gtSelect 4;}
Cambiar (opción 4)
{
Caso 1:
elección = 1;
Romper;
Caso 0:
elección = 0;
Roto;}Roto;
Caso 3:
cout lt lt"Ingrese ISBN:";
CIN gt; gtbookid
b = búsqueda 1(bookid );
if (b==NULL)
{
cout lt lt"Este libro no existe"
Romper;
}
b- gt;del libro();
Romper;
Caso 4:
cout lt lt"Método de búsqueda:"
CIN gt ; gtSelect 3;
Cambiar (opción 3)
{
Caso 1 :
{ cout lt lt" Introduzca ISBN: ";//Buscar por número de ISBN < br gtCIN gt; gtbookid ltbr gtb = buscar
1(bookid); ltbr gtif(b = = NULL) lt; br gt{ ltbr gtcout lt "Este libro no existe"
b- gt();
}
Pausa;
Caso 2:
{
cout lt ltPor favor ingrese el título: ";
CIN gt; gtbname
b=search2(bookid, bname);
if(b==NULL)
{
cout lt lt"¡Este libro no existe! ” lt ltendl
Romper;
}
b- gt; disp();
}
Break;
Caso 3:
{
cout lt lt"Ingrese al editor:";
CIN gt;
b=search3(bookid,editor);
if(b==NULL)
{
cout lt lt" Editor en jefe ¡No existe! ” lt ltendl
Romper;
}
b- gt; disp();
}
Romper;
}
Romper;
Caso 5:
disp();
Romper;
Caso 6:
clear();
Romper;
} }
cout lt ltendl lt lt "* * * * *Viaje lento* * * * *"< lt;endl lt ltendl lt ltendl
};
int main()
{
bBase de datos BookDB
cout lt ltendl lt ltendl lt ltendl
cout lt lt"Bienvenido a la biblioteca SCU" ltendl
cout lt lt"Bienvenido a la Biblioteca de la Universidad de Sichuan"< ltendl
cout lt ltendl lt ltendl lt lt"Ingrese 0 para ingresar a la biblioteca"
int w;
CIN gt; gtw;
if (w==0)
datos del libro();
sistema("pausa"); p>
Devuelve 0;
}