Recompensa por puntuación alta y solicitud urgente de un fragmento de código fuente
#include
#include
#include
usando el espacio de nombres std;
clase Bibliotecario //Clase Bibliotecario
{
público:
Bibliotecario();
Bibliotecario (int n,int j,char na[20],int w );
int getnumber();
int getjobage();
char * getname( );
int getwages();
void resetjobage(int j);
void resetwages(int w);
void resetname(char na[20]);
privado:
número int;
int jobage;
nombre char[ 20] ;
int salarios;
};
Bibliotecario::Bibliotecario() //Implementación de su función
{
número=0;
char b[20]="nadie";
jobage=0;
strcpy(nombre, b) ;
}
Bibliotecario::Bibliotecario(int n,int j,char na[20],int w)
{
número=n;
empleo=j;
strcpy(nombre,na);
salario=w;
}
int Librarian::getjobage()
{return jobage;}
char *Librarian::getname()
{ return nombre ;}
int Bibliotecario::getnumber()
{return number;}
int Bibliotecario::getwages()
{ devolver salarios;}
void Librarian::resetjobage(int j)
{
jobage=j;
}
void Librarian::resetname(char na[20])
{
strcpy(name,na);
} p>
void Librarian::resetwages(int w)
{
salarios=w;
}
lector de clase // Clase de lector
{
privado:
número int;
edad int;
nombre de carácter [20 ];
libro de préstamos char[20];
público:
lector();
lector(int c,int a,char b [20],char e[20]);
int getnumber();
int getage();
char *getname(); p> p>
char * getborrowbook();
void reworkborrowbook(char a[20]);
};
lector::lector () //Implementación de su función
{
char a[20]="Nadie";
char c[20]="No prestado libro" ;
número=0;
edad=0;
}
lector::lector(int a,int c ,char d[20],char e[20])
{
número=a;
edad=c;
strcpy( nombre,d);
strcpy(borrowbook,e);
}
int lector::getnumber(){número de retorno;} p>
int lector::getage(){edad de retorno;}
char *reader::getname(){nombre de retorno;}
char * lector::getborrowbook () {return lendbook;}
void lector::reworkborrowbook(char a[20]){strcpy(borrowbook,a);}
struct book //La estructura del libro
p>{
int num;
char nombre[20];
char escritor[20];
} ;
void outbookinf() //Generar toda la información del libro
{
int i;
ifstream infile ("allbook.txt ",ios::in);
char line[50];
cout<<"Título del libro"<<'\t'<<"Libro número"<<'\ t'<<"Autor"< for(i=1;i<=10;i++) { infile.getline( línea,50,'\n'); cout< } infile.close( ); } void serchLaninf() //Función de información del bibliotecario { int n,i; archivo ifstream("serchLani nf.txt"); if(file) { file>>n; file.close();} else {cout<<"Sin administrador de información de biblioteca" ; salir (0);} ifstream is("controlloer.txt",ios_base::binary); if(is) { p> Bibliotecario *A=nuevo Bibliotecario[n]; for(i=0;i { es .read ((char *)&A[i],sizeof(A[i])); } for(i=0;i p> { cout<<"Número"<<'\t'<<"Antigüedad"<<'\t'<<"Nombre"<<'\t' <<" Salario"< cout< } } else { cout<<"Error al abrir archivo de texto'"< } is.close (); } void libary() //Información general de la biblioteca { system("cls") ; system("color 2e"); cout<<" "< cout<<" "< cout<<" "< cout<<"La biblioteca de la escuela consta de la biblioteca principal y la biblioteca del campus de Pengzhou, con una superficie total de ** ** metros cuadrados"; cout<<" (La biblioteca ahora tiene ***10,000 libros sobre ***, ****10,000 libros sobre **** y libros sobre **** en **** Diez mil volúmenes de **** libros **** diez mil volúmenes),"; cout<<"El número de miembros actuales del personal en la biblioteca es ***" ; cout< <"El moderno equipamiento existente de la biblioteca vale más de **** millones de yuanes..."< } void storelibrarian() //Guardar Ingrese la información del nuevo administrador { int age,n,num,wage; char name[20]; archivo ifstream("serchLaninf.txt"); > if(file) { file>>n; file.close();} else { n=0;} cout<<"Número de perfil de bibliotecario existente: "; cout< cout<<"Ingrese el número, duración del servicio, nombre y salario del nuevo bibliotecario:"; cin>>num>>edad>>nombre>>salario; Bibliotecario A(num,edad,nombre,salario); cout<<"No. Nombre salario "< cout< ofstream outfile("controlloer.txt",ios_base::app ); outfile.write((char *)&A,sizeof( A) ); outfile.close(); n++; ofstream tfile("serchLaninf.txt"); tfile< tfile.close(); cout<<"¡Guardar correctamente!"; } void reLaninf( ) //Modificar bibliotecario { int i,n,h,jobage,wage,j; char name[20]; ifstream file("serchLaninf.txt"); if(file) { file>>n; file.close();} else { cout<<" Sin administrador de información de la biblioteca"; exit(0);} cout<<"El número de bibliotecarios existentes:"; cout< Bibliotecario *A=new Bibliotecario[n]; ifstream is("controlloer.txt",ios_base::binary) ; if (es) { for(i=0;i { es.read(( char *)&A[i],sizeof(A[i])); } for(i=0; i { cout<<"Número, antigüedad, nombre, salario"< cout< } } else { cout<<"Error al abrir archivo" < } is.close(); cout<<"Seleccione el número de administrador que desea modificar:"; p> cin>>h; cout<<"Ingrese nueva duración del servicio, nombre, salario:"; cin>>trabajo>>nombre>>salario ; A[h-1].resetjobage(jobage); A[h-1].resetname(nombre); A[h- 1].resetwages(wage ); cout<<"El nombre modificado del administrador es: "< ofstream tfile("controlloer.txt" ,ios_base::binary); for(j=0;j { tfile.write((char *)&A [j],sizeof(A[ j])); } tfile.close(); } void aadbook() //Agregar un nuevo libro { int num;char name[12];charwriter[10];int n; a : ofstream fout("allbook.txt",ios::app); cout<<"Ingrese la información del libro:"< cout<<"Título del libro"< <'\t'<<"Número ISB"<<'\t'<<"Autor"< cin>>nombre;fout<< nombre<<'\t'; p> cin>>num;fout< cin>>escritor;fout< fout.close(); cout<<"¿Quieres seguir escribiendo? 1. Sí 2. No"< l; cin>>n; if(n==1) ir a a; else {void Studentland(); studentland();} } void delate() //Eliminar función { int m; cout<<"Seleccione opciones de operación:"< cout<<" 1. Eliminar toda la información"< cout<<" 2. Eliminación única"< cin>>m; if(m==1) { ofstream file("allbook.txt",ios::trunc); cout<<"¡Todo eliminado, presione cualquier tecla para regresar!"< file.close (); getch(); system("cls"); void Studentland(); Studentland() ; } char str[10][80],buf[20] a: int i=0; ,bandera=100,c=0; ifstream fin("allbook.txt"); if(!fin){ cout<<" ¡Error al abrir el archivo!"< getch(); system("cls"); void Studentland(); studentland(); } cout<<"Ingrese el título del libro que desea eliminar:"< cin>> buf; strcat(buf,"\t"); mientras(fin.getline(str[i],80)) { mientras(fin.getline(str[i],80)) p> if(strncmp(str[i],buf,strlen(buf))==0) { flag=i; } i++; } fin. close(); if(flag==100) { cout<<"¡No hay ningún libro que quieras eliminar! Presione 1 nuevamente, de lo contrario 0....."< int b; cin>>b; if(b== 1)ir a; else c=1; } if(c==0){ ofstream fout( "allbook.txt"); for(int j=0;j if(j==flag)continue fout< } fout.close(); cout<<"El libro que desea eliminar La información ha sido eliminada, continúe presionando 1, de lo contrario presione 0..." < int b; cin>>b; if(b==1)ir a } cout<<"La operación ha finalizado, presione cualquier tecla para regresar..."< getch(); "cls"); void Studentland(); studentland(); } void searchbook() // Buscar libros { a: ifstream fin; int flag=0,b,length char f[200];char g[200]; fin.open("allbook.txt"); >if(!fin) { cout<<"Abrir error f1.dat....."< } while(1) { cout<<"Ingrese el título del libro:" ; p> cin>>cadena; strcat(cadena,"\t"); longitud=strlen(cadena); cout< <"----------------------------------------"< while(fin.getline(f,199)) { strcpy(g,f if(strncmp(str, f,longitud) ==0) { bandera=1; descanso } } p> if(flag==1) { cout<<"El libro consultado ha sido encontrado:"<<'\n'; cout<<"--------------------------------"< cout<<"Título del libro"<<'\t'<<"Número ISB"<<'\t'<<"Autor"<<'\t'< cout<< g< cout<<"----------------------- ---"< flag=0; cout<<"Para continuar con la consulta, presione 1, de lo contrario presione 0:"< cin>> b; if(b==0)break; } else { fin.close(); cout<<"Si no existe tal libro, continúe presionando 1; de lo contrario, presione 0..."< cin>>b; if(b==0)break; ir a; } } fin.close(); cout<<"Consulta completada, presione cualquier tecla para regresar..."< getch( system("cls"); 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]; lectornum. txt"); if(!fin) { cout<<"¡No existe tal archivo de información! "< salir(1); } mientras(1) { cout<<"Por favor ingresa lo que estás buscando Nombre del lector: "; cin>>str; strcat(str,"\t"); length=strlen (cadena); cout<<"--------------------------------"<< endl ; while(fin.getline(f,199)) { strcpy(g,f) if ( strncmp(str,f,length)==0) { flag=1 break } p> } if(flag==1) { cout<<"El lector consultado ha sido encontrado:"<<' \n'; cout<<"----------------------- ---"<< endl; cout<<"Nombre"<<'\t'<<"Número"<<'\t'<<"Edad"<<'\t'< <"Número de libros prestados" < cout< cout<<"-------------; ------------- ------------"< bandera=0; cout<<"Para continuar la consulta, presione 1, de lo contrario presione 0:"< cin>>b if(b==0)break; ir a; } else { fin.close() cout<<"Si no existe tal persona, continúe presionando 1, de lo contrario presione 0..."< ir a; } } fin.close(); > cout< <"Después de realizar la consulta, presione cualquier tecla para regresar..."< getch() system("cls"); void Studentland(); studentland(); } /*void seachreader() //Consultar información del lector p> { int i,b,h=0; char a[20]; ifstream file("readernum.txt" ); if(archivo) { archivo>>b; archivo.close();} else { cout<<"Sin archivo";} cout< <"Número de lectores existentes:"; cout< lector *A=nuevo lector[b]; ifstream es("reader.txt",ios_base::binary); if(is) { for(i=0;i< b ;i++) { is.read((char *)&A[i],sizeof(A[i])); }< / p> } else { cout<<"Error al abrir archivo txt"< } is.close(); cout<<"Por favor, introduzca el nombre del lector que está buscando:"; cin>>a ; for(i=0;i { if(strcmp(A[i].getname(),a) ==0) {