La Red de Conocimientos Pedagógicos - Conocimientos históricos - Programa de gestión de información de libros

Programa de gestión de información de libros

# incluir ltiostream gt

# incluir ltiomanip gt

# incluir lt string gt

# incluir ltfstream gt//clase de flujo de archivos de entrada/salida

Usar espacio de nombres std

const int Maxr = 100; // La mayor cantidad de lectores

const int Maxb = 100; // La mayor cantidad de libros

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

bor book = 0;

}

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

p>

{

for(int I = 0; iltMaxbori)

{

if (borbook==0)

{

borbook = bookid

Retorno;

}

}

}

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

{

for(int I = 0; IltMaxbori)

{

if(borbook==bookid)

{

bor libro = 0

Devuelve 1

}

}

Devuelve 0;

}

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

{

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

if (borbook!=0)

cout lt ltborbook lt"|";

cout lt lt "]" lt ; ltendl

}

};

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

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("reader.txt", IOs::in ) ; //Abrir un archivo de entrada

mientras (1)

{

archivo read((char *) amp; 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 lt= topi)

if(read . getno()= = lectorid amp; amp

read.gettag()==0)

{

Devolver lectura de amplificador;

}

Devolver NULL

}

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

{

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

leer .

}

p>

void Reader data(); //Mantenimiento de la biblioteca del lector

~RDatabase() //Destructor, escribe read[] en el archivo Reader.txt.

{

fstream file("reader.txt", IOs: ut

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

p>

if (read.gettag()==0)

archivo escribir((char *) & leer, tamaño de(leer)); p>archivo . close();

}

};

void RDatabase::readerdata()

{

char select;

char rname[20];

int lectorid

lector * r;

y (seleccionar !='0 ')

{

cout lt lt" \ n \ n \ t \ tMantenimiento del lector\n\n\n\t\t 1 recién agregado\ n \ n \ t\t2 fue cambiado\n\n\t\t3 fue eliminado\n\n\" ltendl

CIN gt; gtSelect;

Cambiar (Seleccionar)

{

Caso "1":

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

CIN gt gtreaderid p>

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; r = query(readerid);

if (r==NULL)

{

cout lt lt"El lector no existe"

Break;

}

cout lt lt" Ingrese un nuevo nombre: ";

CIN gtrname

r- gt; ; establecer nombre(rname);

Pausa;

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"

Romper

}

r- gt; ;

Caso "4":

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

CIN gtreadid

r = consulta(readerid);

if (r==NULL)

{

cout lt lt"El lector no existe"

Romper;

}

r- gt; disp();

Romper;

Caso "5":

disp();

Interrupción;

Caso "6":

clear();

Interrupción;

p>

Valor predeterminado: cout

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

}

}

}

//Categoría de libro , Realiza la descripción del libro, el número del libro, el título del libro, el préstamo, la devolución, etc.

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; ltNolt ltsetw(18) lt; 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:

int top//puntero de registro del libro

libro book [Maxb]; //Registro del libro

Público:

BDatabase()//Constructor, lea 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();

}

Anular clear()//Eliminar todo

{

top =-1;

}

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 lt= topi)

if(book . getno()= = bookid amp; ampbook.gettag( )==0)

{

Devolver libro amp;

}

Devolver NULL

}

datos del libro nulo();//mantenimiento de la biblioteca

pantalla nula()

{

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

if (book.gettag()==0)

libro disp();

}

. ~BDatabase()//Destructor, escribe libro[] en el archivo book.txt.

{

fstream file("book.txt", IOs: ut

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

p>

if (book.gettag()==0)

archivo escribir((char *) & libro, tamaño de(libro)); p>archivo . close();

}

};

void BDatabase::bookdata()

{

char select;

char bname[40];

int bookid

libro* b; !='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 busca\n\t\t5 se muestra\n\t\t6 es eliminado completamente\ n\t\t0 está desactivado" ltendl

CIN gt; gtselect;

Interruptor (seleccionar)

{

Caso "1":

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

CIN gt; gtbookid

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

CIN gt; gtbname

addbook(bookid, bname);

Pausa;

Caso "2":

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

CIN gt; gtbookid

b = consulta (bookid);

if (b==NULL) )

p>

{

cout lt lt"Este libro no existe"

Pausa;

}

cout lt lt "Ingrese nuevo título:"

CIN gt; gtbname

b- gt; set name(bname);

Break;

Caso "3":

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

CIN gt; gtbookid

b = consulta (bookid) ;

if (b==NULL)

{

cout lt "Este libro no existe"

Break;

}

b- gt;del libro();

Romper;

Caso "4":

cout lt lt" Lea el número del libro: "

CIN gt; gtbookid

b = consulta (bookid);

if (b==NULL)

{

cout lt lt"Este libro no existe"

break;

}

b- gt; disp() ;

Interrupción;

Caso "5":

disp();

Interrupción;

Caso "6":

clear();

Romper

Valor predeterminado: cout lt"

Error de entrada, vuelva a ingresar: ";

}

}

}

//Implementación y programa de main() Función Guía de la interfaz principal.

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

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

if (NULL==r)

{

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

Break;

}

b = bookdb. query(bookid);

if (b==NULL)

{

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

Break

>

}

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

{

cout lt lt"Este libro ha sido prestado. para que no puedas volver a tomarlo prestado" ));

Pausa;

Caso "2":

cout lt lt" devolver libro\nreader número: ";

CIN gt; gtreaderid

cout lt "número de libro:";

CIN gt; gtbookid

r = lectordb.query(readerid);

if (r==NULL)

{

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

Break;

}

b = bookdb . query(bookid);

if (b== NULL)

{

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

Rotura;

}

b- gt; ret libro();

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

Romper; >

Caso "3":

datos bookdb.book();

Pausa;

Caso "4":

lector db .reader data();

Pausa;

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

}< / p>

}

}