#include <iostream>
#include <fstream>
#include <conio.h>
#include <string.h>
#include <stdio.h>
using namespace std;
struct biblioteca{
string titulo;
string autor;
int edicion;
string isbn;
bool buscar(string code);
};
biblioteca A, aux;
ofstream escritura;
ifstream lectura;
void ingresar(){ //Ingresar registros
system("cls");
char op='S';
escritura.open("Fichero.txt",ios::app);
if(escritura.fail()){
cout<<"EL ARCHIVO NO SE PUDO CREAR"<<endl;
}else{
while(op=='S'){
fflush(stdin);
cout<<"Registro: "<<endl;
cout<<"Codigo ISBN del libro que desea registrar: ";
getline(cin, A.isbn);
if(!A.buscar(A.isbn)){
cout<<"Ingrese el titulo: ";
getline(cin, A.titulo);
cout<<"Ingrese el nombre del autor: ";
getline(cin, A.autor);
cout<<"Ingrese la edicion: ";
cin>>A.edicion;
escritura<<A.isbn<<" "<<A.titulo<<" "<<A.autor<<" "<<A.edicion<<" ";
}else{
cout<<"el codigo ya existe"<<endl;
}
cout<<"Desea seguir registrando? s/n "<<endl;
cin>>op;
op=toupper(op);
system("cls");
}
escritura.close();
}
}
bool biblioteca::buscar(string code) { //Buscaqueda adelantada de registros
bool find = false;
lectura.open("Fichero.txt", ios::out|ios::in);
if (lectura.is_open()) {
lectura>>aux.isbn;//lectura adelantada
while (!lectura.eof()) {
lectura>>aux.titulo>>aux.autor>>aux.edicion;
if(code==aux.isbn ){
find = true;
}
lectura>>aux.isbn;//lectura adelantada
}
lectura.close();
}
else cout << "El Fichero no existe / faltan permisos para abrir" << endl;
return find;
}
void general(){ //Busqueda general
system("cls");
lectura.open("Fichero.txt", ios::out|ios::in);
if (lectura.is_open()) {
lectura>>A.isbn;
while (!lectura.eof()) {
lectura>>A.titulo;
lectura>>A.autor;
lectura>>A.edicion;
cout<<"----------------------------------"<<endl;
fflush(stdin);
cout<<"Codigo ISBN: "<<A.isbn<<endl;
cout<<"Titulo: "<<A.titulo<<endl;
cout<<"Autor: "<<A.autor<<endl;
cout<<"Edicion: "<<A.edicion<<endl;
cout<<"----------------------------------"<<endl<<endl;
lectura>>A.isbn;
}
lectura.close();
system("pause");
cout<<"presione una tecla para continuar..."<<endl;
system("cls");
}
else cout << "El fichero no existe o faltan permisos para abrirlo" << endl;
}
void individual(){ //Busqueda individual de registros
system("cls");
bool find = false;
cout<<"Busqueda individual: "<<endl;
cout<<"Codigo ISBN: ";
cin>>aux.isbn;
lectura.open("Fichero.txt", ios::out|ios::in);
if (lectura.is_open()) {
lectura>>A.isbn;
while (!lectura.eof()) {
lectura>>A.titulo>>A.autor>>A.edicion;
if(aux.isbn==A.isbn){
cout<<"----------------------------------"<<endl;
cout<<"Codigo ISBN: "<<A.isbn<<endl;
cout<<"Titulo: "<<A.titulo<<endl;
cout<<"Autor: "<<A.autor<<endl;
cout<<"Edicion: "<<A.edicion<<endl;
cout<<"----------------------------------"<<endl<<endl;
find=true;
}
lectura>>A.isbn;
}
lectura.close();
system("pause");
cout<<"presione una tecla para continuar..."<<endl;
system("cls");
if(!find){
cout<<"El libro no se encuentra"<<endl;
}
}
else cout << "El Fichero no existe / faltan permisos para abrirlo" << endl;
}
int main(){
system("color 78");
int opc=0;
while (opc < 4){
cout<<" ----------------------------------------------------------------------------"<<endl;
cout<<" | Biblioteca virtual: |"<<endl;
cout<<" | 1. Registre algun libro |"<<endl;
cout<<" | 2. Ver todos los libros |"<<endl;
cout<<" | 3. Buscar libro |"<<endl;
cout<<" | 4. Salir |"<<endl;
// cout<<" | 5. Libros recomendados |"<<endl;
cout<<" | Seleccione una opcion: |"<<endl;
cout<<" ----------------------------------------------------------------------------"<<endl;
cin>>opc;
switch(opc){
case 1:ingresar();
break;
case 2:general();
break;
case 3:individual();
break;
case 4:
break;
//case 5:recomen();
//break;
}
}
void ingresar();
void general();
void individual();
//void recomen();
return 0;
}