Archivos o Ficheros en C++, inserción y búsqueda.
Este es un ejemplo de un algoritmo, con el tema de ficheros donde se ingresan N estudiantes al archivo, también esta integrado el algoritmo de búsqueda de datos, este ejemplo fue probado en la IDE Code::Blocks, puede correr en cualquier otra IDE que soporte el estándar de c++ superior.
/*
Se ingresan N estudiantes el Archivo o Fichero, y luego se realiza la busqueda de la misma
Choc Cac, Victor Hugo
*/
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
using namespace std;
struct agenda{
char nombre[20], apellido[20], apellido2[20],numero[100];
}datos;
int main()
{
int menu = 101, metodo_busqueda, comparacion, Error=0;
char buscar_dato[16];
do
{
cout<<endl<<«Alumnos\n\n»;
cout<<«1. Agregar nuevo Alumno.\n»;
cout<<«2. Buscar Alumno.\n»;
cout<<«3. Salir.\n»;
cout<<«Que Opcion: «;
cin>>menu;
switch (menu)
{
case 1:
{
FILE*abrir;
abrir=fopen(«registro.dat», «a+b»);
cout<<«\nNuevo Alumno: «<<endl;
cout<<«Primer nombre: «;
cin>>datos.nombre;
cout<<«\nPrimer apellido: «;
cin>>datos.apellido;
cout<<«\nSegundo Apellido: «;
cin>>datos.apellido2;
cout<<«\nnumero carne: «;
cin>>datos.numero;
fwrite(&datos, sizeof(datos), 1, abrir);
fclose(abrir);
}
break;
case 2:
{
FILE*busqueda;
busqueda=fopen(«registro.dat», «r+b»);
cout<<«\nQue metodo Desea hacer la Buqueda?»<<endl;
cout<<«\n1. Nombre»;
cout<<«\n2. Apellido»;
cout<<«\n3. Numero de carnet»<<endl;
cout<<endl<<«Que desea Hacer?: «;
cin>>metodo_busqueda;
switch(metodo_busqueda)
{
case 1:
{
cout<<«\nIngrese el nombre a buscar: «;
cin>>buscar_dato;
while(!feof(busqueda))
{
fread(&datos, sizeof(datos), 1, busqueda);
comparacion=strcmp(buscar_dato, datos.nombre);
if(comparacion==0)
{
cout<<«\nDatos del estudiante»;
cout<<«\nNombre: «;
cout<<datos.nombre;
cout<<«\nApellido: «;
cout<<datos.apellido;
cout<<«\nNumero Carnet: «;
cout<<datos.numero;
Error=1;
break;
}
}
if(Error==0)
{
cout<<endl<<«Error! Nombre existe»;
}
}
break;
case 2:
{
cout<<endl<<«Ingrese el apellido a buscar: «;
cin>>buscar_dato;
while(!feof(busqueda))
{
fread(&datos, sizeof(datos), 1, busqueda);
comparacion=strcmp(buscar_dato, datos.apellido);
if(comparacion==0)
{
cout<<«\nDatos del estudiante»;
cout<<«\nNombre: «;
cout<<datos.nombre;
cout<<«\nApellido: «;
cout<<datos.apellido;
cout<<«\nNumero Carnet: «;
cout<<datos.numero;
Error=1;
break;
}
}
if(Error==0)
{
cout<<endl<<«Error! Apellido no existe»;
}
}
break;
case 3:
{
cout<<endl<<«Ingrese el Carnet a buscar: «;
cin>>buscar_dato;
while(!feof(busqueda))
{
fread(&datos, sizeof(datos), 1, busqueda);
comparacion=strcmp(buscar_dato, datos.numero);
if(comparacion==0)
{
cout<<«\nDatos del estudiante»;
cout<<«\nNombre: «;
cout<<datos.nombre;
cout<<«\nApellido: «;
cout<<datos.apellido;
cout<<«\nNumero Carnet: «;
cout<<datos.numero;
Error=1;
break;
}
}
if(Error==0)
{
cout<<endl<<«Error! el carnet no existe»;
}
}
break;
default: cout<<«\nFuera de Rango, teclee una opcion validad……\n»;
}
cin.get();cin.get();
fclose(busqueda);
}
break;
case 3:
{
menu=101;
}
break;
default: cout<<«\nFuera de Rango, teclee una opcion validad……\n»;
}
}while(menu !=101);
return 0;
}
Descargar:
Archivo ingresar N estudiantes y buscar c++