Sistema de gestión de bibliotecas en lenguaje C
#includelt;iostreamgt;
#includelt;fstreamgt;
#includelt;conio.hgt; hgt;
usando el espacio de nombres std;
clase Bibliotecario //Clase bibliotecaria
{
público:
Bibliotecario();
Bibliotecario(int n, int j, char na[20], int w
int getnumber(); ();
char *getname();
int getwages();
void resetjobage(int j
void); resetwages(int w);
void resetname(char na[20]);
privado:
int número
int; jobage;
char name[20];
int salarios;
};
Bibliotecario::Bibliotecario() //Implementación Su función
{
número=0
char b[20]="nadie"
jobage=0;
stracpy(nombre, b);
}
int salarios;
} p>Bibliotecario::Bibliotecario(int n, int j, char na[20], int w)
{
número=n
jobage=j
strcpy; (nombre, na);
salarios=w;
}
int Bibliotecario::getjobage()
{return jobage; }
char *Librarian::getname()
{return name;}
int Librarian::getnumber()
{ número de devolución;}
int Librarian::getwages()
{devolver salarios;}
void Librarian::resetjobage(int j)
{
jobage=j;
}
void Bibliotecario::resetname(char na[20])
{
strcpy(nombre, na);
}
void Bibliotecario::resetwages(int w)
{
salarios=w;
}
lector de clase // clase de lector
{
privado:
int número;
int edad
nombre de carácter[20];
libro de préstamo de caracteres[20];
público:
lector();
lector(int c, int a, char b). [20], char e[20]);
int getnumber();
int getage()
char *getname(); p>
int getnumber();
int getage();
char *getname(); p>
char * getborrowbook();
void reworkborrowbook(char a[20]);
}; <
reader::reader() // Función que lo implementa
{
char a[20]="nadie";
char c[20]="sin libro de préstamo"
número=0; >
edad=0;
}
lector::lector(int a, int c, char d[20], char e[20])
{
número=a;
edad=c;
stracpy( nombre, d
stracpy(libro de préstamo); , e);
}
int lector::getnumber(){número de retorno;}
int lector::getage(){edad de retorno;}
char *reader::getname(){return name;}
char *reader::getborrowbook() {devolver libro de préstamos;}
void * lector ::getname(){return name;}
void lector::reworkborrowbook(char a[20]){strcpy(borrowbook, a );}
struct book //struct para libro
{
int num;
char nombre[20];
p>
char escritor[20] ;
};
void outbookinf() // Muestra toda la información del libro.
{
int i;
ifstream infile("allbook.txt", ios::in
char line[); 50];
coutlt;lt; "Título del libro"lt;'\t'lt;lt; "Número de libro"lt;lt;'\t'lt;lt; ; endl;
for(i=1;ilt;=10;i)
{
infile.getline(línea, 50, '\ n'
coutlt;lt.linelt;lt;endl;
}
.
infile.close(); p>
}
void serchLaninf() //función de información de bibliotecaria
{
int n, i
ifstream; archivo("serchLaninf.txt");
if(archivo) { filegt;gt;n; archivo.close();}
else.
else {coutlt;lt; "No hay programa de gestión de información bibliotecaria"; exit(0);}
ifstream ("controlloer.txt", ios_base::binary); (es)
{
Bibliotecario *A=nuevo Bibliotecario[n]
for(i=0; ilt; n; i )
{
is.read((char *)amp;A[i], sizeof(A[i]));
} p>
for(i=0;ilt;n;i)
{
coutlt;lt; "Número"lt;lt;'\t'lt;lt ;"Edad" lt;'\t'lt;lt; "Nombre"lt;lt;'\t'lt;lt; "Salario"lt;lt;endl; ].getnumber()lt;lt;'\t'lt;lt;"\t'lt;lt;A[i].getjobage()lt;lt;"\t"lt;lt ;A[i]. getname()lt;lt;"\t"lt;lt;"\t"lt;lt;A[i].getwages()lt;lt;endl; p>}
}
else
{
coutlt;lt; "Error al abrir el archivo txt' "lt;lt;endl
}
}
es.close();
}
void libary() / /Información total sobre la biblioteca
{
system("cls ");
system("color 2e"); coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt
;lt;endl;
coutlt;lt;" "lt;lt;endl.
coutlt;lt; "Nuestra biblioteca escolar consta de la biblioteca principal y la biblioteca del campus de Pengzhou. el área total de la biblioteca alcanza **** metros cuadrados";
coutlt;lt;" (La biblioteca cuenta actualmente con **** 10.000 libros de categoría ****, *** *?) categoría libros **** millones),";
coutlt;lt; "El personal existente de la biblioteca ****";
coutlt;lt; "El personal existente de la biblioteca personal existente **** El valor de los equipos modernos supera los **** millones........."lt;lt;endl;
}.
void storelibrarian() //almacena información sobre el nuevo administrador
{
int age, n, num, salario
nombre de char[20];
ifstream file("serchLaninf.txt");
if(file) { filegt;gt;n file.close();}
p>
if(archivo) { filegt;gt;n; archivo.close();}
p>
else.
else { n=0; }
coutlt;lt; "Número de bibliotecarios existentes:";
coutlt;lt;nlt ;lt;endl;
coutlt;lt; años de servicio, nombre y salario del nuevo bibliotecario:";
cingt;gt;numgt.gt; edad gt; gt; nombre gt; gt; salario;
Bibliotecario A (num, edad, nombre, salario);
coutlt;lt; "número edad nombre salario"lt;endl; ;lt;" "lt;lt; A.getjobage()lt;lt;" "lt;lt; A.getname() lt;outfile.write((char *)amp; A, tamaño de(A))
outfile.close();
n;
de flujo tfile("serchLaninf.txt"); >tfilelt;lt;n;
tfile.close();
coutlt;lt; "¡Guardar con éxito!"
}
void void no es verdadero.
void reLaninf() //modificar bibliotecario
{ p>
int i, n, h, jobage, salario, j ;
nombre de char[20];
ifstream file("serchLaninf. txt");
p>
if(file) { filegt; gt;n; file.close();}
else.
else {coutlt;lt; "librarianinfo no tiene un miembro de administración de libros.
";
exit(0);}
coutlt;lt; "Número de bibliotecario ya presente: ";
coutlt;lt;nlt;lt ;endl;
Bibliotecario *A=nuevo Bibliotecario[n];
ifstream is("controller.txt", ios_base::binary
if); (es)
{
for(i=0;ilt;n;i)
{
es.read(( char *)amp; A[i], tamaño de(A[i]));
}
for(i=0;ilt;n;i)
{
coutlt;lt; "Número Edad Nombre Salario"lt;lt;endl
coutlt;lt; ""lt;lt;A[i].getjobage()lt;lt." "lt;lt;A[i].getname()lt;lt;" "lt;lt;lt;A[i].getwages ()lt;lt;endl;
}
}
else
{
coutlt;lt ; "Error al abrir el archivo"lt;lt;endl
}
}
is.close(); lt; "Seleccione el número de administrador que desea cambiar:";
cingt;
coutlt; salario: ";
cingt;gt;jobagegt;gt;namegt;gt;salario;
A[h-1].resetjobage(jobage);
>A[h-1].resetname(name);
A[h-1].resetwages(wage);
coutlt;lt; Es: "lt;lt;A[h-1].getname()lt;lt;" La duración del servicio es: "lt;lt;A[h-1].getjobage()lt;lt;" el salario es: "lt;lt; ;lt;A[h-1].getwages()lt;lt;endl;
ofstream tfile("controlloer.txt", ios_base::binary);
for( j=0; jlt; n; j )
{
tfile.write((char *)amp; A[j], sizeof( A[j]));
}
tfile.write((char *)amp;A[j], tamaño de(A[j]));
}
tfile.write((char *)amp;A[j], tamaño de(A[j])).
tfile
.close();
}
}
void aadbook() //agregar nuevo libro
{
int num; nombre de caracteres[12]; escritor de caracteres[10]; int n;
a:
ofstream fout("allbook.txt",ios::app) ;
coutlt;lt; "Ingrese la información del libro:" lt;lt; endl
coutlt;lt; lt; "Número de libro"; lt; '\t'lt; lt; nombre; lt; ;'\t';
cingt;gt;num;foutlt;lt;numlt;lt;'\t';
cingt;gt;escritor;foutlt;lt ;escritorlt ;lt;'\n';
fout.close();
coutlt;lt; "¿Continúa la entrada? .sí 2.no"lt;lt;endl ; /p>
cingt; gt; n;
if(n==1)
ir a
else
{void Studentland();
studentland();}
}
void delate() // Eliminar función
{ int m;
coutlt;lt; "Seleccione la opción de operación: "lt;lt;endl;
coutlt;lt;" 1. Eliminar toda la información"lt;endl; ;
coutlt;lt;" 2. Eliminar "lt;lt; endl
cingt;gt;m;
{ofstream file ("allbook.txt", ios::trunc);
coutlt;lt; "¡Todo eliminado, presione cualquier tecla para regresar!" ;
file.close();
getch();
system("cls");
void estudiante ()
studentland();
}
char str[10][80], buf[20];
int i=0, bandera=100, c=0;
ifstream fin("allbook.txt");
if(!fin ){
coutlt;lt;" ¡Error al abrir el archivo! " lt; lt; endl;
getch();
system("cls");
void Studentland();
tierra estudiantil();
}
co
utlt;lt; "Ingrese el nombre del libro cuyo título desea eliminar:"lt;lt;endl;
cingt;gt;buf;
strcat( buf, "\t");
while(fin.getline(str[i], 80))
{
if(strncmp(str[ i], buf, strlen(buf))==0)
{
flag=i
}
i;
}
fin.close();
if(flag==100)
{
cout lt;lt; "¡No hay ningún libro que desee eliminar! Presione 1 nuevamente; de lo contrario, 0..."lt;lt;endl;
int
cingt; gt; b;
si(b==1)ir a;
si no c=1; c==0){
ofstream fout(" allbook.txt");
for(int j=0;jlt;i;j){
if(j==bandera)continuar;
foutlt;lt;str[j]lt;lt;endl;
}
fout. );
coutlt;lt; "La información del libro que desea eliminar ha sido eliminada, continúe presionando 1, de lo contrario presione 0..."lt;lt;endl;
int b;
cingt; gt;
if(b==1)ir a
}
coutlt ;lt; "La operación ha finalizado, presione cualquier tecla para regresar..." lt;lt;endl;
getch();
void Studentland();
studentland();
}
void searchbook() // Buscar libros
{
a:
ifstream fin;
int flag=0, b, longitud
char str[; 20 ];
char f[200]; char g[200];
fin.open(" allbook.txt"); fin )
{
coutlt;lt; "Error f1.dat abierto..." lt;lt;endl;
exit(1);
}
while(1)
{
coutlt;lt; "Ingrese el título del libro:"; >
cingt; gt;
strcat(cadena, "\t ");
longitud=strlen(cadena); es;"---------------------
------------"lt;lt;endl;
mientras(fin.getline(f, 199) )
{
strcpy(g, f);
if(strncmp(str, f, longitud)==0)
{
bandera=1; /p>
romper;
}
}
}
if(bandera== 1)
{
coutlt;lt; "El libro consultado ha sido encontrado: "lt;lt;'\n';
coutlt;lt;"----- ----------------------"lt;lt; endl;
coutlt;lt; "Título"lt ; lt;'\t'lt;lt; "Número de libro"lt;lt;lt;'\t'lt;lt; "Autor"lt;lt;lt;lt;lt;lt;'\t'lt; endl ;
coutlt;lt;lt;glt;lt;endl;
coutlt;lt;"----------------- - ---------------"lt;lt;endl;
flag=0;
coutlt;lt; "Para continuar con la consulta, por favor presione 1, de lo contrario presione 0: "lt; lt; endl;
cin gt; gt; b;
if(b==0)break;
}
else.
else
{
fin.close()
coutlt; ;lt; "No existe tal libro, continúe y presione 1, de lo contrario presione 0..." lt;lt;endl;
cingt;gt;b; (b= =0)romper;
ir a
}
}
fin.close(); >
coutlt;lt; "Consulta completada, presione cualquier tecla para regresar..." lt;lt;endl;
getch(); ) ;
void Studentland();
studentland();
}
void seachreader() // Consultar información del lector< / p>
{
a:
ifstream fin;
int flag=0, b, longitud
char; str [20];
char f[200]; char g[200];
fin. ( !fin)
{
coutlt;lt; "¡No hay ningún archivo para este mensaje!" ;
}
mientras(1);
}
si(!fin)
{
p><
p>coutlt;lt; "¡No hay ningún archivo para este mensaje!
while(1)
{
coutlt;lt; "Por favor, ingresa el nombre. del lector que buscas: ";
cingt; gt; str;
strcat( str, "\t");
length=strlen (cadena);
coutlt;lt;"---------------------------------- --"lt;lt;endl;
mientras(fin.getline (f, 199))
{
strcpy(g, f);
if(strncmp(str, f, length)==0)
{
flag=1
break ; p>
p>
}
}
if (flag==1)
{
coutlt; lt; "Encontrado El lector consultado: "lt;lt;'\n';
coutlt;lt;"------------------- --- ----------"lt;lt;endl; {
caso 0:
l='n';
romper;
caso 1: outbookinf();
sistema("pausa");
caso 2; libary() ;
.
system("pausa");
break
Ejemplo 3: libro de búsqueda(); /p>
sistema("pausa");
romper;
Ejemplo 4: seareader();
sistema("pausa");
romper;
}.
else
{
system("cls"); p>
system("color 4e");
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl; ;
coutlt;lt;" p>
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;" ¡La operación no es válida! ! ! ! " lt; lt; endl;
sistema("pausa");
}
}
}
}
void main() // función principal
{
int h, l=1
mientras(l; )
{
sistema("cls");
sistema("color 7c");
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
< pag>coutlt;lt;" "lt;lt;lt;endl;
coutlt;lt;" "lt;lt;" "lt;lt; "Sistema de gestión de biblioteca"lt;lt;endl; /p>
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" - -----------------"lt;lt;endl;
coutlt;lt;" "lt;lt;" "lt;lt;"| Inicio de sesión de administrador Presione 1||
coutlt;lt;" "lt;lt;" "lt;lt;"||Inicio de sesión de estudiante Presione 2 ||"lt;
coutlt;lt;" " lt;lt;"|| Para salir del sistema, presione 0 ||"lt;lt;endl;
coutlt;lt;" ------- --------- - --"lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" Seleccione su método de inicio de sesión: ";
cingt;gt;h;
if(hgt ;=0amp;amp;h lt; 3)
{
interruptor(h)
{
caso 0: p>
coutlt;lt; "¡Gracias por visitar esta biblioteca!"
Librarianland();
Librarianland();
salir(0);
p>
sistema("pausa"); /p>
descanso;
caso 2:
studentland();
sistema ("pausa"); romper
}
}
coutlt;lt;" "lt;endl;
coutlt;lt;" " lt;lt; "¡Su operación no es válida! ! ! ! " lt; lt; endl;
sistema("pausa");
}
}
}
}