Red de conocimientos turísticos - Información de alquiler - Código fuente C del sistema de gestión de asientos de biblioteca

Código fuente C del sistema de gestión de asientos de biblioteca

Código fuente del sistema de gestión de asientos de biblioteca C

#include lt;iostreamgt;

#include lt;iomanipgt

#include lt;stringgt;

#include lt.fstreamgt; //clase de flujo de archivos de entrada/salida

utilizando el espacio de nombres

const int Maxr=100 //lectores máximos

const int Maxb=100; // libros máximos

const int Maxbor

// Clase de lector, la realización de la descripción de la información del lector

clase Lector

{

p>p>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;}

int gettag() {return tag;} //obtener nombre < / p>

int gettag() {etiqueta de retorno;} //obtener etiqueta de eliminación

borbook[i]=0

return 1; }

}

}

}

devuelve 0; void disp()//leer la información del lector

{

cout lt;lt; setw(5) lt; no lt;lt; ; namelt; lt; "Número de libro prestado: [";

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

if(borbook[i]! =0)

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

cout lt;lt; "]"lt;lt;endl; p>

cout lt;lt; p>

}

};

Biblioteca de clases de lector, utilizada para crear información personal de los lectores

class RDatabase

{

privado:

int top; //Puntero de registro del lector

Lector leído[Maxr]; record

public:

RDatabase() //constructor que lleva el archivo lector.txt a r

ead[]

{

Lector s;

top=-1;

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

mientras (1)

{

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

si (!archivo)romper

arriba

leer[arriba]=s;

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

}

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

{

top=-1;

}

int addreader(int n, char *na)//Para agregar un lector, primero debes saber ¿Existe

{

Lector *p=query(n

if (p==NULL)

{

arriba;

leer[arriba].addreader(n, na

return 1; p>return 0...

Return 0

}

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

{

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

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

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

{

devolver leer[i]; >

return NULL;

}

void disp() //Información de salida sobre todos los lectores

{

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

read[i].disp();

}

void lector de datos(); mantenimiento de la base de datos del lector

~RDatabase() //destructor que lleva la lectura[] al archivo lector.txt

{

fstream 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()

}

};

void RDatabase::readerdata()

{

elección de caracteres

<; p>char nombre[20];

int lectorid;

Lector *r;

¡elección! ='0')

{

cout lt;

cambiar (elección)

{

case '1':

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

cin gt; lt; "Ingrese el nombre del lector:";

cin gt;gt;

addreader (readerid, rname); >

break;

p>

case '2':

cout lt; "Ingrese el número de lector: "; gt; gt; id de lector;

r=query(id de lector

if (r==NULL)

{

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

break;

}

cout lt;lt; :";

cin gt ;gt; rname;

r-gt; setname(rname);

break;

caso '3':

cout lt; lt; "Ingresar ID de lector:";

cin gt;

r=query(id de lector);

if (r== NULL)

{

cout lt; "El lector no existe" lt;

romper;

}

r-gt; delbook();

romper

caso '4':

cout lt; " Leer id de lector: ";

cin gt;

r=query(id de lector); p>if (r==NULL)

{

cout lt; "Este lector no existe" lt;

}

r-gt; disp();

romper

caso '5':

disp();

romper;

caso '6':

borrar(); >

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

}

// La clase Libro implementa funciones como descripción del libro, número de libro, título del libro, pago y registro.

libro de clase

{

privado:

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

int no; //número de libro

char name[20]; //nombre del libro

int onshelf; //si volver a colocar en el estante 1: volver a colocar en el estante 2 :prestado

público:

Libro(){}

char * getname(){ return nombre }/get 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[])

{

strcpy(nombre, na);

}

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

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

{

{

tag= 0;

no=n;

stracpy(nombre,na

onshelf=1;

int lendbook()/ / Préstamo de libros

{

if (onshelf==1)

{

en el estante =0;

retorno 1

}

retorno 0; () //devolver libro

{

onshelf=1

}

void disp()//devolver libro

{

onshelf=1;

}

void disp()//libro de salida

{

cout lt;lt; setw(6) lt;lt; no lt;lt; setw(18) lt;lt; nombre lt;lt; =1 ? "en el estante": "prestado")lt;lt;endl;

}

}.

}; // La clase de base de datos de libros implementa funciones como mantenimiento, búsqueda y eliminación de libros.

clase BDatabase

{

p>private:

int top // Puntero de registro del libro

int top.

Libro libro[Maxb]; // Registro de libro

public:

BDatabase()// Constructor para leer libro.txt en libro[ ]

{

Libro b;

top=-1;

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

mientras (1)

{

archivo.read((char *)&b, tamaño de(b)); p>if (!archivo) romper;

arriba

libro[top]=b

}

archivo .close ();

}

void clear()//eliminar todo

{

top=-1;

p>

}

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;

}

Libro *consulta; (int bookid )//buscar libro

{

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

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

{

return amp;book[i]; > }

return NULL;

}

void bookdata(); //mantenimiento de la biblioteca de libros

void disp()

{

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

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

book[i].disp();

}

~BDatabase()//destructor para escribir libro[] en el archivo book.txt

{

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

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

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

file.write((char *)&libro[i], tamaño de(libro[i])); > p>

archivo.close();

}

};

void B

Base de datos::bookdata()

{

char elección;

char bname[40]

int bookid; >

Reservar *b;

mientras (choice!='0 \t5 Mostrar \n\t6 Todo Eliminar \n\t0 Salir"lt;lt;endl;

cin gt; elección;

cambiar (elección)

{

caso '1':

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

cin gt;

cout lt;

cin gt; bnombre;

addbook(bookid, bnombre);

caso '2':

p>

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

cin gt; =query(bookid);

if (b==NULL)

{

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

break;

}

}

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

cin gt; bnombre;

b-gt; caso '3':

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

cin gt; b=query(bookid);

if (b==NULL)

{

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

romper

}

b-gt; p> case '4':

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

cin gt;gt; p>b=query(bookid);

if (b==NULL)

{

cout lt; lt; lt; endl;

romper;

}

.

disp();

romper;

caso '5':

disp();

romper

caso '6':

clear();

romper;

p>

romper;

predeterminado: coutlt;lt; por favor ingrese contenido nuevo:";

}

cin gt;gt ; elección;

switch (ch

oice)

{

caso '1':

cout lt; "Préstamo ReaderID: "; gt; id de lector;

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

cin gt;gt; ); //buscar por número

if (NULL==r)

{

cout lt ;" El lector no existe y no puede pedir prestado; libros "lt;lt; endl;

break;

}

b=ReaderDB.

b=BookDB.query(bookid ) ;

if (b==NULL)

{

cout lt; "Este libro no existe y no se puede tomar prestado" lt; ; endl;

romper

}

if (b-gt; libro de préstamo()==0)

{

cout lt;lt; "Este libro ha sido prestado y no puede ser prestado"lt;lt; endl;

cout lt;lt; go "lt;lt; endl;

break;

}

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

break;

case '2':

cout lt; "Devolviendo un libro \n lectorid:"

cin gt;

cout lt;lt; "bookid:";

cin gt;gt;bookid;

r=ReaderDB.query(readerid); >

if (r==NULL)

{

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

romper;

}

b=ReaderDB.

b=BookDB.query(bookid); >if (b ==NULL)

{

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

p>

}

b=BookDB.query(bookid).

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

descanso

caso '3':

BookDB.bookdata() ;

ruptura;

caso '4':

ReaderDB.readerdata(); >predeterminado: coutlt;lt; " Error de entrada, ingrese contenido nuevo: ";