Archivo_secuencial_indexado
Páginas: 2 (442 palabras)
Publicado: 13 de mayo de 2016
#include
#include
#include
#include
using namespace std;
struct productos
{
int codigo;
char descripcion[30];
char unidad_medida[30];
floatprecio;
float existencia;
}productos;
struct Indice {
long codigo; // Campo llave.
int ubicacion; // Campo Ubicación.
}indice;
void Altas();
// Definición de prototipos de funciones utilizadas.
// paraque tome la dirección diferente debe grabarse los registros consecutivos
// si no vuelve a empezar con la dirección 0 (falta ver colisiones)
int PedirDatos();
int Consulta();
void menu();
voidmenu()
{
char resp='s';
int choice,key;
do
{
system("cls");
cout<<"\n Menu Principal "<
cout<<"\n2.Consulta de un Registro";
cout<<"\n 3.Salir"<
cin>>choice;
switch(choice)
{
case 1:Altas();
break;
case 2:Consulta();break;
case 3:exit(0);
}
cout<<"\n\t Desea regresar al Menu Principal? (s/n): ";
cin>>resp;
}while(resp=='s');
}
int main()
{
menu();
}
void Altas()
{
char Op='n';
ofstreamArch_Datos;
ofstream Arch_Indice;
Arch_Datos.open("productos.dat", ios::app | ios::binary);
Arch_Indice.open("indice.idx", ios::app | ios::binary);
if (!Arch_Datos)
{
cout << "No se abrio elarchivo de datos " << endl;
cout << "
getchar();
exit (-1);
}
if (!Arch_Indice)
{
cout << "No se abrio el archivo de indices" << endl;
cout << "
getchar();
exit (-1);
}
do{
cout<<"Codigo del Producto : ";
cin>>productos.codigo;
PedirDatos();
indice.ubicacion = Arch_Datos.tellp();
indice.codigo...
Leer documento completo
Regístrate para leer el documento completo.