//
#include "book.h"
# include & ltiostream & gt
# include & ltwindows.h & gt
# include & ltconio.h & gt
# include & ltfstream & gt
Usar espacio de nombres std
Void gotoxy( int x, int y) //Columna x: 0~79 Fila y: 0~24.
{
HANDLE hConsole = GetStdHandle(STD _ OUTPUT _ HANDLE
COORD coordScreen={x, y }; SetConsoleCursorPosition(hConsole, coord screen);
Return;
}
Plantilla & lttypename T & gt
void show_data(int x , int y, T datos)
{
gotoxy(x, y);
cout & lt& lt datos;
}
Plantilla y lttypename T & gt
void input_data(int x, int y, char Prompt[], T & amp data)
{
gotoxy(x, y);
cout & lt& lt rápido
CIN & gt & gt datos; >
Int show_main_menu() //Muestra el menú principal y selecciona.
{
char ch
mientras (1)
{
system("cls");
show_data(4,1,"┌─────────────────────────────┐"); p >
show_data(4, 2, "││");
Show_data(4, 3, "│Gestión de biblioteca│"); , "││");
show_data(4,5,"└──────────────────────────── ─┘ ");
Mostrar _ datos (20, 8, "1-Agregar información del libro");
Mostrar _ datos (20, 10, "2-Modificar información del libro ") ;
Mostrar _ datos (20, 12, "3-Eliminar información del libro");
Mostrar _ datos (20, 14, "4-Buscar información del libro")
Mostrar_datos (20, 16, "0-Salir");
Mostrar_datos (20, 18, "Seleccione"
ch = getche); ();
if(ch & gt;= ' 0 ' & amp& ampch & lt='4')
break;
}
Regresar cap-48;
}
int main()
{ int seleccionado = 0;
int n = 0;
LIBRO LIBRO[MAX _ LIBRO];
cargar_datos_desde_archivo(libro, n);
mientras (1)
{
seleccionado = mostrar _ menú principal _();
Cambiar (seleccionado)
{
Caso 1: add_book( libro , n); romper;
Caso 2: actualizar_libro (libro, n);
Caso 3: borrar_libro (libro, n); >Caso 4: view_book(libro, n); roto;
Caso 0: roto
};
if (seleccionado == 0)
p>
{
Show_data(20, 20, "Salir de la gestión de biblioteca, ¡gracias! \n ");
Pausa;
}
}
save_data_to_file(libro, n);
Return 0;
}
void add_book(Libro libro[], int & ampN) //Agregar nuevo libro
{
Reservar bk;
mientras (1)
{
Sistema("cls");
Input_data(4, 2, " Número de libro (finaliza cuando se ingresa 0): ", bk. Book_no);
if (strcmp("0", bk.book_no)==0)
Break;
Input_data(4, 4, "Nombre del libro:", bk. book_name
Input_data (4, 6, "Autor:", bk. Autor); /p>
p>
Input_data(4,8,"Editor:",bk.publisher);
input_data(4,10,"ISBN:",bk.
ISBN);
Input_data(4, 12, "Precio del libro:", bk . precio
Input_data (4, 14, "Número total de páginas:", bk . páginas );
char yn
Input_data(4, 16, "¿Quieres guardar (s/n?): ", yn ); if (' y'==yn || 'Y'==yn)
{
libro[n]= bk;
n++; p>
}
}
}
void update_book(Libro libro[], int & ampN) //Modificar libro
{ BP predeterminado;
int i, j, k, a;
char p;
mientras (1)
{
p>
System("cls");
a = 0;
Input_data(4, 2, "Ingrese el número del libro para modificar (finaliza cuando se ingresa 0): ", BP.book_no);
if (strcmp("0 ",bp.book_no)==0)
Break;
for( i = 0;i<n;i++)
{if(strcmp(libro[i]).book_no,bp.book_no)==0)
{ BP = libro[ I]; a = 1; descanso }
}
if (a==0)
{show_data(4) , 4, "No se encontró ningún libro "); Sistema("Pausa");}
Otro
{
Mostrar _ datos (2, 4, " 1-ISBN: ");
Mostrar _ datos (2, 6, " 2-nombre del libro: ");
Mostrar _ datos (2, 8, " 3-autor : ");
Mostrar _ datos (2, 10, " 4-Presione: ");
mostrar_datos (2, 12, " 5-ISBN: "); p>
Mostrar _ datos (2, 14, "Precio de 6 copias:");
Mostrar _ datos (2, 16, "7-Número total de páginas:"); p>
Mostrar_datos (2, 18, "0-fin de modificación");
mostrar_datos (16, 4, BP. libro_no); 16, 6, BP . libro _ nombre);
show_data(16,8,BP.autor);
show_data(16,10,BP.publisher);
show_data(16,12, pb. ISBN);
show_data(16, 14, BP . precio);
show_data(16, 16, BP . páginas); 0;j<15;j++)
{show_data(2, 20, "Ingrese el número de serie antes de modificar");
p = getche();
k = p-48;
si(k & gt;=1.
& ampk & lt=7)
switch(k)
{caso 1:input_data(38, 4, "", BP . book _ no
Caso 2: input_data (38, 6, "", BP . nombre del libro roto;
Caso 3: input_data (38, 8, "", BP . autor roto); ;
Caso 4: input_data(38, 10, "", BP . editor;
Caso 5: input_data (38, 12, "", pb. ISBN); ;Pausa;
Caso 6: input_data(38, 14, "", BP . precio
Caso 7: input_data(38, 16, "", BP . páginas); p>char yn
Input_data(4, 22, "¿Quieres guardar (s/n?): ", yn);
if(' Y ' = = yn | ' Y ' = = yn)libro[I]= BP;
}
}
}
void eliminar_libro( Libro libro [], int & ampN) //Eliminar libros
{
Libro bq;
int i, j;
while ( 1)
{
System("cls");
Input_data(4, 2, "Ingrese el número del libro que desea eliminar (fin cuando se ingresa 0) :", bq. book_no);
if (strcmp("0 ", bq.book_no)==0)
Break;
for (i = 0;i<n;i++)
{if(strcmp(libro[i]).
book_no, bq .book_no)==0){ j = i;break;}}
if (i==n)
{show_data(4,4," Reservar no encontrado"); System("Pausa");}
Otro
{
Show_data(1, 4, "Número de libro:"); p>
Show_data(1,6,"Nombre del libro:");
Show_data(1,8,"Autor:");
Show_data(1,10, "Prensa:");
show_data(1,12," ISBN:");
Show_data(1,14,"Precio del libro:");
Show_data(1, 16, "Número total de páginas:");
show_data(10, 4, libro[j].book_no);
show_data(10, 6 , libro[j].nombre_libro);
show_data(10, 8, libro[j].autor);
show_data(10, 10, libro[j ].Editor) ;
show_data(10, 12, libro[j].ISBN);
show_data(10, 14, libro[j].Precio);
p>show_data(10, 16, libro[j].número de página);
char yn
Input_data(4, 18, "¿Quieres eliminar (y/n? ): ",yn);
if ('y'==yn || 'Y'==yn)
{ for(I = 0; i<= n-j;i++ )
libro[I+j]= libro[I+j+1];
n-;}
}
}
}
Voidview _ book (bookbook [], int n) // Explora toda la información del libro.
{
int i, fila
sistema("cls");
si (n==0)
{
Show_data(10, 10, "No hay información del libro, ¡salir!");
Sistema ("pausa");
Regresar ;
}
fila = 3;
for(I = 0;i<n;i++)
{
if (fila==3)
{ system(" cls ");
Show_data(0, 1, "número de libro");
Show_data(12,1,"Título del libro");
show_data(341,"Autor");
show_data(561,"Editor"); >show_data(0, 2, "-");
}
show_data(0, fila, libro[i].book_no);
show_data( 12, fila, libro[i].
book_name);
show_data(34, fila, libro[i].Autor);
show_data(56, fila, libro[i].Editor);
p>
fila++;
if(fila & gt;=20 || i==n-1)
{
Mostrar_datos( 5, fila+1, "Presione cualquier tecla para continuar");
getche();
fila = 3; p>}
}
void load _ data _ from _ file(bookbook[], int & ampN) //Importar datos desde el disco "book.dat"
{ int I;
ifstream infile("libro.dat ", IOs::in
infile & gt& gtn; I = 0 ;i<n;i++)
archivo>>book[i]. libro _ no & gt& gtbook[i]. nombre_libro>& gtbook[i]. Autor>& gtbook[i]. editor>& gtbook[i]. ISBN>& gtbook[i]. precio>& gtbook[i]. Número de páginas;
infile . close();
}
void save _ data _ to _ file(libro libro[], int n)/ / Almacenar datos en el disco "book.dat".
{ int I;
de flujo de salida(" libro . dat ");
if (!archivo de salida)
{ cerr & lt& lt" open book.dat reeor " & lt& ltendl
Salir(1);
}
outfile & lt& ltn & lt& ltendl p>
for(i = 0;i<n;i++)
archivo de salida<<book[i]. libro _ no & lt& lt" " " & lt& ltbook[yo]. nombre_libro & lt& lt" " " & lt& ltbook[yo]. Autor& lt& lt" "
& lt& ltLibro[I]. Editorial & lt& lt" " " & lt& ltbooks[i]. ISBN & lt& lt" " " & lt& ltbooks[i]. precio& lt& lt" " " & lt& ltbook[i].page<& ltendl
outfile . close();
}
Este soy mi código. Elimina el parte del libro y simplemente cambie el contenido de la comparación del número del libro al título del libro