#include<fstream>
#include<iostream>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
using namespace std;
int reg = 0, indice = 0, i; char opcion; bool banderita = true, bandera = true;
struct Biblioteca{
char nombre[30], editorial[30], autor[20];
int id, edicion;
}B[5];
void Seleccion(){
do{
}
int Buscar(){
int auxcarnet;
bool band = true;
cout << "Por favor ingrese el numero del registro que intenta modificar: \n";
cin >> auxcarnet;
for(i = 0; i <= reg-1; i++)
{
if(auxcarnet == B[i].id)
{
cout << "\n";
cout << "ID del Libro: " << B[i].id << endl;
cout << "Nombre del Libro: " << B[i].nombre << endl;
cout << "Autor del Libro: " << B[i].autor << endl;
cout << "Edicion del Libro: " << B[i].edicion << endl;
cout << "Editorial del Libro: " << B[i].editorial << endl;
cout << "\n\n\n";
band = false;
}
}
if(band == true)
cout << "ID no existente! \a";
}
void eliminar(){
indice = Buscar();
cout << "Seguro que desea borrar este registro s/n\n";
Seleccion();
if(opcion == 'S'){
for(int j = indice; j <= reg-1; j++)
B[j] = B[j+1];
reg--;
cout << "Registro borrado" << endl;
}
void modificar()
{
int auxcarnet;
bool band = true;
cout << "Por favor ingrese el numero del registro que intenta modificar: \n";
cin >> auxcarnet;
for(i = 0; i <= reg-1; i++)
{
if(auxcarnet == B[i].id)
{
cout << "\n";
cout << "ID del Libro: " << B[i].id << endl;
cout << "Nombre del Libro: " << B[i].nombre << endl;
cout << "Autor del Libro: " << B[i].autor << endl;
cout << "Edicion del Libro: " << B[i].edicion << endl;
cout << "Editorial del Libro: " << B[i].editorial << endl;
cout << "\n\n\n";
band = false;
cout << "\tQue desea Modificar:\n";
cout << "\tA.Nombre\n";
cout << "\tB.Autor\n";
cout << "\tC.Edicion\n";
cout << "\tD.Editorial\n";
cout << "\tE.Salir\n";
cout << "Ingresa la Opcion:\n";
do
{
do
{
}
}
while (opcion < 'A' || opcion > 'E');
switch(opcion)
{
case 'A': cout << "\nPor Favor ingrese el nuevo Nombre del Libro:\n";
cin >> B[i].nombre;
break;
case 'B': cout << "\nPor Favor ingrese el nuevo Autor del Libro:\n";
cin >> B[i].autor;
break;
case 'C': cout << "\nPor Favor ingrese la nueva Edicion del Libro:\n";
cin >> B[i].edicion;
break;
case 'D': cout << "\nPor Favor Ingrese la nueva Editorial del Libro:\n";
cin >> B[i].editorial;
break;
case 'E': break;
}
}
}
if(band == true)
cout << "ID del Libro No Admitido, Intentelo otra vez o verifique si hay errores! \a";
}
void grabar()
{
fstream archivo;
archivo.open("DatosBiblioteca.txt", ios::out);
for(i = 0; i < reg; i++)
{
if(i == reg-1)
{
archivo << B[i].id << " " << B[i].nombre << " " << B[i].autor << " " << B[i].edicion << " " << B[i].editorial << " ";
}
else{
archivo << B[i].id << " " << B[i].nombre << " " << B[i].autor << " " << B[i].edicion << " " << B[i].editorial << " " << endl;
}
}
archivo.close();
}
void registrar()
{
do{
if(reg == 5)
{
cout << "Solo se pueden almacenar 5 registros!\a\n\n";
opcion = 'n';
break;
}
cout << "Ingrese ID del Libro: \n";
cin >> B[reg].id;
for(i = 0; i<=reg-1;i++)
{
if(B[reg].id == B[i].id)
{
cout << "Este ID ya existe por favor ingrese otro\n";
banderita = false;
}
}
if(banderita == false)
{
banderita = true;
continue;
}
cout << "Ingrese el nombre del Libro: \n";
cin >> B[reg].nombre;
cout << "Ingrese el Autor del Libro: \n";
cin >> B[reg].autor;
cout << "Ingrese la Edicion del Libro: \n";
cin >> B[reg].edicion;
cout << "Ingrese la Editorial del Libro: \n";
cin >> B[reg].editorial;
cout << "\n";
cout << "Desea almacenar otro registro s/n \n";
reg++;
do
{
}
}
while(opcion != 'N');
}
void leer()
{
fstream archivo;
archivo.open("DatosBiblioteca.txt", ios::in);
if(archivo.fail())
{
fstream archivo;
archivo.open("DatosBiblioteca.txt", ios::out);
archivo.close();
cout << "Archivo no existente! Programa creara una para usted\a";
}
else
{
while(!archivo.eof())
{
archivo >> B[reg].id >> B[reg].nombre >> B[reg].autor >> B[reg].edicion >> B[reg].editorial;
if(archivo == NULL)
break;
reg++;
}
}
archivo.close();
}
void mostrar()
{
for(i = 0; i <= reg-1; i++)
{
cout << "ID del Libro: " << B[i].id << endl;
cout << "Nombre del Libro: " << B[i].nombre << endl;
cout << "Autor del Libro: " << B[i].autor << endl;
cout << "Edicion del Libro: " << B[i].edicion << endl;
cout << "Editorial del Libro: " << B[i].editorial << endl;
cout << "\n";
}
}
int main(){
leer();
do{
cout<< "Elija una opcion:\n\n";
cout<< "A.Registrar\n";
cout<< "B.Mostrar\n";
cout<< "C.Modificar\n";
cout<< "D.Eliminar\n";
cout<< "E.Salir\n\n";
do{
Seleccion();
}while (opcion < 'A' || opcion > 'E');
switch(opcion){
case 'A': registrar(); break;
case 'B': mostrar(); break;
case 'C': modificar(); break;
case 'D': eliminar(); break;
case 'E': break;
}
grabar();
}while(opcion != 'E');
return 0;
}