Está en la página 1de 5

#include <stdio.

h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#include <iostream>

using namespace std;


/////////ESTRUCTURA FECHA//////////////////////

struct fecha{
int dia;
int mes;
int year;
};
//////////////////ESTRUCTURA AUTOR////////////

struct autorLibro{
//char nombre[40];
string nombre;
int cod;

};
///////////LIBRO///////////

struct libro{
string titulo;
autorLibro autor;
string genero;
string codigo;
fecha impresion;
fecha ingreso;
};

int numauto;
int tamvecautor=0,pos=0;//variables de contro para el arreglo de autores

//////////////////////////////MENU/////////////////////

int menu(){
system("cls");
int opc;
cout<<"\t\t *** SISTEMA DE BIBLIOTECA *** ";
cout<<"\n(1)Registrar libro";
cout<<"\n(2)Consultar";
cout<<"\n(3)Listar";
cout<<"\n(4)Salir";
do{
cout<<"\nIngrese opcion -> ";cin>>opc;

}while(opc<1 || opc>4);
return opc;

bool validar(libro *lib,string aux,int max){


int i;
for(i=0;i<max;i++){
if(lib[i].codigo==aux){
return true;
}
}
return false;
}
///////////////////////MENU BUSCAR/////////////

int menuBuscar(){
int op;
do{
cout<<"\t\t\t*** Buscar Libro ***";
cout<<"\n(1) Titulo.";
cout<<"\n(2) Autor.";
cout<<"\n(3) Genero.";
cout<<"\n(4) Codigo.";
cout<<"\n(5) Salir.";
cout<<"\nIngrese Opcion -> ";
cin>>op;
}while(op<1 || op>5);

return op;
}
///////////////////////////////////////////////
void listar(libro *lib,int max){
int i;
system("cls");
cout<< "\t\t\t *** DATOS BIBLIOTECA ***\n";
for(i=0; i<max; i++){
cout<<"Libro "<<i<<endl;
cout<< "Titulo: "<<lib[i].titulo<<endl;
cout<< "Autor: "<<lib[i].autor.nombre<<endl;
cout<< "Genero: "<<lib[i].genero<<endl;
cout<<"Fecha de Impresion:
"<<lib[i].impresion.dia<<"/"<<lib[i].impresion.mes
<<"/"<<lib[i].impresion.year<<endl;
cout<<"Fecha de Ingreso: "<<lib[i].ingreso.dia<<"/"<<lib[i].ingreso.mes
<<"/"<<lib[i].ingreso.year<<endl;

}
system("pause");
}

void buscar(libro *lib,int max,string nom,int op)


{

switch(op){
case 1: {
for(int i=0;i<max;i++)
{
int n=lib[i].titulo.length();
string ss=lib[i].titulo;
std::size_t pos = ss.find(nom);
if(pos>=0 && pos<=n)
{
cout<<lib[i].titulo<<"\n";
}

}
break;
}
case 2:{
for(int i=0;i<max;i++)
{
int n=lib[i].autor.nombre.length();
string ss=lib[i].autor.nombre;
std::size_t pos = ss.find(nom);
if(pos>=0 && pos<=n)
{
cout<<"\n"<<lib[i].autor.nombre;
cout<<"\n"<<lib[i].titulo;
}

}
break;
}
case 3:{
for(int i=0;i<max;i++)
{
int n=lib[i].genero.length();
string ss=lib[i].genero;
std::size_t pos = ss.find(nom);
if(pos>=0 && pos<=n)
{
cout<<"\n"<<lib[i].genero;
cout<<"\n"<<lib[i].titulo;
}

}
break;
}
case 4:{
for(int i=0;i<max;i++)
{
int n=lib[i].codigo.length();
string ss=lib[i].codigo;
std::size_t pos = ss.find(nom);
if(pos>=0 && pos<=n)
{
cout<<"\n"<<lib[i].codigo;
cout<<"\n"<<lib[i].titulo;
}

}
break;
}

void ingresar(libro *lib,int max){


int i;
string aux;
bool res;
for(i=0; i<max; i++){
system("cls");
cout<< "Datos: \n"<< "Titulo: "; fflush
(stdin);getline(cin,lib[i].titulo);fflush(stdin);
cout<<"Codigo: "; cin>>lib[i].codigo;
do{
cin>>aux;
res = validar(lib,aux,max);
}while(res);
lib[i].codigo = aux;
cout<< "Autor: ";
fflush(stdin);getline(cin,lib[i].autor.nombre);fflush(stdin);
cout<< "Genero: ";fflush
(stdin);getline(cin,lib[i].genero);fflush(stdin);
cout<<"Fecha de Impresion: \n";
cout<<"Dia: ";
cin>>lib[i].impresion.dia;
cout<<"Mes: ";
cin>>lib[i].impresion.mes;
cout<<"A�o: ";
cin>>lib[i].impresion.year;
cout<<"Fecha de Ingreso: \n";
cout<<"Dia: ";
cin>>lib[i].ingreso.dia;
cout<<"Mes: ";
cin>>lib[i].ingreso.mes;
cout<<"A�o: ";
cin>>lib[i].ingreso.year;
}
}
int main(int argc, char *argv[]){
int op,i,max;
int opc,au;
cout<<"Numero de libros a registrar: ";
cin>>max;
libro *lib = new libro[max];
string aux;
int opci;
do{

op=menu();
switch(op){
case 1:{
ingresar(lib,max);

break;
}
case 2:{
system("cls");
opc = menuBuscar();
do{
system("cls");
switch(opc){
case 1:{
opci=1;
cout<<"\t\t\t*** Busqueda por Titulo
***";
cout<<"\nTitulo: ";
cin>>aux;
buscar(lib,max,aux,opci);
//system("PAUSE");
break;
}
case 2:{
opci=2;
cout<<"\t\t\t*** Busqueda por Autor ***";
cout<<"\nAutor: ";

fflush(stdin);getline(cin,aux);fflush(stdin);
buscar(lib,max,aux,opci);
//system("PAUSE");
break;
}
case 3:{
opci=3;
cout<<"\t\t\t*** Busqueda por Genero
***";
cout<<"\nGenero: ";
cin>>aux;
buscar(lib,max,aux,opci);
//system("PAUSE");
break;
}
case 4:{
cout<<"\t\t\t*** Busqueda por Codigo
***";
cout<<"\nCodigo: ";
cin>>aux;
buscar(lib,max,aux,opci);
//system("PAUSE");

break;
}
case 5:{
return menu();
break;
}
//return menu();
}

system("PAUSE");
}while(opc!=5);
break;
}
case 3:{
system("cls");
listar(lib,max);
break;
}
}

}while(op=4);
//system("PAUSE");

return 0;
}

También podría gustarte