La Red de Conocimientos Pedagógicos - Currículum vitae - C Diseñar un sistema sencillo de venta de libros.

C Diseñar un sistema sencillo de venta de libros.

# incluir ltiostream gt

# incluir ltiomanip gt

# incluir ltstring gt

# incluir ltfstream gt

usando el espacio de nombres std

consint Maxr = 100;

consint Maxb = 100;

consint Maxbor = 5

Lector de clases

{

Privado:

inttag

intno

charname[10];

intborbook[ max bor];

Público:

Lector(){}

char * getname(){ return nombre;}

int gettag(){ etiqueta de retorno;}

int getno(){ return no;}

voidsetname(char na[])

{

strcpy (nombre, no aplicable);

}

void del book(){ tag = 1;}

voidaddreader(int n, char *na)

{

etiqueta = 0;

no = n;

strcpy(nombre, no aplicable

no = n; p>

for(inti = 0; iltMaxbori)

bor libro[I]= 0;

}

voidborrowbook( int bookid)

{

for(inti = 0; iltMaxbori)

{

if (borbook[i]==0 )

{

bor libro[I]= bookid;

Retorno;

}

}

}

int libro(int bookid)

{

for(inti = 0; iltMaxbori)

{

if(borbook[i]==bookid)

{

bor libro[I]= 0;

return 1 ;

}

}

return0

}

voiddisp()

{

cout lt ltsetw(5) lt; ltNo lt ltsetw(10) lt; ltNamelt "Número de préstamo: ["; p>

if(borbook[i]! =0)

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

cout lt lt"]" ltendl

}

};

Base de datos de clasificación

{

Privado:

inttop

lector leído [Maxr];

>

Público:

Base de datos()

{

Lector;

arriba =-1;

fstreamfile("reader.txt", IOs::in);

while(1)

{

archivo leído((char *) amp; s, tamaño de (s));

Si (! archivo) se rompe

arriba

leer[top]= s; >

}

archivo .cerrar();

}

voidclear()

{

arriba =-1;

}

intaddreader(int n, char *na)

{

lector * p = consulta (n);

if(p==NULL)

{

arriba;

Leer [arriba]. addreader(n, na);

retorno 1;

}

retorno0

}

Lector * consulta(int lectorid)

{

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

if (leer[i].getno()= = lectorid amp; amp

Leer [I]. gettag()==0)

{

Devolver amp a [I];

}

returnNULL

}

voiddisp()

{

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

Leer [i]. disp();

}

voidreaderdata();

~ rdatabase()

{

fstreamfile ("reader.txt", IOs::out);

for(int i = 0; ilt=topi)

if (leer[i].

gettag()==0)

archivo . write((char *) amp; leer[i], tamaño de(leer[I]);

archivo . close();

}

};

voidRDatabase::readerdata()

{

charchoice

nombre de charr[20];

intreaderid

lector * r;

y (select!='0')

{

cout lt "* * * * *Bienvenido a la edición definitiva del sistema de gestión de ventas de libros* * * * *"< endl

CIN gt; p>

Interruptor (selección)

{

Caso "1":

cout lt lt"* * * * *Menú de operación* * * * *";

CIN gt; gtreaderid

cout lt "* * * * *Cajero* * * * *";

CIN gt ; gtrname

addreader(readerid, rname);

Pausa;

Caso "2":

cout lt lt "* * * * * Administrador* * * * *";

CIN gt; gtreaderid

r = query(readerid);

if(r==NULL )

{

cout lt "* * * * *Cliente* * * * *" < endl

Pausa;

}

cout lt lt"Ingrese nuevo nombre:";

CIN gt; gtrname

r- gt; p>Pausa;

Caso "3":

cout lt lt" Introduzca ISBN: ";

CIN gt; r = query(readerid);

if(r==NULL)

{

cout lt lt"Este libro no existe"

Romper;

}

r- gt; del libro();

Romper;

Caso " 4":

cout lt lt"Leer en ISBN":

CIN gt; gtreaderid

r = query(readerid);

if( r==NULL)

{

cout lt "Este libro no existe"

Pausa;

}

r- gt;disp();

Pausa;

Caso "5":

disp();

p>

Interrupción;

Caso "6":

clear();

Interrupción;

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

}

}

}

Roll Roll

{

Privado:

en

ttag

intno

charname[20];

intonshelf

Público:

Libro(){}

char * getname(){ devolver nombre;}

int getno(){ devolver no;}

int gettag(){ devolver etiqueta;}

voidsetname(char na[])

{

strcpy(nombre, no aplicable);

}

void del libro(){ tag = 1;}

voidaddbook(int n, char *na)

{

tag = 0;

no = n;

strcpy(nombre, no aplicable);

en estante = 1;

}

intborrowbook()

{

if(en uno mismo = = 1)

{

en el estante = 0;

retorno 1;

}

retorno0

}

voidretbook()

{

en el estante = 1;

}

voiddisp()

{

cout lt ltsetw(6) lt ltNolt ltsetw(18) lt; ltNamelt ltsetw(10)

lt lt(onshelf==1? "Agotado")< ltendl

}

};

base de datos clase b

{

Privado:

inttop

libro libro [Maxb] ;

Público:

bDatabase()

{

Librob

arriba =- 1;

fstreamfile("book.txt ",IOs::in);

mientras(1)

{

archivo leído((. char *) amp; b, sizeof(b));

Si (! archivo) se rompe

top;

}

archivo .close()

}

voidclear()

{

arriba =-1;

}

intaddbook(int n, char *na)

{

libro * p = consulta(n);

if(NULL==p)

{

arriba;

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

return 1;

}

return0

}

Libro * Consulta(int bookid)

{

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

if (libro[i].

getno()== bookid amp; gettag()==0)

{

Devolver libro de amplificador[I];

}

returnNULL

}

voidbookdata();

voiddisp()

{

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

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

libro[i]. disp();

}

~ bdatabase()

{

fstreamfile("book.txt ", IOs:: salida );

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

if (libro[i].

gettag()==0)

archivo . write((char *) & libro[i], tamañode(libro[I]);

archivo . close();

}

};

void db base de datos::datos del libro()

{

charchoice

p>

nombre del carbón[40];

intbookid

libro* b;

mientras (select!='0')

{

cout lt lt"\n\n\n\t\tMantenimiento de libros"

CIN gt select;

Cambiar (seleccionar)

{

Caso "1":

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

CIN gt ; gtbookid

cout lt "Ingrese el nombre del libro:"

CIN gt; gtbname

addbook(bookid, bname);

Break ;

Caso "2":

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

CIN gtbookid

b =consulta; (bookid);

if(b==NULL)

{

cout lt lt"Este libro está agotado"< ltendl

Pausa;

}

cout lt lt"Ingrese nuevo título:"

CIN gtbname

b- gt; ; establecer nombre(bname);

Romper

Caso "3":

cout lt lt"Leer en ISBN:"

CIN gt; gtbookid

b =query(bookid);

if(b==NULL)

{

cout lt lt"Este libro está agotado"< ltendl

break;

}

b- gt;del book();

Pausa;

Caso "4":

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

CIN gt gtbookid

b =query(bookid);

if(b==NULL)

{

cout lt lt"Este libro no existe"

p>

Romper;

}

b- gt; disp();

Romper;

Caso "5" :

disp();

Romper

Caso "6":

clear(); >

Pausa;

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

}

}

}

voidmain()

{

charchoice

intbookid, lectorid

RDatabaseReaderDB

lector * r;

BDatabaseBookDB<

/p>

Libro* b;

Y (select!='0')

{

cout lt ltendl lt ltendl lt lt" libro Sistema de Gestión de Ventas\t\t\t\n\n";

CIN gt; gt selección;

Switch (selección)

{

Caso "1":

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

CIN gt; gtreaderid

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

CIN gt; gtbookid

r = lectordb. query(readerid);

if(NULL==r)

{

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

Break;

}

b = bookdb . query(bookid);

if(b==NULL)

{

cout lt lt"Este libro no existe, entonces No puedes comprar este libro"< ltendl

break;

}

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

{

cout lt lt"El libro se ha agotado y ya no puedes comprarlo"< ltendl

Romper

}

r - gt; pedir prestado(b- gt; getno());

Romper

Caso "2":

cout lt lt"Comprar libro\ nnúmero de libro: ";

CIN gt; gtreaderid

cout lt"número de libro: ";

CIN gtbookid;

r = lectordb . query(readerid);

if(r==NULL)

{

cout lt lt"Esto El libro no existe, por lo que no puedes comprar este libro" < ltendl

break;

}

b = bookdb. query(bookid);

if(b ==NULL)

{

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

Romper;

p>

}

b- gt; ret libro();

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

Pausa;

Caso "3":

bookdb.book data();

Pausa;

Caso "4":

reader db .reader data();

Pausa;

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

}

}

}