Red de conocimiento informático - Computadora portátil - Sistema de gestión de bibliotecas en lenguaje C

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]));

}

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

{

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>

}

}

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:

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");

}

}

}

}