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 fichero o al archivo, también esta integrado el algoritmo de búsqueda de datos.
/*
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>
using namespace std;
struct agenda{
char nombre[20], apellido[20], apellido2[20],numero[100];
}datos;
int _tmain(int argc, _TCHAR* argv[])
{
int menu = 101, metodo_busqueda, comparacion, Error=0;
char buscar_dato[16];
do
{
system(«cls»);
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:
{
system(«cls»);
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:
{
system(«cls»);
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;
}
Buena noche
Solo con una consulta a la hora de buscar por medio de carne, la cuestion es que si esta buscando un valor de tipo numero la variable donde se deberia de guardar no deberia de ser de tipo int y no char? Intento hacer algo similar pero especificamente el error me da a la hora de buscar por medio de carne.
Saludos,
No vale verga la vida :’v
escribiste mal el borrado de pantalla, tienes que poner system(«cls»);
i. Descripción: Elaboración de un programa en C++ que corra sobre sistema operativo Windows ##, que permita el ingreso de los datos de un estudiante de la Universidad Mariano Gálvez, de la carrera de Ingeniería en Sistema de Información y Ciencias de la Computación, para este se necesita ingresar 3 tipos de información detallo a continuación:
Información General:
? Nombre completo
? Edad
? Sexo
? Dirección de Domicilio
? Dirección electrónica
? Estado Civil
? Teléfono o celular
Información Académica:
? Centro Universitario
? Semestre
? Numero de carne
? Cursos aprobados
? Jornada de estudios
Información Médica:
? Tipo de Sangre
? Medicamento al que es alérgico
? Padece de alguna Enfermedad
? Toma algún medicamento
ii. Requerimiento:
1. El programa debe contener un menú de opciones para cada grupo de información y una opción de salida, las cuales deben correr en un 100%.
2. Los datos deben guardarse en un archivo llamado “Estudiante.txt”, el cual hay que verificar al momento de la calificación.
3. Las pantallas del menú e ingreso de datos deben tener el mismo diseño.
me tira error en int _tmain(int argc, _TCHAR* argv[])