rendered paste body#include<iostream.h>#include<stdio.h>#include<string.h>struct alumno{ char codigo[10]; char nombre[30]; char carrera[25]; char semestre[5]; void llenar_data(); void imprimir_data();};void alumno::llenar_data(){ cout<<"ingrese codigo: "<<endl; gets(codigo); cout<<"ingrese nombre: "<<endl; gets(nombre); cout<<"ingrese carrera: "<<endl; gets(carrera); cout<<"ingrese semestre: "<<endl; gets(semestre); }void alumno::imprimir_data(){ cout<<""<<endl; cout<<" ------------------------------------------"<<endl; cout<<"codigo : "<<codigo<<endl; cout<<"nombre : "<<nombre<<endl; cout<<"carrera : "<<carrera<<endl; cout<<"semestre : "<<semestre<<endl; }struct profesor{ char codigo[10]; char nombre[30]; char curso[30]; char semcurso[5]; void llenar_data(); void imprimir_data();};void profesor::llenar_data(){ cout<<"ingrese codigo: "<<endl; gets(codigo); cout<<"ingrese nombre: "<<endl; gets(nombre); cout<<"ingrese el curso: "<<endl; gets(curso); cout<<"ingrese el semestre del curso: "<<endl; gets(semcurso); }void profesor::imprimir_data(){ cout<<""<<endl; cout<<" ------------------------------------------"<<endl; cout<<"codigo: : "<<codigo<<endl; cout<<"nombre : "<<nombre<<endl; cout<<"curso : "<<curso<<endl; cout<<"semestre del curso : "<<semcurso<<endl;}struct tesis{ char codigo[10]; char titulo[30]; char autor[20]; char estado[2]; void llenar_data(); void imprimir_data();};void tesis::llenar_data(){ cout<<"ingrese codigo: "<<endl; gets(codigo); cout<<"ingrese titulo: "<<endl; gets(titulo); cout<<"ingrese autor: "<<endl; gets(autor); cout<<"ingrese estado: "<<endl; gets(estado);}void tesis::imprimir_data(){ cout<<""<<endl; cout<<" ------------------------------------------"<<endl; cout<<"codigo : "<<codigo<<endl; cout<<"titulo : "<<titulo<<endl; cout<<"autor : "<<autor<<endl; cout<<"estado : "<<estado<<endl;}struct revista{ char codigo[10]; char titulo[30]; char estado[2]; int num_ejem; int anyo; void llenar_data(); void imprimir_data();};void revista::llenar_data(){ cout<<"ingrese codigo: "<<endl; gets(codigo); cout<<"ingrese titulo: "<<endl; gets(titulo); cout<<"ingrese año: "<<endl; cin>>anyo; cout<<"ingrese estado: "<<endl; gets(estado); cout<<"ingrese numero de ejemplares: "<<endl; cin>>num_ejem;}void revista::imprimir_data(){ cout<<""<<endl; cout<<" ------------------------------------------"<<endl; cout<<"codigo : "<<codigo<<endl; cout<<"titulo : "<<titulo<<endl; cout<<"año : "<<anyo<<endl; cout<<"estado : "<<estado<<endl; cout<<"numero de ejemplares : "<<num_ejem<<endl;}struct libro{ char codigo[10]; char titulo[30]; char editorial[15]; char estado[2]; int num_ejem; int anyo; void llenar_data(); void imprimir_data();};void libro::llenar_data(){ cout<<"ingrese codigo: "<<endl; gets(codigo); cout<<"ingrese titulo: "<<endl; gets(titulo); cout<<"ingrese editorial: "<<endl; gets(editorial); cout<<"ingrese año: "<<endl; cin>>anyo; cout<<"ingrese estado: "<<endl; gets(estado); cout<<"ingrese numero de ejemplares: "<<endl; cin>>num_ejem;}void libro::imprimir_data(){ cout<<""<<endl; cout<<" ------------------------------------------"<<endl; cout<<"codigo : "<<codigo<<endl; cout<<"titulo : "<<titulo<<endl; cout<<"editorial : "<<editorial<<endl; cout<<"año : "<<anyo<<endl; cout<<"estado : "<<estado<<endl; cout<<"numero de ejemplares : "<<num_ejem<<endl;}struct sistema{ alumno *listaalu[100]; profesor *listapro[100]; tesis *listates[100]; revista *listarev[100]; libro *listalib[100]; int actualalu, actualpro, actualtes, actualrev, actuallib; void crear(); void ingresar(int tipo); void listar(int tipo); int buscar(int tipo); void eliminar(int tipo);}S;void sistema::crear(){ for (int i=0; i<100; i++){ listaalu[i]=NULL; listapro[i]=NULL; listates[i]=NULL; listarev[i]=NULL; listalib[i]=NULL; } actualalu= -1; actualpro= -1; actualtes= -1; actualrev= -1; actuallib= -1;}void sistema::ingresar(int op){ if (op==1){ listaalu[++actualalu]=new alumno; listaalu[actualalu]->llenar_data(); } else if (op==2){ listapro[++actualpro]=new profesor; listapro[actualpro]->llenar_data(); } else if (op==3){ listates[++actualtes]=new tesis; listates[actualtes]->llenar_data(); } else if (op==4){ listarev[++actualrev]=new revista; listarev[actualrev]->llenar_data(); } else if (op==5){ listalib[++actuallib]=new libro; listalib[actuallib]->llenar_data(); } else cout<<"Debe ingresar una opción correcta [1-5]"<<endl;}void sistema::listar(int op){ if (op==1){ for (int i=0; i<=actualalu; i++) listaalu[i]->imprimir_data(); } else if (op==2){ for (int i=0; i<=actualpro; i++) listapro[i]->imprimir_data(); } else if (op==3){ for (int i=0; i<=actualtes; i++) listates[i]->imprimir_data(); } else if (op==4){ for (int i=0; i<=actualrev; i++) listarev[i]->imprimir_data(); } else if (op==5){ for (int i=0; i<=actuallib; i++) listalib[i]->imprimir_data(); } else if (op==6) {} else cout<<"Debe ingresar una opción correcta [1-5]"<<endl;}int sistema::buscar(int op){ char cod[10]; printf("\nIngrese un codigo: "); gets(cod); if (op==1){ for(int i=0;i<=actualalu;i++){ if (strcmp(listaalu[i]->codigo, cod)==0){ return i; } } return -1; } else if (op==2){ for(int i=0;i<=actualpro;i++){ if (strcmp(listapro[i]->codigo,cod)==0){ return i; } } return -1; } else if (op==3){ for(int i=0;i<=actualtes;i++){ if (strcmp(listates[i]->codigo,cod)==0){ return i; } } return -1; } else if (op==4){ for(int i=0;i<=actualrev;i++){ if (strcmp(listarev[i]->codigo,cod)==0){ return i; } } return -1; } else if (op==5){ for(int i=0;i<=actuallib;i++){ if (strcmp(listalib[i]->codigo,cod)==0){ return i; } } return -1; } else return -1;}void sistema::eliminar(int op){ char cod[10]; printf("\nIngrese un codigo: "); gets(cod); if (op==1){ for(int i=0;i<=actualalu;i++){ if (strcmp(listaalu[i]->codigo, cod)==0){ delete listaalu[i]; for(int j=i; j<actualalu; j++){ listaalu[j] = listaalu[j+1]; } actualalu--; } } } else if (op==2){ for(int i=0;i<=actualpro;i++){ if (strcmp(listapro[i]->codigo,cod)==0){ delete listapro[i]; for(int j=i; j<actualpro; j++){ listapro[j] = listapro[j+1]; } actualpro--; } } } else if (op==3){ for(int i=0;i<=actualtes;i++){ if (strcmp(listates[i]->codigo,cod)==0){ delete listates[i]; for(int j=i; j<actualtes; j++){ listates[j] = listates[j+1]; } actualtes--; } } } else if (op==4){ for(int i=0;i<=actualrev;i++){ if (strcmp(listarev[i]->codigo,cod)==0){ delete listarev[i]; for(int j=i; j<actualrev; j++){ listarev[j] = listarev[j+1]; } actualrev--; } } } else if (op==5){ for(int i=0;i<=actuallib;i++){ if (strcmp(listalib[i]->codigo,cod)==0){ delete listalib[i]; for(int j=i; j<actuallib; j++){ listalib[j] = listalib[j+1]; } actuallib--; } } } else cout<<"Debe ingresar una opción correcta [1-5]"<<endl;} //void eliminar(int tipo); // Debe ingresar el código del registro a eliminar, si existe debe eliminarlo // físicamente (delete) y actualizar la lista (los registros deben adelantarse // a partir de la posición eliminada, además actualizar las variables actual // del tipo correspondiente). Sino existiera el registro en la lista, no se // eliminará nada y se debe mostrar un mensaje apropiado.struct prestamo{ char codigo[10]; char fecha[25]; sistema sis; libro lib; int verificarpersona(int tipo); int verificardocumentoyestado(int tipo);}P;int prestamo::verificarpersona(int op){ char cod[10]; printf("\nIngrese un codigo: "); gets(cod); if(op==1){ for(int i=0;i<=sis.actualalu;i++){ if (strcmp(sis.listaalu[i]->codigo, cod)==0){ return 1; } } return -1; } else if(op==2){ for(int i=0;i<=sis.actualpro;i++){ if (strcmp(sis.listapro[i]->codigo, cod)==0){ return 1; } } return -1; }}int prestamo::verificardocumentoyestado(int op){ char cod[10]; printf("\nIngrese un codigo: "); gets(cod); if(op==1){ for(int i=0;i<=sis.actualtes;i++){ if ((strcmp(sis.listates[i]->codigo, cod)==0)&&(strcmp(sis.listates[i]->estado,"d")==0)){ return 1; } } return -1; } else if(op==2){ for(int i=0;i<=sis.actualrev;i++){ if ((strcmp(sis.listarev[i]->codigo, cod)==0)&&(strcmp(sis.listarev[i]->estado,"d")==0)){ return 1; } } return -1; } else if(op==3){ for(int i=0;i<=sis.actuallib;i++){ if ((strcmp(sis.listalib[i]->codigo, cod)==0)&&(strcmp(sis.listalib[i]->estado,"d")==0)){ return 1; } } return -1; }}int main(){ int men, op1, op2, op3, op4, op5, op6; S.crear(); for( ; ; ){ cout<<"\n MENU -> BIBLIOTECA"<<endl; cout<<" ------------------------------------------"<<endl; cout<<"1. Ingreso de Registros \n"; cout<<"2. Listado de Registros\n"; cout<<"3. Busquedas\n"; cout<<"4. Eliminacion de Registros\n"; cout<<"5. Para realizar un prestamo\n"; cout<<"6. Salir\n"; cout<<"Elija una opcion: "; cin>>men; switch(men){ int x; case 1: cout<<" --------------------------------------"<<endl; cout<<"1. Agregar alumno\n"; cout<<"2. Agregar profesor \n"; cout<<"3. Agregar tesis\n"; cout<<"4. Agregar revista\n"; cout<<"5. Agregar libro\n"; cout<<"6. Regresar\n"; cout<<"Ingrese una opcion: "; cin>>op1; S.ingresar(op1); break; case 2: cout<<" --------------------------------------"<<endl; cout<<"1. Listar alumno\n"; cout<<"2. Listar profesor \n"; cout<<"3. Listar tesis\n"; cout<<"4. Listar revista\n"; cout<<"5. Listar libro\n"; cout<<"6. Regresar\n"; cout<<"Ingrese una opcion: "; cin>>op2; S.listar(op2); break; case 3: cout<<" --------------------------------------"<<endl; cout<<"1. Buscar alumno\n"; cout<<"2. Buscar profesor \n"; cout<<"3. Buscar tesis\n"; cout<<"4. Buscar revista\n"; cout<<"5. Buscar libro\n"; cout<<"6. Regresar\n"; cout<<"Ingrese una opcion: "; cin>>op3; x = S.buscar(op3); if(x!=-1) switch(op3){ case 1: S.listaalu[x]->imprimir_data(); break; case 2: S.listapro[x]->imprimir_data(); break; case 3: S.listates[x]->imprimir_data(); break; case 4: S.listarev[x]->imprimir_data(); break; case 5: S.listalib[x]->imprimir_data(); break; } break; case 4: cout<<" --------------------------------------"<<endl; cout<<"1. Eliminar alumno\n"; cout<<"2. Eliminar profesor\n"; cout<<"3. Eliminar tesis\n"; cout<<"4. Eliminar revista\n"; cout<<"5. Eliminar libro\n"; cout<<"6. Regresar\n"; cout<<"Ingrese una opcion: "; cin>>op4; S.eliminar(op4); break; case 5: cout<<" --------------------------------------"<<endl; cout<<"tipo de usuario: \n"; cout<<"1. si es alumno\n"; cout<<"2. si es profesor\n"; cout<<"Ingrese una opcion: "; cin>>op5; if(P.verificarpersona(op5)==-1){ cout<<"el usuario no existe\n"; break; } else{ cout<<"tipo de documento: \n"; cout<<"1. si es tesis\n"; cout<<"2. si es revista\n"; cout<<"3. si es libro\n"; cout<<"Ingrese una opcion: "; cin>>op6; if(P.verificardocumentoyestado(op6)==-1){ cout<<"el documento no existe\n"; break; } else{ } } case 6: return 0; break; } }}