Programación del programa de gestión de bibliotecas en lenguaje C
Esto es c
#includelt;iostreamgt;
#includelt;fstreamgt
#includelt;conio.hgt; p>
usando el espacio de nombres std;
clase Bibliotecario //Clase bibliotecaria
{
público:
Bibliotecaria ();
Bibliotecario(int n, int j, char na[20], int w
int getnumber()
int getjobage(); /p>
char *getname();
int getwages();
void resetjobage(int j
void resetwages (int w);
void resetname(char na[20]);
privado:
int número
int jobage
p>
char name[20];
int salarios;
};
Bibliotecario::Bibliotecario() //su función Implementación de
{
número=0
char b[20]="nadie"
trabajo=0; >
strcpy(nombre, b);
}
Bibliotecario::Bibliotecario(int n, int j, char na[20], int w)
{
número=n;
trabajo=j;
strcpy(nombre,na
salario=w);
}
int Bibliotecario::getjobage()
{return jobage;}
char *Bibliotecario:: getname()
{return name;}
int Librarian::getnumber()
{return number;}
int Librarian :: getwages ()
{devolver salarios;}
void Bibliotecario: :resetjobage(int j)
{
jobage= j; /p>
}
void Bibliotecario::resetname(char na[20])
{
strcpy(nombre, na) ; p>
}
void Bibliotecario::resetwages(int w)
{
salarios=w
}
lector de clase //Clase de lector
{
privado:
número int
r;
int edad;
nombre de char[20];
libro de préstamo de char[20]; >
lector();
lector(int c, int a, char b[20], char e[20]); p> p>
int getage();
char *getname();
char * getborrowbook()
void reworkborrowbook(char a). [20 ]);
};
reader::reader() //implementación de su función
{
char a [20 ]="Nadie";
char c[20]="No hay libros prestados"
número=0
edad=0;
edad=0; p>
}
lector::lector(int a, int c, char d[20], char e[20])
{
número=a;
edad=c;
strcpy(nombre, d
strcpy(); libro de préstamo, e);
}
int lector::getnumber(){número de retorno;}
int lector::getage(){edad de retorno; }
char *reader ::getname(){return name;}
char * lector::getborrowbook(){return lendbook;}
void lector ::reworkborrowbook(char a[20]){ strcpy(borrowbook, a);}
struct book //La estructura del libro
{
int num;
nombre de caracteres [20];
escritor de caracteres[20];
};
void outbookinf() / /Generar toda la información del libro
{
int i;
ifstream infile("allbook.txt", ios::in
<); p>char line[50];coutlt;lt;"Título del libro"lt;lt;'\t'lt;lt;"Número de libro"lt;lt;'\t'lt;lt ;"Autor"lt;lt;endl;
for(i=1;ilt;=10;i)
{
infile.getline(línea , 50, '\n');
coutlt;lt;linelt;lt;endl;
}
infile.close(); >
}
void serchLaninf() //Función de información del bibliotecario
{
int n, i
archivo ifstream; ("
serchLaninf.txt");
if(file) { filegt;gt;n; file.close();}
else {coutlt;lt;"No hay gestión de información de gestión de biblioteca miembro"; salida(0);}
ifstream es("controlloer.txt", ios_base::binary);
if(es)
{
Bibliotecario *A=nuevo Bibliotecario[n];
for(i=0;ilt;n;i)
{
is.read((char *)amp;A[i],sizeof(A[i]));
}
for(i=0;ilt;n; i )
{
coutlt;lt;"número"lt;lt;'\t'lt;lt;"duración del servicio"lt;lt;'\t'lt ;lt ;"nombre"lt;lt;'\t'lt;lt;"salario"lt;lt;endl
coutlt;lt;A[i].getnumber()lt;lt; "\ t"lt;lt;A[i].getjobage()lt;lt;"\t"lt;lt;A[i].getname()lt;lt;"\t"lt;lt;A[ i] .getwages()lt;lt;endl;
}
}
else
{
coutlt ;lt; "Error al abrir el archivo de texto'"lt;endl;
}
is.close(); >
void libary() //Información general de la biblioteca
{
system("cls");
system("color 2e" );
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl; ;" "lt;lt;endl;
coutlt;lt;"La biblioteca de la escuela consta de la biblioteca principal y la biblioteca del campus de Pengzhou, con una superficie total de **** metros cuadrados";
coutlt;lt;" (La biblioteca cuenta actualmente con ***10,000 volúmenes de libros de categoría ***, ****10,000 volúmenes de libros de categoría **** y **** 10.000 volúmenes de libros de categoría ****. **** libros ****10.000 volúmenes),";
coutlt;lt;"La biblioteca tiene *** nombres de los miembros actuales del personal" ;
coutlt;lt; ;"El moderno equipamiento existente de la biblioteca vale más de **** millones de yuanes..."lt;lt;endl; >
void storelibrarian() / /Guarda la información del nuevo administrador
{
int age, n, num, salarial
char name[20; ];
ifstream file("serchLaninf.txt");
if(archivo) { filegt;gt;n; >else { n=0 ;}
coutlt;lt;"Número de bibliotecarios existentes:";
coutlt;lt;nlt;lt;endl;
>
coutlt;lt;"Ingrese el número, la duración del servicio, el nombre y el salario del nuevo bibliotecario:";
cingt;gt;numgt;gt;agegt;gt;namegt;gt ;salario ;
Bibliotecario A(num, edad, nombre, salario);
coutlt;lt; "Número, antigüedad en el servicio, nombre, salario"lt;endl;
coutlt;lt;A.getnumber()lt;lt;" "lt;lt;A.getjobage()lt;lt;" "lt;lt;A.getname()lt;lt; " "lt;lt;A .getwages()lt;lt;endl;
ofstream outfile("controlloer.txt",ios_base::app
outfile.write(); (char *)amp;A , tamañode(A));
outfile.close();
n
ofstream tfile("serchLaninf.txt; ");
tfilelt;lt;n;
tfile.close();
coutlt;lt; "¡Guardar correctamente!";
}
void reLaninf() //Modificar bibliotecario
{
int i, n, h, jobage, salario, j
nombre de carácter[20];
ifstream file("serchLaninf.txt");
if(archivo) { filegt;gt;n; ;}
else {coutlt;lt;"No hay bibliotecario";
exit(0);}
coutlt;lt;"Número de bibliotecario existente: " ;
coutlt;lt;nlt;lt;endl;
Bibliotecario *A=nuevo Bibliotecario[n]
ifstream is(" controlloer.txt" , ios_base::binary);
if(es)
{
for(i=0;ilt;n;i)
{
is.read((char *)amp;A[i], sizeof(A[i]));
}
para (i=0; ilt; n; i)
{
coutlt;lt;"Nº Antigüedad Nombre Salario"lt;lt;endl
coutlt;lt;A[i].getnumber()lt;lt;" "lt;lt;A[i].getjobage()lt;lt;" "lt;lt;A[i].getname()lt; lt;" "lt;lt;A[i].getwages()lt;lt;endl;
}
}
else
{
coutlt;lt;"Error al abrir el archivo"lt;lt;endl;
}
is.close(); >
coutlt;lt;"Por favor seleccione
El número de administrador que desea modificar: ";
cingt; gt; h;
coutlt; lt; "Ingrese la nueva antigüedad, nombre, salario: "; p>
cingt;gt;jobagegt;gt;namegt;gt;salario;
A[h-1].resetjobage(jobage); ]. resetname(nombre);
A[h-1].resetwages(wage);
coutlt;lt;"El nombre modificado es: "lt;lt; [h-1].getname()lt;lt;" La antigüedad es: "lt;lt;A[h-1].getjobage()lt;lt;" El salario es: "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.close();
}
void aadbook() //Agregar un 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;"Título del libro"lt;lt;'\t'lt; ; lt;"número de libro"lt;lt;'\t'lt;lt;"autor"lt;lt;endl
cingt;gt;name;foutlt;lt;namelt;lt;' \t ';
cingt;gt;num;foutlt;lt;numlt;lt;'\t';
cingt;gt;escritor;foutlt;lt;escritorlt;lt ;' \n';
fout.close();
coutlt;lt; "¿Quieres continuar escribiendo? 1. Sí 2. No"lt; ;
cingt; gt;
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;lt ;endl;
coutlt;lt;" >
coutlt;lt;" 2. Eliminación única "lt;lt;endl;
cingt;gt;m; p>
if(m==1)
{ofstream file("allbook.txt",ios::trunc);
coutlt;lt;"Todo eliminado, presione cualquier tecla para regresar!"lt;
lt; endl;
archivo.close();
getch();
sistema("cls"); tierra de estudiantes();
tierra de estudiantes();
}
char str[10][80], buf[20]; >a:
int i=0, bandera=100, c=0;
ifstream fin("allbook.txt");
if(! fin){
coutlt;lt;"¡Error al abrir el archivo!"lt;lt;endl;
getch(); ) ;
void Studentland();
studentland();
}
coutlt;lt;"Por favor, introduce lo que quieras para eliminar Título del libro: "lt; lt; endl;
cingt; gt; buf;
strcat(buf, "\t");
while (fin .getline(str[i], 80))
{
if(strncmp(str[i],buf,strlen(buf))==0) p>
{
flag=i;
}
i
}
fin; .close ();
if(flag==100)
{
coutlt;lt;"¡No hay ningún libro que desees eliminar! Presiona 1 de nuevo, en caso contrario 0 ....."lt;lt;endl;
int b;
cingt;gt;b;
if(b= =1)ir a;
else c=1;
}
if(c==0){
ofstream ("allbook. txt");
for(int j=0;jlt;i;j){
if(j==flag)continue; p>foutlt; str[j]lt; endl;
}
fout.close(); libros que desea eliminar La información ha sido eliminada, continúe presionando 1, de lo contrario presione 0....."lt;lt;endl;
int b;
cingt; gt;b;
if(b==1)goto a;
}
coutlt;lt;"La operación ha finalizado, presione cualquier tecla para return..."lt ;lt; endl;
getch();
system("cls");
void Studentland(); p>
studentland ();
}
void searchbook() // Buscar libros
{
a:
ifstream fin;
int flag=0, b, longitud;
char str[20]
char f[200] ; carbón
g[200];
fin.open("todolibro.txt");
if(!fin)
{
coutlt;lt;"Error f1.dat abierto..."lt;lt;endl;
exit(1); 1)
{
coutlt;lt;"Ingrese el título del libro:"
cingt;gt;str; strcat(cadena, "\t");
length=strlen(cadena);
coutlt;lt;"------------- - ----------------------"lt;lt;endl;
mientras(fin.getline(f, 199))
{
strcpy(g, f);
if(strncmp(str, f, longitud)==0)
{ p>
bandera=1;
romper;
}
}
if(bandera==1) p>
p>
{
coutlt;lt;"El libro consultado ha sido encontrado: "lt;lt;'\n'; ;"--- --------------------------------"lt;lt;endl
coutlt;lt;" Título del libro "lt;lt;'\t'lt;lt;"ISBN"lt;lt;'\t'lt;lt;"Autor"lt;lt;'\t'lt;lt ;endl;
coutlt;lt;glt;lt;endl;
coutlt;lt;"------------------ -------- ------"lt;lt;endl;
flag=0;
coutlt;lt;" Para continuar con la consulta, presione 1, de lo contrario presione 0: "lt;lt ;endl;
cingt;gt;b;
if(b==0)break;
}
else
else
p>
{
fin.close()
coutlt; ;lt;"Si no existe tal libro, continúe presionando 1; de lo contrario, presione 0..."lt;endl;
cingt; (b==0)romper;
ir a
}
}
fin.close(); >
coutlt;lt;"Consulta completada, presione cualquier tecla para regresar..."lt;endl
getch(); );
void Studentland();
studentland();
}
void seacreader() // Consultar información del lector
{
a:
ifstream fin;
int flag=0, b, longitud
char; str[20];
char f[200]; char g[200];
.open("readernum.txt");
if(!fin)
{
coutlt;lt;"¡No existe tal archivo de información!" lt; lt; endl;
salir(1);
}
mientras(1)
{
coutlt;lt;"Ingrese el nombre del lector que está buscando:";
cingt;gt;str;
strcat(str, "\t") ;
longitud=strlen(str);
coutlt;lt;"---------------------- -------- --------"lt;lt;endl;
mientras(fin.getline(f, 199))
{
strcpy( g, f);
if(strncmp(str, f, longitud)==0)
{
bandera =1;
romper;
}
}
if(bandera==1)
{
coutlt ;lt;"El lector consultado ha encontrado: "lt;lt;'\n'
coutlt;lt;"---------- ------- ---------------"lt;lt;endl;
coutlt;lt;"Nombre"lt;lt;'\t 'lt;lt;"Número "lt;lt;'\t'lt;lt;"Edad"lt;lt;'\t'lt;lt;"Número de libros prestados"lt;lt;endl; >
coutlt;lt; glt;lt;endl;
coutlt;lt;"----------------------- -------- "lt;lt;endl;
flag=0;
coutlt;lt;" Para continuar con la consulta, presione 1, de lo contrario presione 0: "lt;lt;endl;
cingt; gt; b;
if(b==0)break;
ir a a;
}
else
{
fin.close();
coutlt;lt; persona, continúe presionando 1, de lo contrario presione 0..." lt; lt; endl;
cingt; gt; b;
if(b==0)break;
ir a;
}
}
fin.close();
coutlt;lt; Consulta completada, presione cualquier tecla para regresar..." lt; lt; endl;
getch();
system("cls");
void Studentland();
Studentland();
}
/*void seareader() //Consultar información del lector
{
int i, b , h=0;
char a[20];
ifstream file("readernum.txt");
if(archivo) { filegt; gt ;b; archivo.c
perder();}
else { coutlt;lt;"Sin archivo";}
coutlt;lt;"Número de lectores existentes:"
coutlt;lt;blt;lt;endl;
lector *A=nuevo lector[b];
ifstream is("reader.txt", ios_base::binary)
si(es)
{
for(i=0;ilt;b;i)
{
is.read((char *)amp;A[i], sizeof(A[i]));
}
}
else
{
coutlt;lt;"Error al abrir el archivo txt"lt;lt;endl;
}
es. );
coutlt;lt;"Ingrese el nombre del lector que está buscando:"
cingt;gt;a
for( i =0; b; i )
{
if(strcmp(A[i].getname(), a)==0)
{
coutlt;lt;"Estado de préstamo del nombre de edad del número"lt;lt;endl
coutlt;lt;A[i].getnumber()lt;lt;" "lt;lt;A[i].getage()lt;lt;" "lt;lt;A[i].getname()lt;" "lt;lt;A[i].getborrowbook()lt ;lt; endl;
h
}
}
if(h==0)coutlt;lt;"No ¡Este lector ";
}
*/
void Librarianland() //Función de inicio de sesión de administrador
{
int q, l=1, i, h;
sistema("cls");
sistema("color 2e"); coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;"Ahora para confirmar la identidad, ingrese la contraseña: "
cingt;gt;i; while(l)
{
if(i==00000)
{
sistema("cls" ); p>
p>
system("color 3e");
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" " lt;lt;endl ;
coutlt;lt;" "lt;lt;endl
coutlt;lt;" "lt;lt;"|****** *" lt;lt ;"0, volver al menú anterior."lt;lt;" ******|"lt;lt;endl;
coutlt;lt;" "lt; lt;"|* ******"lt;l
t;"1, Consulta la información del bibliotecario"lt;lt;" ******|"lt;lt;endl;
coutlt;lt;" "lt;lt;" | **********" lt; lt; "2, guarda la nueva información del administrador "lt; lt;" ******|"lt; lt; endl;
. coutlt;lt;" "lt;lt;"|************" lt;lt;"3. Modificar la información del bibliotecario"lt;lt;" ******|" lt; lt; ***|"lt;lt;endl;
coutlt;lt;" "lt;lt;"|*******" lt;lt;"5, eliminar book"lt; lt;" ******|"lt;lt;endl;
coutlt;lt;"Por favor seleccione la acción a realizar:";
cingt ;gt;q;
if(qgt;=0amp;amp;qlt;6)
{
interruptor(q)
{
caso 0:
l=0;
romper;
caso 1: serchLaninf();
sistema( "pausa");
romper;
caso 2: storelibrarian();
sistema("pausa"); >
caso 3: reLaninf();
sistema("pausa");
descanso
caso 4:
void aadbook()
aadbook();
romper;
caso 5:
void delate(); p>
retrasar();
romper;
predeterminado:
romper
}
}
else
{
sistema("cls");
sistema("color 4e"); >
coutlt ;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt; lt;endl;
coutlt;lt;" "lt;lt;"¡La operación no es válida! "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
sistema("pausa"
}
}
else
{
sistema("cls");
sistema("color 2e"); ""lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;
lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;" Error en la verificación de identidad"lt;lt;endl;
coutlt;lt;" "lt;lt;" ¿Quieres reconfirmar? "lt;lt;endl;
coutlt;lt;" "Presiona 1 para volver a confirmar y presiona 0 para rendirte"lt; endl;
coutlt; lt; " ";
gt;
if(h==0) l=0; >
if(h==1)
{
sistema("cls");
sistema("color 2e"); p>
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt; ;lt;endl;
coutlt;lt;" "lt;lt;"Por favor, introduzca la contraseña nuevamente: ";
cingt;gt;i; >}
}
}
}
void Studentland() //Función de inicio de sesión para estudiantes
{
int h;
char l='y';
mientras(l=='y')
{ < / p>
sistema("cls");
sistema("color 3e");
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;" "lt; ;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl; lt;" "lt;lt;"****** "lt;lt;"|Para generar información sobre la colección de libros, presione 1 | "lt;lt;"******"lt;lt;endl ;
coutlt;lt;" "lt;lt;"****** "lt;lt;"|Para consultar la información general de la biblioteca, por favor presione 2| "lt;lt; "** ****"lt;lt;endl;
coutlt;lt;" "lt;lt;"****** "lt;lt;"|Para buscar libros por título, haga clic en 3 | "lt;lt;"******"lt;lt;endl;
coutlt;lt;" "lt;lt;"****** " lt;lt; "|Para consultar información del lector, presione 4 | "lt;lt;"******"lt;lt;endl
coutlt;lt;" "lt;lt; ;" ** **** "lt;lt;"|Para volver al menú anterior, presione 0 | "lt;lt;"******"lt;lt;endl; p>coutlt;lt ;"Seleccione la acción que realizará:";
cingt;gt;h;
if(hgt;=0amp;amp;hlt;5)
interruptor(h)
{
caso 0:
l='n';
/p>
ruptura;
caso 1: outbookinf();
sistema("pausa"); p>caso 2: biblioteca();
sistema("pausa");
descanso
caso 3: libro de búsqueda();
sistema("pausa");
romper;
caso 4: seareader();
sistema("pausa"); >
romper;
}
else
{
sistema("cls"); >system("color 4e");
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl; >
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;"¡¡¡Tu operación no es válida!!!"lt;lt;endl p>
system("pausa");
}
}
}
void main() // Principal función
{
int h, l=1
mientras(l)
{
sistema ("cls");
system("color 7c");
coutlt;lt;" "lt;lt;endl; ;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;" Sistema de gestión de libros " lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;lt;" "lt;lt;endl;
coutlt;" "lt;lt;endl; >coutlt;lt;" ------------------"lt;lt;endl;
coutlt;lt;" "lt;lt ;"| |Inicio de sesión de administrador, presione 1||"lt;lt;endl;
coutlt;lt;" "lt;lt;"||Inicio de sesión de estudiante, presione 2 ||"lt;lt ;endl ;
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;" Seleccione el método de inicio de sesión: "
cingt;gt;h
if(hgt;=0amp;amp;hlt;3)
{
interruptor(h)
{
caso 0:
coutlt;lt;"Gracias por visitarnos este libro Pabellón! "lt;lt;endl;
salir(0);
caso 1:
Librarianland()
;
sistema("pausa");
pausa;
caso 2:
estudiante(); p>sistema("pausa");
romper;
}
}
else
{
sistema("cls");
sistema("color 4e");
coutlt;lt;" "lt;lt;endl; p>
coutlt;lt;" "lt;lt;endl;
p>
coutlt;lt;" "lt;lt;endl; lt;" "lt;lt;endl;
coutlt;lt;" "lt ;lt;"¡¡¡Su operación no es válida!!!"lt;lt;endl
system; ("pausa");
}
}
}