Red de conocimiento informático - Descarga de software - Centro de gestión T0 del código fuente de gestión patrimonial

Centro de gestión T0 del código fuente de gestión patrimonial

# include & ltiostream & gt

# include & ltiomanip & gt

# include & ltstring& gt

//Clase de flujo de archivos de entrada/salida

# include & ltfstream & gt

Usar espacio de nombres std

//Lectores máximos

const int Maxr = 100;

p>

//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 devolución;

}

//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 eliminar.

void delbook()

{

tag = 1;

}

//Aumentar lectores

void addreader(int n, char *na)

{

etiqueta = 0

no = n;

strcpy(nombre, no aplicable);

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

bor book[I]= 0;

}

//Operación de préstamo de libros

anular préstamo (int bookid)

{

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

{

if (borbook[i]==0)

{

bor libro[I]= bookid;

Devolución;

}

}

}

//Operación de devolución de libro

int devuelve libro(int bookid)

{

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

{

if(borbook[i ]==bookid)

{

bor libro[I]= 0;

Devolver 1;

}

}

Devuelve 0;

}

//Leer información del lector

void display()

{

cout<<setw(5)<<no<<setw(10)<<name<<"número de préstamo :[";

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

if(borbook[i]!=0)

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

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

}

};

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

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 (" lector.txt ", IOs::in);

mientras (1)

{

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

if (!file) interrupción;

top++;

p>

leer[top]= s;

}

//Cerrar lector.txt

cerrar();

}

//Eliminar toda la información del lector

Vacío clear()

{

top =-1;

}

//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<= topi++)

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

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

{

Return & amp cambió a [I];

}

Return NULL

}

//Salida de todo el lector Información

void display()

{

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

read[i]. disp();

}

//Mantenimiento de la biblioteca del lector

void Reader data();

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

~ rdatabase()

{

archivo fstream(" lector.txt ", IOs::out); 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

}

}

}

//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)& lt ;& ltNo& lt& ltsetw(18)& lt;& ltname& 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:

//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 (! archivo) se rompe

top++; p>}

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

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

{

return& amp libro[I];

}

Devolver NULL

}

//Mantenimiento de la biblioteca

anular datos del libro();

void display()

{

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

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

libro[i]. disp();

}

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

~ bdatabase()

{

archivo fstream(" libro.txt ", IOs::out

para ( 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 & gt; & gtSelect; {

Caso "1":

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

CIN & gt;& gtbookid

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

CIN & gt;& gtbname

addbook(bookid, bname);

Break;

Caso "2":

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

CIN>& gtbookid

b =query(bookid);

if (b==NULL)

{

cout & lt& lt"Este libro no existe"

Pausa;

}

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

CIN>>bname

b->set name(bname);

Pausa;

Caso "3":

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

CIN & gt; & gtbookid

b = consulta (bookid); b==NULL)

{

cout & lt& lt"Este libro no existe"

Pausa;

p>

}

b-& gt;del libro();

Pausa;

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-> disp();

Pausa;

Caso "5":

disp();

Pausa;

Caso "6":

clear();

Break;

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

//Buscar por número

r = lectordb(readerid);

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, así que no puedes pedirlo prestado" < & ltendl

break;

}

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

{

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

Pausa;

}

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

Descanso;

Caso " 2":

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

CIN>>readerid

cout <<"ISBN :";

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 . ;

if (b==NULL)

{

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

Pausa;

}

b-& gt; ret libro();

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

Romper;

Caso "3":

bookdb.book data();

Romper;

Caso "4":

lector db .datos del lector();

interrupción;

predeterminado.

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

}

}

}