La Red de Conocimientos Pedagógicos - Conocimientos históricos - Cómo escribir el historial de una biblioteca

Cómo escribir el historial de una biblioteca

# incluir & ltiostream & gt

# incluir & ltiomanip & gt

# incluir & ltstring& gt

# incluir & ltfstream & gt//Archivo de entrada/salida clase de flujo

Usando el espacio de nombres std

const int Maxr = 100; //Lectores máximos

const int Maxb = 100 //Libros máximos

const int max bor = 5; //Cada lector puede pedir prestados hasta cinco libros.

//clase de lector, describe la información del lector.

Lector de clases

{

Privado:

int tag; // Eliminar marca 1: Eliminado 0: No eliminado.

int number; //Número de lector

Nombre del personaje [10]; //Nombre del lector

int bor book[max bor];

Público:

Reader() {}

char * getname(){ return name;}//Obtener el nombre

int gettag(){ return tag;}//Obtener la etiqueta de eliminación

int getno(){ return no;}//Obtener el número de lector

Void setname(char na[ ] ) //Establece el nombre.

{

strcpy(nombre, no aplicable);

}

void del book(){ tag = 1;}/ /Establecer indicador de eliminación 1: eliminado 0: no eliminado.

Void addreader(int n, char *na)//Agregar lector.

{

etiqueta = 0;

no = n;

strcpy(nombre, no aplicable

<); p>for(int I = 0;i<Maxbori++)

bor book[I]= 0;

}

Libro de préstamo vacío(int bookid)/ /borrow operación

{

for(int I = 0;i<Maxbori++)

{

if (borbook[i] ==0)

{

bor libro[I]= bookid;

Retorno;

}

}

}

Int retbook(int bookid)//Operación de devolución de libro

{

for(int I = 0; i<Maxbori++)

{

if(borbook[i]==bookid)

{

bor libro[I]= 0;

Devuelve 1;

}

}

Devuelve 0;

}

Disp nulo ( )//Leer información del lector.

{

cout & lt& ltsetw(5)& lt;& ltNo& lt& ltsetw(10)& lt;& ltName& lt& lt"Número de préstamo:["

;

for(int I = 0; i& ltMaxbori++)

if(borbook[i]!=0)

cout & lt& ltbor book[I] & lt;& lt "|";

cout & lt& lt"]" & lt;& ltendl

}

};

//Lector biblioteca de clases para realizar el establecimiento de la información personal de los lectores.

Base de datos de categorías

{

Privado:

int top//puntero de registro del lector

Lectura del lector leído [Maxr]; //Registro del lector

Público:

RDatabase() //El constructor lee el archivo lector.txt en lectura[].

{

Lectores;

top =-1;

archivo fstream(" lector.txt ", IOs::in ) ;//Abrir un archivo de entrada

mientras (1)

{

archivo read((char *)&s,sizeof(s )) ;

Si (! archivo) se interrumpe

top++;

read[top]=

}

file . close();//Cerrar lector.txt

}

Void clear()//Eliminar toda la información del lector.

{

top =-1;

}

Int addreader(int n, char *na)//Agregar verificación de lectura para ver si existen.

{

lector * p = consulta(n);

if (p==NULL)

{

arriba++;

Leer [arriba]. addreader(n, na);

Devuelve 1;

}

Devuelve 0;

}

Lector *query(int lectorid)//Buscar por número.

{

for(int I = 0;i<=topi++)

if (read[i].getno()= = lectorid& ;& amp

Leer [I]. gettag()==0)

{

Regresar & amp a [I];

}

Devolver NULL

}

Void disp() //Muestra toda la información del lector.

{

for(int I = 0; i<= topi++)

Leer [i]. disp();

}

anular datos del lector(); //Mantenimiento de la biblioteca del lector

~RDatabase() //Destructor, leer[ ]Escribir en el archivo lector.txt.

{

fstream file("reader.txt", IOs::out);

for(int I = 0; i<= topi++)

si(leer[i].

gettag()==0)

archivo . write((char *)& leer[i], tamaño de(leer[I]);

archivo . close() ;

}

};

void RDatabase::readerdata()

{

selección de caracteres <; /p>

char rname[20];

int lectorid

lector * r;

mientras (select!='0')

p>

{

cout & lt& lt" \ n \ n \ t \ tMantenimiento del lector\n\n\n\t\t 1 recién agregado\ n \ n \ t \ t 2 fue cambiado\n\n\t\t 3 fue eliminado\n\n\"<endl

CIN>>Select;

Cambiar (Seleccionar)

{

Caso "1":

cout & lt& lt"Ingrese el número del lector de tarjetas:";

CIN & gt& gtreaderid

cout & lt& lt"Ingrese el nombre del lector:";

CIN & gt;& gtrname

addreader (readerid, rname);

Break;

Caso "2":

cout & lt& lt"Ingrese el número del lector de tarjetas:";

CIN & gt ;& gtreaderid

r = query(readerid);

if (r==NULL)

{

cout & lt& lt "El lector no existe"

Pausa;

}

cout<<"Ingrese nuevo nombre:";

CIN> ;& gtrname

r-& gt ;set name(rname);

Pausa;

Caso "3":

cout & lt& lt"Ingrese el número del lector de tarjetas:";

CIN & gt;& gtreaderid

r = query(readerid);

if (r= =NULL)

{

cout & lt& lt"El lector no existe"

Pausa;

}

r-& gt;del libro();

Pausa;

Caso "4":

cout & lt& lt"Leer en el número de lector: ";

CIN>& gtreaderid

r = query(readerid);

if (r==NULL)

{

cout & lt& lt"El lector hace no existe"

Pausa;

}

r-& gt; disp();

Pausa;

Caso "5":

disp();

Romper

Caso " 6":

clear();

Pausa;

Valor predeterminado: cout & lt& lt"Error de entrada, vuelva a ingresar: ";Pausa

}

}

}

//Categoría del libro, realización de la descripción del libro, número del libro, título del libro, espera de préstamo y devolución.

Libros del aula

{

Privado:

int tag; //Eliminar marca 1: Eliminado 0: No eliminado.

int number; //Número de libro

char name[20]; //Título del libro

int onshelf// ¿Quieres pedir prestado 1: Pedir prestado? 2: ¿pedir prestado?

Público:

Libro(){}

char * getname(){ return name;}//Obtener el nombre

int getno(){ return no;}//Obtener el número del libro

int gettag(){ return tag;}//Obtener la etiqueta de eliminación

Void setname(char na[ ])// Establecer el título del libro.

{

strcpy(nombre, no aplicable);

}

void del book(){ tag = 1;}/ /Eliminar libro

Void addbook(int n, char *na)//Agregar libro.

{

etiqueta = 0;

no = n;

strcpy(nombre, no aplicable

<); p>on Shelf = 1;

}

Int lendbook()//Operación de préstamo

{

if(on self = = 1)

{

en el estante = 0

Devuelve 1

}

Devuelve 0; ;

}

Retbook nulo()//operación de devolución de libro

{

en estante = 1;

}

Void disp()//Libros de salida

{

cout & lt& ltsetw(6)& lt;& ltNo& lt& ltsetw( 18) & lt; p>}

};

//La clase de biblioteca puede mantener, buscar y eliminar libros.

Base de datos tipo B

{

Privada:

int top//puntero de registro del libro

libro book [Maxb]; //Registro del libro

Público:

BDatabase()//Constructor, lea book.txt en book[].

{

Libro b;

arriba =-1;

archivo fstream(" libro.txt ", IOs::in );

mientras (1)

{

archivo leído((char *)&b,sizeof(b));

Si (!archivo) se rompe;

top++;

libro[top]= b;

}

archivo. close();

}

Anular clear()//Eliminar todo

{

top =-1;

p>

}

Int addbook(int n, char *na)//Agregar libros.

{

libro * p = consulta(n);

if (NULL==p)

{

arriba++;

Libro [arriba].

addbook(n, na);

Devuelve 1;

}

Devuelve 0;

}

Libro *query(int bookid)//Buscar libros.

{

for(int I = 0;i<=topi++)

if(libro[i].getno()== bookid& ;& libro[ i].gettag()==0)

{

Devolver & reservar[i];

}

Devolver NULL

}

datos anulados del libro(); //Mantenimiento de la biblioteca

Visualización no válida()

{

for(int I = 0; i<=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; i<= topi++)

if(libro[i].

gettag()==0)

archivo . write((char *)& libro[i], tamaño de(libro[I]);

archivo . close() ;

}

};

void BDatabase::bookdata()

{

selección de caracteres <; /p>

char bname[40];

int bookid

libro* b;

while(select!='0')

{

cout & lt& lt" \ n \ n \ n \ t \ t \mantenimiento de biblioteca" < & ltendl & lt& ltendl

cout & lt& lt " \t\t1 se agregó recientemente\n \t\t2 se cambió\n\t\t3 se eliminó\n\t\t4 se buscó\n\t\t5 se muestra\n\t\t6 se eliminó por completo \n \t\t0 está desactivado" & ltendl

CIN> & gtSelect;

Switch (Select)

{

Caso "1 ":

cout & lt& lt"Ingrese el número del libro:"

CIN & gt;& gtbookid

cout & lt& lt" Ingrese el título del libro: "

CIN>>bname

addbook(bookid, bname);

Break;

Caso" 2":

cout & lt& lt"Ingrese el número de libro:"

CIN & gt; & gtbookid

b = Consulta (bookid);

if (b= =NULL)

{

cout & lt& lt"Este libro no existe"

Pausa;

}

cout & lt& lt"Ingrese nuevo título:"

CIN & gt;& gtbname

b-& gt;set name(bname );

Pausa;

Caso "3":

cout & lt& lt"Leer en ISBN:"

CIN & gt ;& gtbookid

b =query(bookid);

if (b==NULL)

{

cout & lt& lt "Este libro no existe"

Romper;

}

b-& gt;del libro();

Romper

Caso; "4":

cout & lt& lt"Leer número de libro:"

CIN & gt;& gtbookid

b =query(bookid);

if (b==NULL)

{

cout & lt& lt"Este libro no existe"

Pausa;

}

b-& gt; disp();

Descanso;

Caso "5":

disp ();

Romper;

Caso "6":

clear();

Romper;

Valor predeterminado: cout & lt& lt"Error de entrada, vuelva a ingresar:";

}

}

}

// La implementación de la función main() y la guía de la interfaz principal del programa.

void main()

{

selección de caracteres;

int bookid, lectorid

RDatabase ReaderDB

lector * r;

b base de datos BookDB

libro * b;

y (select!='0')

{

cout & lt& ltendl & lt& ltendl & lt& lt”\ t \ t \sistema de gestión de bibliotecas\ n \ n \ n”;

cout & lt& lt " \t\t\t1Préstamo de libros\n\n\t\T2Devolución de libros\n\n\t\T3Mantenimiento de la biblioteca\n\n\t\t\t4Mantenimiento del lector\n\n\n\ " & ltendl

CIN>& gtSelect;

Cambiar (seleccionar)

{

Caso "1":

cout & lt& lt"ID de lector prestado:";

CIN & gt;& gtreaderid

cout & lt& lt"ISBN:";

CIN>& gtbookid

r = lectordb . query(readerid); //Buscar por número

if (NULL==r)

{

cout & lt& lt"El lector no existe, el libro no se puede tomar prestado"< & ltendl

Pausa;

}

b = bookdb.query(bookid) ;

if (b==NULL)

{

cout & lt& lt"Este libro no existe, por lo que no puedes tomarlo prestado"< & ltendl

Descanso;

}

if(b-& gt;borrowbook()==0)

{

cout & lt& lt"Este libro ha sido prestado, así que ya no puedes prestarlo más"< & ltendl

Rotura;

}

r-& gt;Préstamo(b-& gt;getno());

Descanso;

Caso "2":

cout<<"Regresar libro\nID de lector:";

CIN>&greaderid

cout<<"Número de libro:";

CIN>& gtbookid

r = lectordb . query(readerid);

if (r==NULL)

{

cout & lt& lt"El lector no existe, por lo que el libro no se puede devolver"< & ltendl

Break;

}

b = bookdb. query (bookid);

if ( b==NULL)

{

cout & lt& lt"El libro no existe y no se puede devolver"< & ltendl

Pausa;

}

b-& gt;retbook();

r-& gt;retbook(b-& gt;getno());

Pausa;

Caso "3":

bookdb.book data();

Pausa;

Caso "4 ":

reader db . datos del lector();

Interrupción;

Valor predeterminado: cout

& lt& lt"Error de entrada, vuelva a ingresar:"

}

}

}