[URL="https://mega.co.nz/#!6FERSZgb!EderQBvaxhpUefz9ZjxhXxj5oe0nSILaP6no2wj 8UQo"]https://mega.co.nz/#!6FERSZgb!EderQBvaxhpUefz9ZjxhXxj5oe0nSILaP6no2wj 8UQo[/URL]
Código C++:
Ver original
#include <iostream> #include <cstring> #include <string> #include <stdio.h> #include <fstream> #define pausa cin.get(); using namespace std; class libros{ public: string nombre; string autor; private: }; int agregar(libros array[], int lenth){ for(int i = 0; i < lenth; i++ ){ cout << "\ningrese un nombre: \n" << endl; cin >> array[i].nombre; cout << "\ningrese un autor" << endl; cin >> array[i].autor; } return 0; } int buscar(libros array[], int lenth, string palabra){ int indice; for(int i = 0; i < lenth; i++ ){ if(palabra == array[i].nombre){ indice = i; } else{ if(palabra == array[i].autor){ indice = i; }else{ continue; } } } return indice; } int mostrardatos(){ } int main(){ libros milibro[4]; libros recibidor[4]; bool salir = true; int option = 0; do{ cout << "Elige una opcion:" << endl; cout << "(1) cargar un archivo" << endl; cout << "(2) para agregar datos " << endl; cout << "(3) para listar datos" << endl; cout << "(4) para buscar datos" << endl; cout << "(5) para modificar datos" << endl; cout << "(6) para borrar registro" << endl; cout << "(7) para guadar y salir del programa" << endl; cin >> option; switch(option){ case 1:{ char entrada[100]; cout << "Escribe el nombre de la base de datos" << endl; cin >> entrada; ifstream lector(entrada,ios::in|ios::binary); if(!lector) //operador sobre cargado { cerr<<"No se pudo lograr abrir el archivo"<<endl; cerr<<"Error al momento de intentar crearlo"<<endl; pausa return 1; } // original lector.read((char *)&recibidor,sizeof(recibidor)); lector.read(reinterpret_cast<char*> (&recibidor),sizeof(libros)); for(int i=0;i<10;i++){ cout<<recibidor[i].nombre<<' '; } cout<<'\n'; cout<<lector.gcount()<<"characters read\n"; lector.close(); for(int i = 0; i < 4; i++){ cout << recibidor[i].nombre << endl; cout << recibidor[i].autor << endl; } pausa break;} case 2: agregar(milibro,4); break; case 3: for(int a = 0; a < 4; a++){ cout << "\n############" << endl; cout << "Nombre: " << milibro[a].nombre << endl; cout << "Autor: " << milibro[a].autor; milibro[a].autor; } pausa break; case 4:{ string entra; cout << "introduce una palabra a buscar" << endl; cin >> entra; int indicador = buscar(milibro,4,entra); cout << "Nombre: " << milibro[indicador].nombre << endl; cout << "Autor: " << milibro[indicador].autor; pausa break;} case 5:{ string ent; cout << "introduce un indice de registro q deseas modificar" << endl; cin >> ent; int ind; ind = buscar(milibro,4,ent); cout << "Introduce nuevo nombre: " << endl; cin >> milibro[ind].nombre; cout << "Introduce nuevo autor: " << endl; cin >> milibro[ind].autor; break;} case 6: int borrar; cout << "Introduce el numero de registro que quieres borrar" << endl; cin >> borrar; milibro[borrar].nombre = ""; milibro[borrar].autor = ""; cout << "Archivo borrado" << endl; pausa break; case 7: ofstream escritor("biblioteca.txt", ios::out|ios::binary); for(int t = 0; t < 4 ; t++){ escritor.write((char *)&milibro[t],sizeof(milibro)); } escritor.close(); salir = false; break; } }while(salir == true); return 0; }