Buscar subprograma ensamblador

# incluir & ltiostream.h & gt

# incluir & ltiomanip.h & gt

# incluir & ltstring.h & gt

# incluir & ltfstream. h & gt

const int Maxr = 100; //Número máximo de lectores

const int Maxb = 100; //Número máximo de libros

const int; max bor = 5; //Cada lector puede pedir prestados hasta 5 libros.

Lector de clase //Clase de lector

{

int tag; //Eliminar marca 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

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

{

etiqueta = 0;

no = n;

strcpy(nombre, no aplicable); p>for(int I = 0; i<Maxbori++)

bor book[I]= 0;

}

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

{

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

{

if (borbook[i] ==0)

{

bor libro[I]= bookid;

Retorno;

}

}

}

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

{

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

{

if (borbook[i]==bookid)

{

bor book[I]= 0;

Devuelve 1;

}

}

Devuelve 0;

}

Disp nulo ( ) //Información del lector de salida.

{

cout & lt& ltsetw(5)& lt;& ltNo& lt& ltsetw(10)& lt;& ltName& lt& lt"Número de préstamo:["

;

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

if (borbook[i]!=0)

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

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

}

};

clase RDA base //Clase de biblioteca de lector

{

int top//Puntero de registro de lector

Lectura de lector[Maxr] // Registro de lector

Público:

RDatabase() //El constructor lee lector.txt en lectura[].

{

Lectores;

top =-1;

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

mientras (1)

{

archivo leído((char *)&s,sizeof(s));

if(!archivo)interrumpir;

top++;

leer[top]= s;

}

archivo cerrar. ();

}

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

if (read[i].getno()= = lectorid& & amp lecturas [I]. gettag()==0)

Return & amp se cambia a [I];

Return NULL

}

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

{

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

Leer [i]. disp();

}

anular datos del lector(); //Mantenimiento de la biblioteca del lector

~RDatabase() //Destructor, leer[ ]Escribir en el archivo lector.txt.

{

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

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

{

int elección = 1 ;

char rname[20];

int lectorid

lector * r;

mientras (select!=0)

p>

{

cout & lt& lt"Mantenimiento del lector 1:Agregar 2:Cambiar 3:Eliminar 4:Buscar 5:Mostrar 6:Eliminar todo 0:Salir =>";

p>

CIN>& gtselect;

Interruptor (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"Entrar número de lector de tarjetas:";

CIN & gt;& gtreaderid

r = query(readerid);

if (r== NULL)

{

cout & lt& lt"El lector no existe"

Pausa;

}

cout<<"Ingrese nuevo name:"

CIN>>rname

r->set name(rname);

Break ;

Caso tres:

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.