Red de conocimiento informático - Conocimiento del nombre de dominio - Sistema de gestión de bibliotecas de emergencia C

Sistema de gestión de bibliotecas de emergencia C

#include lt;iostreamgt;

#include lt;iomanipgt;

#include lt;stringgt;

#include lt; fstreamgt; //Clase de flujo de archivos de entrada/salida

usando el espacio de nombres std;

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

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

const int Maxbor=5; //Cada lector puede pedir prestados hasta cinco libros

//Clase de lector, que describe la información del lector

class Reader

{

privado:

int tag; //Eliminar etiqueta 1: eliminado 0: no eliminado

int no; //Número de lector

char name[10]; //Nombre de lector

int borbook[Maxbor]; //Libro prestado

public:

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[]) //Establecer nombre

{

strcpy(name, na);

}

void delbook(){ tag=1 }//Establecer marca de eliminación 1: Eliminado 0: No eliminado

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

{

tag=0

no=n;

strcpy(nombre, na);

for(int i=0; ilt; Maxbor; i)

borbook[i] ]=0;

}

void lendbook(int bookid)//Operación de préstamo

{

for (int i=0 ; ]=idbook;

return

}

}

}

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

{

for(int i=0; ilt; Maxbor; i)

{

if( borbook[i]==bookid)

{

borbook[i]=0

return 1

}

}

return 0;

}

void disp()//leer información del lector

{

cout lt;setw(5)

) lt; lt; no lt; setw(10) lt; lt; nombre: ["; /p>

if(borbook[i]!=0)

cout lt; borbook[i] lt; lt; "]"lt;lt;endl;

}

};

//Biblioteca de clases de lector para crear información personal de los lectores.

p>

clase RDatabase

{

privado:

int top; //Puntero de registro del lector

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

public:

RDatabase() //Constructor, lea el archivo lector.txt en read[]

{

Reader s;

top=-1;

fstream file("reader.txt", ios::in); //Abrir un archivo de entrada

p >

mientras (1)

{

archivo.read((char *)amp;s, tamaño de(s)); !archivo)romper;

arriba;

leer[arriba]=s;

}

archivo.close(); /Cerrar lector.txt

}

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

{

top=-1 ;

}

int addreader(int n, char *na)//Al agregar un lector, primero verifique si existe

{

Lector *p=query(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; ilt; =top; i)

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

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

{

return amp; leer[i];

}

return NULL

}

void disp() // Genera toda la información del lector

{

for (int i=0; ilt; =top; i)

read[i].disp(); /p >

}

void Readerdata(); //Mantenimiento de la biblioteca del lector

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

{

fstrea

m file("reader.txt",ios::out);

for (int i=0;ilt;=top;i)

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

file.write((char *)&read[i], sizeof(read[i]));

file.close() ; /p>

}

};

void RDatabase::readerdata()

{

elección de carácter

char rname[20];

int lectorid;

Lector *r;

mientras (elección!='0')

p>

{

cout lt;lt;"\n\n\t\t\tMantenimiento del lector\n\n\n\t\t 1 Nuevo\n\n \t\t 2 Cambiar\n\n\t\t 3 Eliminar\n\n\t\t 4 Buscar\n\n\t\t 5 Mostrar\n\n\t\t 6 Eliminar todo\n\ n\t\ t 0 salir "lt; lt; endl;

cin gt; gt; elección;

cambiar (elección)

{

caso '1':

cout lt; lt; "Ingrese el ID del lector:";

cin gt;

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

cin gt; rname;

addreader (readerid, rname); >break p>

case '2':

cout lt; "Ingrese el ID del lector:"

cin gt; p> r=query(readerid);

if (r==NULL)

{

cout lt;lt; "El lector no existe" lt;lt ;endl;

break;

}

cout lt;lt; "Ingrese un nuevo nombre:"; gt; gt; rname;

r-gt; setname(rname);

caso '3':

cout lt ;lt; "Ingrese el ID del lector:";

cin gt;

r=query(readerid); == NULL)

{

cout lt; "El lector no existe" lt;

}

r-gt; delbook();

romper;

caso '4':

cout lt; lt; " Leer el ID del lector: ";

cin gt; lectorid;

r=query(readerid); NULO)

{

<

p>cout lt; lt; "Este lector no existe" lt; lt;

break;

}

r-gt; )

romper;

caso '5':

disp(); case '6':

clear();

break;

default: coutlt;lt;"Error de entrada, vuelva a ingresar:";break ;

}

}

}

//Clase de libro, implementa la descripción del libro, el número del libro, el título del libro, y prestándolo, devuélvelo y espera

clase Libro

{

privado:

int tag/; /Eliminar etiqueta 1: Eliminado 0: Recuperado

int no; //Número de libro

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

int onshelf; //Si volver a colocar en el estante 1: Volver a colocar en el estante 2: Prestado

public:

Book(){}

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

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

int gettag(){ return etiqueta }//Obtener el etiqueta de eliminación

void setname( char na[])//Establecer el nombre del libro

{

strcpy(name, na

<); p>}

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

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

{

tag=0

no=n;

strcpy(nombre,na

onshelf=1;

}

int lendbook()//Operación del libro de préstamo

{

if (onshelf==1)

{

onshelf= 0;

devuelve 1;

}

devuelve 0; }

void retbook()/ /Operación de devolución de libro

{

onshelf=1

}

void disp()//Libro de salida

{

cout lt;lt; setw(6) lt;lt; no lt;lt; nombre lt;lt; setw(10)

lt;lt;(onshelf==1? "en el estante":"prestado") lt;lt;endl

}

};

//Clase de biblioteca de libros, implementa el mantenimiento de libros, búsqueda, eliminación, etc.

clase BDatabase

{

privado:

int top; //Puntero de registro del libro

Libro del libro[Maxb] //Registro del libro

público:

int top; p>

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

{

Libro b

top=-1

p>

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

mientras (1)

{

archivo .read( (char *)amp; b, tamaño de(b));

if (!file) break

top;

}

file.close();

}

void clear()//Eliminar todo

p >

{

top=-1;

}

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

{

Libro *p=query(n);

if (NULL==p)

{

arriba

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

return 1

}

return 0; p>

}

Libro *query(int bookid)//Buscar libros

{

for (int i=0; ilt; = top ;i)

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

{

return & book[i];

}

return NULL

}

void bookdata() ;//Libro mantenimiento de biblioteca

void disp()

{

for (int i=0; ilt; =top; i)

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

libro[i].disp();

}

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

{

archivo fstream("book.txt", ios::out

for); (int i=0; ilt; =top; i)

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

file((char *)amp. ; libro[i], tamaño de(libro[i]));

archivo.close()

}

}; p>void BDatabase::bookdata()

{

char elección;

char bname[40]

int bookid;

Reservar *b;

mientras (elección!='0')

{

cout lt;lt;"\n \n\n\t\t\tMantenimiento de libros"lt;lt;endllt;lt;endl;

coutlt;lt;"\t\t1 Agregar\n \t\t2 Cambiar\n\t\t3 Eliminar\n\t\t4 Buscar\n\t\t5 Mostrar\n\t \ t6 Eliminar todo\n\t\t0 Salir "lt; lt; endl;

cin gt; gt; elección;

cambiar (elección)

{

caso '1':

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

cin gt;

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

cin gt; );

break;

case '2':

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

cin gt; id de libro;

b=query(id de libro); >

cout lt;

}

cout lt; ; "Ingrese un nuevo título del libro: "lt; lt; endl;

cin gt; bname; p>break;

caso '3':

cout lt;lt;" leer número de libro: "lt;lt;endl;

cin gt; gt; id de libro;

b=query(id de libro);

if (b==NULL)

{

cout lt; lt; "El libro no existe" lt; endl;

break;

}

delbook(); >

p>

break;

caso '4':

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

cin gt; id de libro;

b=query(id de libro); >

cout lt; "El libro no existe" lt; endl; disp();

romper;

caso '5':

disp();

romper; p>case ' 6':

clear();

break;

default: coutlt;lt; "Error de entrada, vuelva a ingresar:"

}

}

}

//Implementación de la función Main(), guía de la interfaz principal del programa

void main()

{

elección de caracteres;

int bookid,readeri

d;

RDatabase ReaderDB

Lector *r

BDatabase BookDB

Libro *b; > while(choice!='0')

{

cout lt;lt;endllt;lt;endllt;lt;"\t\t\t Sistema de gestión de bibliotecas\n \n\n";

cout lt;lt;"\t\t\t1 Pedir prestado libros\n\n\t\t\t2 Devolver libros\n\n\t\t\t3 Libros Mantenimiento\n\n\t\t\t4 Mantenimiento del lector\n\n\t\t\t0 Salir "lt;lt;endl;

cin gt;gt; elección;

cambiar (elección)

{

caso '1':

cout lt; "Número de prestatario: "; >cin gt; lectorid;

cout lt; "Número de libro: "; .query(readerid);//Buscar por número

if (NULL==r)

{

cout lt;lt;" no existe Esto el lector no puede pedir prestados libros "lt;lt; endl;

break;

}

b=BookDB.query(bookid);

if (b==NULL)

{

cout lt; "El libro no existe y no se puede tomar prestado" lt; >

romper;

}

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

{

cout lt ;lt; "El libro ha sido prestado y no puede ser prestado"lt;lt; endl; ( b-gt; getno());

break;

case '2':

coutlt;lt; "Devolver el libro\n Número de lector :" ;

cin gt; gt; lectorid;

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

cin gt; gt; bookid;

r=ReaderDB.query(readerid);

if (r==NULL)

{

cout lt;lt;" no existe Este lector no puede devolver el libro" lt; lt; endl;

break;

}

b=BookDB.query(bookid);

if (b==NULL)

{

cout lt; "El libro no existe y no se puede devolver" lt;

romper;

}

b-gt; ());

romper;

caso '3':

p>

BookDB.bookdata();

romper;

caso '4':

ReaderDB.readerdata(); p>break;

default: coutlt;lt; "Error de entrada, vuelva a ingresar:"; > }

También soy estudiante y también escribí un sistema de gestión usando VB y una base de datos.