La Red de Conocimientos Pedagógicos - Conocimientos históricos - Sistema de gestión de idiomas de biblioteca

Sistema de gestión de idiomas de biblioteca

# incluir ltiostream gt

# incluir ltiomanip gt

# incluir lt string gt

//clase de flujo de archivos de entrada/salida

# incluir ltfstream gt

Usar espacio de nombres std

//Lectores máximos

const int Maxr = 100;

//Libros máximos

const int Maxb = 100;

//Cada lector puede pedir prestados hasta cinco libros.

const int max bor = 5;

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

Lector de clases

{

Privado:

//Marca de eliminación 1: Eliminado 0: No eliminado.

int tag;

//Número de lector

int number;

//Nombre de lector

Carácter nombre[10];

//Préstamo de libro

int bor book[max bor];

Público:

Lector ( )

{

;

}

//Obtener el nombre

char *getname()

{

Devolver nombre;

}

//Obtener el indicador de eliminación

int gettag()

{

Etiqueta de retorno;

}

//Obtener el número de lector

int getno()

{

Devolver No;

}

//Establecer el nombre

nombre de colección vacío (char na[ ])

{

strcpy(nombre, no aplicable);

}

//Establecer indicador de eliminación 1: Eliminado 0: No borrar.

void delbook()

{

tag = 1;

}

//Aumentar lectores

void addreader(int n, char *na)

{

etiqueta = 0

no = n;

strcpy(nombre, no aplicable);

for(int I = 0; IltMaxbori)

bor book[I]= 0;

}

//Operación de préstamo de libros

anular préstamo (int bookid)

{

for(int I = 0; I ltMaxbori )

{

if (borbook [i] == 0)

{

bor book [i] = bookId; p>

Devolución;

}

}

}

//Operación de devolución de libro

int devuelve libro(int bookid)

{

for(int I = 0; IltMaxbori)

{

if (borbook[ i]==bookid)

{

bor libro[I]= 0

Devuelve 1

}

}

Devuelve 0;

}

//Leer información del lector

Visualización no válida ( )

{

cout lt ltsetw(5) lt; ltNolt ltsetw(10) lt; ltNamelt "Número de préstamo: ["; ltMaxbori)

if(borbook[i]!=0)

cout lt ltbor libro[I] lt"|";

cout lt lt; "]" lt; ltendl

}

};

// Biblioteca de clases de lector para realizar la información personal del lector Establecer.

Base de datos de categorías

{

Privado:

//Puntero de registro del lector

int top

//Registro del lector

Lector leído[Maxr];

Público:

//Constructor, convertir lector.txt Leer en leído[]

Base de datos()

{

Lectores;

top =-1;

//Abrir un archivo de entrada

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

mientras (1)

{

archivo .read((char *) amp;s,sizeof(s));

si (!file) interrumpido;

arriba;

leer[ arriba]= s;

}

//Cerrar lector.txt

cerrar();

}

//Eliminar toda la información del lector

Vacío clear()

{

top =-1;

p>

}

//Busque existencia antes de agregar un lector.

int addreader(int n, char *na)

{

lector * p = consulta(n);

if ( p==NULL)

{

arriba;

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

Devuelve 1;

}

Devuelve 0;

}

//Buscar por número

Lector *query(int lectorid)

{

for(int I = 0; I lt= topi)

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

read[i].gettag()==0)

{

Regrese el amplificador a [I];

}

Regrese NULL

}

//Envíe toda la información del lector

void display()

{

for(int I = 0; i lt = topi )

Leer [i]. disp();

}

//Mantenimiento de la biblioteca del lector

void Reader data();

//Destructor, escritura, lectura [] al archivo lector.txt.

~ rdatabase()

{

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

para ( int I = 0; i lt = topi )

si (leer[i].

gettag()==0)

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

archivo . close();

}

};

void RDatabase::readerdata()

{

selección de caracteres;

char rname[20];

int lectorid

lector * r;

Y (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 \ " ltendl

CIN gt; gt 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; consulta(idlector);

if (r==NULL)

{

cout lt lt"El lector no existe"

Break;

}

cout lt lt" Ingrese el nuevo nombre: ";

CIN gtrname

r- gt; set name(rname);

Break;

Caso "3":

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

CIN gt; gtreaderid

r = consulta(readerid);

if (r==NULL)

{

cout lt lt" El lector no existe"

Pausa;

}

r- gt; del libro();

Pausa ;

Caso "4":

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

CIN gt; = consulta(readerid );

if (r==NULL)

{

cout lt lt"El lector no existe"

Romper;

p>

}

r- gt; disp();

Romper

Caso "5; ":

disp ();

Romper;

Caso "6":

clear();

Break;

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

}

}

}

// Libros, implemente la descripción del libro, el número del libro, el título del libro y el préstamo.

Privado:

//Marca de eliminación 1: Eliminado 0: No eliminado.

int tag;

//número de libro

int number;

//título del libro

char name[20];

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

int onshelf

Público:

Libro(){}

//Obtener el nombre

char * getname(){ return name;}

//Obtener el número del libro

int getno(){ return no;}

//Obtener la eliminación flag

int gettag(){ return tag;}

//Establecer el título del libro

nombre de la colección vacía (char na[])

{

strcpy(nombre, no aplicable);

}

//Eliminar libro

anular el libro (){ tag = 1 ;}

//Agregar libro

void addbook(int n, char *na)

{

etiqueta = 0;

no = n;

strcpy(nombre, no aplicable);

en el estante = 1; }

//Operación de préstamo de libros

int lendbook()

{

if(on self = = 1)

{

en el estante = 0

Devuelve 1;

}

Devuelve 0; p>}

//Operación de devolución de libro

void retbook()

{

en estante = 1;

}

//Libros de salida

Display no válido()

{

cout lt ltsetw(6) ltNo; lt ltsetw(18) lt; lt nombrelt ltsetw(10)

lt lt(onshelf==1? "En el estante": "prestado")< ltendl

}

};

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

Base de datos tipo B

{

Privada:

//Puntero de registro de libro

int top< / p>

//Registro del libro

libro libro[Maxb];

Público:

//Constructor, lee book.txt en el libro [ ]

bDatabase()

{

Libro b;

top =-1;

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

mientras (1)

{

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

Si (!file) se rompe;

top ;

libro[top]= b;

}

archivo . close();

}

//Eliminar todo

Vacío clear()

{

top =-1;

}

//Agregar libros

int addbook(int n, char *na )

{

libro * p = consulta(n);

if (NULL==p)

{

arriba;

Libro [arriba]. addbook(n, na);

Devuelve 1;

}

Devuelve 0;

}

//Buscar libros

Libro *Query(int bookid)

{

for(int I = 0; I lt= topi)

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

{

return ampbook[i ];

}

Devolver NULL

}

//Mantenimiento de la biblioteca

anular datos del libro();

Visualización no válida()

{

for(int I = 0; i lt= topi)

if (libro[ i] .gettag()==0)

libro[i]. disp();

}

//Destructor, escribe libro[] en el archivo book.txt.

~ bdatabase()

{

archivo fstream("book.txt", IOs::out);

para ( int i = 0; i lt = topi )

if (libro[i].

gettag()==0)

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

archivo . close();

}

};

void BDatabase::bookdata()

{

selección de caracteres;

char bname[40];

int bookid

libro* b;

while(select!='0')

p>

{

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 gt; gt select; {

Caso "1":

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

p>

CIN gt; gtbookid

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

CIN gtbname

addbook(bookid, bname);

Pausa;

Caso "2":

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

CIN gtbookid

p>

p>

b =query(bookid);

if (b==NULL)

{

cout lt lt" Este libro no existe "

Break;

}

cout lt lt"Ingrese el 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"

break;

}

b- gt;del libro() ;

Pausa;

Caso "4":

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

CIN gt;

b =query(bookid);

if (b==NULL)

{

cout lt lt"Este libro no no existe"

Romper;

}

b- gt; disp();

Romper;

Caso "5":

disp();

Romper

Caso "6":

clear(); /p>

Interrupción;

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 biblioteca\n\n\n";

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

CIN gt; gt select;

Cambiar (seleccionar)

{

Caso "1":

cout lt lt"Número de lector prestado : ";

CIN gt; gtreaderid

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

CIN gt; gtbookid

// Buscar por número

r = lectordb query(readerid);

if (NULL==r)

{

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

Break;

}

b = bookdb. /p>

if (b==NULL)

{

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

Romper;

}

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

{

cout lt lt"Este libro ha sido prestado, por lo que ya no puedes tomarlo prestado"< ltendl

Break;

}

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

Pausa;

Caso "2":

cout lt lt" devolver libro\nnúmero de lector:" ;

CIN gt; gtreaderid

cout lt "número de libro:";

CIN gt; gtbookid

r = consulta lectordb. );

if (r==NULL)

{

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

Romper;

}

b = bookdb .

if (b==NULL)

{

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

Rotura;

}

b- gt;ret book();

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

Pausa;

Caso "3":

bookdb . datos del libro();

Romper

Caso "4":

reader db .reader data();

Pausa;

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

}

}

}