MANEJO DE ARCHIVOS EN C++
Otro trabajo que nos dejaron en vacaciones
Ojo poner los archivos con extensión .H en la carpeta INCLUDE de Borland
/****************************************************************************************************************************** * * * 25 de marzo de 2010 * * * * El programa guarda los datos del conductor en un archivo binario * * * * Programador Julio Cesar Leyva Rodriguez Instituto Tecnologico de Los Mochis * * * ******************************************************************************************************************************/ #include <iostream.h> #include <stdio.h> #include <conio.h> struct registro4 { int numeroC; char nombre[10]; char domicilio[10]; float estatura; float peso; char activo; }conductores; void registrandoC() { printf("\n\t\t REGISTRO DE CONDUCTORES \n"); cout<<"Nombre "; gets(conductores.nombre); cout<<"Domicilio "; gets(conductores.domicilio); cout<<"Estatura "; cin>>conductores.estatura; cout<<"Peso "; cin>>conductores.peso; conductores.activo='a'; } void registrarConductor() { clrscr(); FILE *ra; ra=fopen("conductores.dat","rb+"); if(ra==NULL) //Si no existe { FILE *n; fclose(ra); n=fopen("conductores.dat","ab+"); cout<<"\n\tINSERTE LOS DATOS DEL PRIMER CONDUCTOR\n"; conductores.numeroC=1; registrandoC(); fwrite(&conductores,sizeof(conductores),1,n); fclose(n); getch(); } else { fclose(ra); FILE *c; c=fopen("conductores.dat","rb+"); int k; cout<<"\nInserte el numero de auto que desee insertar "; cin>>k; fseek(c,(k-1)*sizeof(conductores),SEEK_SET); fread(&conductores,sizeof(conductores),1,c); if(conductores.domicilio==NULL) { conductores.numeroC=k; registrandoC(); fseek(c,(k-1)*sizeof(conductores),SEEK_SET); fwrite(&conductores,sizeof(conductores),1,c); fclose(c); getch(); } else { getch(); } } } void reporteConductores() { clrscr(); FILE *rep; rep=fopen("conductores.dat","rb"); fread(&conductores,sizeof(conductores),1,rep); printf("# CONDUCTOR \t NOMBRE \t\ DOMICILIO \t ESTATURA\tPESO"); do { if(conductores.activo=='a') { cout<<"\n"<<conductores.numeroC<<"\t\t "<<conductores.nombre<<"\t\t "<<conductores.domicilio<<"\t\t "<<conductores.estatura<<"\t\t"<<conductores.peso; } fread(&conductores,sizeof(conductores),1,rep); }while(!feof(rep)); fclose(rep); getch(); } void consultaC(int n) { FILE *rep; rep=fopen("conductores.dat","rb+"); fseek(rep,(n-1)*(sizeof(conductores)),SEEK_SET); fread(&conductores,sizeof(conductores),1,rep); if(conductores.activo!=NULL) { printf("# CONDUCTOR \t\t NOMBRE \t\t\ DOMICILIO \t ESTATURA"); if(conductores.activo=='a') { cout<<"\n"<<conductores.numeroC<<"\t\t\t "<<conductores.nombre<<"\t\t\t "<<conductores.domicilio<<"\t\t "<<conductores.estatura; } else { cout<<"\n El conductor no exite"; getch(); } } else { cout<<"\nEl registro no existe"; getch(); } fclose(rep); } void eliminarC() { FILE *reg; int d; cout<<"Inserte el conductor que desee dar de baja: "; cin>>d; reg=fopen("conductor.dat","rb+"); fseek(reg,(d-1)*(sizeof(conductores)),SEEK_SET); fread(&conductores,sizeof(conductores),1,reg); if(conductores.activo!=NULL) { conductores.activo='b'; fseek(reg,(d-1)*(sizeof(conductores)),SEEK_SET); fwrite(&conductores,sizeof(conductores),1,reg); fclose(reg); } else { cout<<"\nEl archivo no esta"; getch(); } } void menuC() { conductores.activo=NULL; int op; int b; while(op!=5) { clrscr(); gotoxy(25,1); cout<<"REGISTRO DE CONDUCTORES"; gotoxy(1,3); cout<<"1.- Registrar conductor"; gotoxy(1,5); cout<<"2.- Reporte"; gotoxy(1,7); cout<<"3.- Consulta"; gotoxy(1,9); cout<<"4.- Eliminar"; gotoxy(1,11); cout<<"5.- Regresar"; gotoxy(1,14); cout<<"\t Eliga una opcion [ ]"; gotoxy(29,14); cin>>op; switch(op) { case 1: registrarConductor(); break; case 2: reporteConductores(); break; case 3: clrscr(); cout<<"Inserte el numero de conductor que desee consultar "; cin>>b; consultaC(b); getch(); break; case 4: clrscr(); eliminarC(); break; } } } void eslogan() { cout<<" ****** ** ******* ******* ******** ******* ** "; cout<<"\n **////** **** /**////** /**////** /**///// /**////** **** "; cout<<"\n ** // **//** /** /** /** /** /** /** /** **//** "; cout<<"\n/** ** //** /******* /******* /******* /******* ** //** "; cout<<"\n/** **********/**///** /**///** /**//// /**///** **********"; cout<<"\n//** **/**//////**/** //** /** //** /** /** //** /**//////**"; cout<<"\n //****** /** /**/** //**/** //**/********/** //**/** /**"; cout<<"\n ////// // // // // // // //////// // // // // "; }
/************************************************************************************************************ * * * 25 DE MARZO DE 2010 * * * * Programa que almacena los datos de los diferentes tipos de carros y los guarda en un archivo binario * * * * Programador Julio Cesar Leyva Rodriguez Instituto Tecnologico de Los Mochis * * * ************************************************************************************************************/ #include <iostream.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> /** Estructura de los datos de los datos */ struct reg { int numeroV; char marca[10]; int anio; char color[10]; int matricula; char activo; }automoviles; void noExiste() { cout<<"\nEl Registro no existe"; } void espacioOcupado() { cout<<"\nEspacio ocupado"; } void eliminado() { cout<<"\nEliminado correctamente"; } void registrado() { cout<<"\nRegistrado correctamente"; } void registrando() { printf("\n\t\t REGISTRO DE AUTOS \n"); cout<<"Marca "; gets(automoviles.marca); cout<<"Año "; cin>>automoviles.anio; cout<<"Matricula "; cin>>automoviles.matricula; cout<<"Color "; gets(automoviles.color); automoviles.activo='a'; } /** Funcion para registrar los datos en el archivo */ void registrar() { clrscr(); FILE *ra; ra=fopen("automoviles.dat","rb+"); if(ra==NULL) //Si no existe { FILE *n; fclose(ra); n=fopen("automoviles.dat","ab+"); cout<<"\n\tINSERTE LOS DATOS DEL PRIMER AUTO\n"; automoviles.numeroV=1; registrando(); fwrite(&automoviles,sizeof(automoviles),1,n); fclose(n); registrado(); getch(); } else { fclose(ra); FILE *c; c=fopen("automoviles.dat","rb+"); int k; cout<<"\nInserte el numero de auto que desee insertar "; cin>>k; fseek(c,(k-1)*sizeof(automoviles),SEEK_SET); fread(&automoviles,sizeof(automoviles),1,c); if(automoviles.activo==NULL) { automoviles.numeroV=k; registrando(); fseek(c,(k-1)*sizeof(automoviles),SEEK_SET); fwrite(&automoviles,sizeof(automoviles),1,c); fclose(c); registrado(); getch(); } else { espacioOcupado(); getch(); } } } /** Muestra todos los registros del archivo en forma de reporte */ void reporte() { clrscr(); FILE *rep; rep=fopen("automoviles.dat","rb+"); fread(&automoviles,sizeof(automoviles),1,rep); printf("# VEHICULO \t\t MARCA \t\t AÑO \t MATRICULA \t COLOR"); do { if(automoviles.activo=='a') { cout<<"\n "<<automoviles.numeroV<<"\t \t\t "<<automoviles.marca<<"\t\t "<<automoviles.anio<<"\t "<<automoviles.matricula<<"\t\t "<<automoviles.color; } fread(&automoviles,sizeof(automoviles),1,rep); }while(!feof(rep)); fclose(rep); getch(); } /** Consulta un solo registro en el archivo */ void consultaVehiculo(int n) { FILE *rep; rep=fopen("automoviles.dat","rb"); fseek(rep,(n-1)*(sizeof(automoviles)),SEEK_SET); fread(&automoviles,sizeof(automoviles),1,rep); if(automoviles.activo!=NULL) { printf("\n # VEHICULO \t\t MARCA \t\t AÑO \t MATRICULA \t COLOR"); if(automoviles.activo=='a') { cout<<"\n "<<automoviles.numeroV<<"\t \t\t "<<automoviles.marca<<"\t\t "<<automoviles.anio<<"\t "<<automoviles.matricula<<"\t\t "<<automoviles.color; } else { noExiste(); getch(); } } else { noExiste(); getch(); } fclose(rep); } /* Modifica un registro señalado */ void modificar() { clrscr(); FILE *reg; int d; cout<<"Inserte el dato que desee modificar: "; cin>>d; reg=fopen("automoviles.dat","rb+"); printf("\t\t REGISTRO DE AUTOS \n"); cout<<"Numero de vehiculo "; cin>>automoviles.numeroV; cout<<"Marca "; gets(automoviles.marca); cout<<"Año "; cin>>automoviles.anio; cout<<"Matricula "; cin>>automoviles.matricula; cout<<"Color "; gets(automoviles.color); automoviles.activo='a'; fseek(reg,(d-1)*(sizeof(automoviles)),SEEK_SET); fwrite(&automoviles,sizeof(automoviles),1,reg); fclose(reg); } /* Elimina el registro seleccionado "logicamente" */ void eliminar() { FILE *reg; int d; cout<<"Inserte el registro que desee Eliminar: "; cin>>d; reg=fopen("automoviles.dat","rb+"); fseek(reg,(d-1)*(sizeof(automoviles)),SEEK_SET); fread(&automoviles,(d)*(sizeof(automoviles)),1,reg); if(automoviles.activo!=NULL) { fread(&automoviles,(d)*(sizeof(automoviles)),1,reg); automoviles.activo='b'; fseek(reg,(d-1)*(sizeof(automoviles)),SEEK_SET); fwrite(&automoviles,sizeof(automoviles),1,reg); fclose(reg); eliminado(); getch(); } else { noExiste(); getch(); } } /* Menu de opciones */ void menuA() { int a; int op; while(op!=5) { automoviles.activo=NULL; clrscr(); gotoxy(25,1); cout<<"REGISTRO DE AUTOMOTORES"; gotoxy(1,3); cout<<"1.- Registrar automotor"; gotoxy(1,5); cout<<"2.- Reporte"; gotoxy(1,7); cout<<"3.- Consultar"; gotoxy(1,9); cout<<"4.- Eliminar"; gotoxy(1,11); cout<<"5.- Regresar"; gotoxy(1,14); cout<<"\t Eliga una opcion [ ]"; gotoxy(29,14); cin>>op; cout<<"\n"; eslogan(); switch(op) { case 1: registrar(); break; case 2: reporte(); break; case 3: clrscr(); cout<<"Inserte el numero de automovil que desee consultar"; cin>>a; consultaVehiculo(a); getch(); break; case 4: clrscr(); eliminar(); break; } } }
/************************************************************************************************************ * * * 25 DE MARZO DE 2010 * * * * Programa que almacena los datos de los diferentes tipos de carros y los guarda en un archivo binario * * * * Programador Julio Cesar Leyva Rodriguez Instituto Tecnologico de Los Mochis * * * ************************************************************************************************************/ #include <iostream.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> /** Estructura de los datos de los datos */ struct reg { int numeroV; char marca[10]; int anio; char color[10]; int matricula; char activo; }automoviles; void noExiste() { cout<<"\nEl Registro no existe"; } void espacioOcupado() { cout<<"\nEspacio ocupado"; } void eliminado() { cout<<"\nEliminado correctamente"; } void registrado() { cout<<"\nRegistrado correctamente"; } void registrando() { printf("\n\t\t REGISTRO DE AUTOS \n"); cout<<"Marca "; gets(automoviles.marca); cout<<"Año "; cin>>automoviles.anio; cout<<"Matricula "; cin>>automoviles.matricula; cout<<"Color "; gets(automoviles.color); automoviles.activo='a'; } /** Funcion para registrar los datos en el archivo */ void registrar() { clrscr(); FILE *ra; ra=fopen("automoviles.dat","rb+"); if(ra==NULL) //Si no existe { FILE *n; fclose(ra); n=fopen("automoviles.dat","ab+"); cout<<"\n\tINSERTE LOS DATOS DEL PRIMER AUTO\n"; automoviles.numeroV=1; registrando(); fwrite(&automoviles,sizeof(automoviles),1,n); fclose(n); registrado(); getch(); } else { fclose(ra); FILE *c; c=fopen("automoviles.dat","rb+"); int k; cout<<"\nInserte el numero de auto que desee insertar "; cin>>k; fseek(c,(k-1)*sizeof(automoviles),SEEK_SET); fread(&automoviles,sizeof(automoviles),1,c); if(automoviles.activo==NULL) { automoviles.numeroV=k; registrando(); fseek(c,(k-1)*sizeof(automoviles),SEEK_SET); fwrite(&automoviles,sizeof(automoviles),1,c); fclose(c); registrado(); getch(); } else { espacioOcupado(); getch(); } } } /** Muestra todos los registros del archivo en forma de reporte */ void reporte() { clrscr(); FILE *rep; rep=fopen("automoviles.dat","rb+"); fread(&automoviles,sizeof(automoviles),1,rep); printf("# VEHICULO \t\t MARCA \t\t AÑO \t MATRICULA \t COLOR"); do { if(automoviles.activo=='a') { cout<<"\n "<<automoviles.numeroV<<"\t \t\t "<<automoviles.marca<<"\t\t "<<automoviles.anio<<"\t "<<automoviles.matricula<<"\t\t "<<automoviles.color; } fread(&automoviles,sizeof(automoviles),1,rep); }while(!feof(rep)); fclose(rep); getch(); } /** Consulta un solo registro en el archivo */ void consultaVehiculo(int n) { FILE *rep; rep=fopen("automoviles.dat","rb"); fseek(rep,(n-1)*(sizeof(automoviles)),SEEK_SET); fread(&automoviles,sizeof(automoviles),1,rep); if(automoviles.activo!=NULL) { printf("\n # VEHICULO \t\t MARCA \t\t AÑO \t MATRICULA \t COLOR"); if(automoviles.activo=='a') { cout<<"\n "<<automoviles.numeroV<<"\t \t\t "<<automoviles.marca<<"\t\t "<<automoviles.anio<<"\t "<<automoviles.matricula<<"\t\t "<<automoviles.color; } else { noExiste(); getch(); } } else { noExiste(); getch(); } fclose(rep); } /* Modifica un registro señalado */ void modificar() { clrscr(); FILE *reg; int d; cout<<"Inserte el dato que desee modificar: "; cin>>d; reg=fopen("automoviles.dat","rb+"); printf("\t\t REGISTRO DE AUTOS \n"); cout<<"Numero de vehiculo "; cin>>automoviles.numeroV; cout<<"Marca "; gets(automoviles.marca); cout<<"Año "; cin>>automoviles.anio; cout<<"Matricula "; cin>>automoviles.matricula; cout<<"Color "; gets(automoviles.color); automoviles.activo='a'; fseek(reg,(d-1)*(sizeof(automoviles)),SEEK_SET); fwrite(&automoviles,sizeof(automoviles),1,reg); fclose(reg); } /* Elimina el registro seleccionado "logicamente" */ void eliminar() { FILE *reg; int d; cout<<"Inserte el registro que desee Eliminar: "; cin>>d; reg=fopen("automoviles.dat","rb+"); fseek(reg,(d-1)*(sizeof(automoviles)),SEEK_SET); fread(&automoviles,(d)*(sizeof(automoviles)),1,reg); if(automoviles.activo!=NULL) { fread(&automoviles,(d)*(sizeof(automoviles)),1,reg); automoviles.activo='b'; fseek(reg,(d-1)*(sizeof(automoviles)),SEEK_SET); fwrite(&automoviles,sizeof(automoviles),1,reg); fclose(reg); eliminado(); getch(); } else { noExiste(); getch(); } } /* Menu de opciones */ void menuA() { int a; int op; while(op!=5) { automoviles.activo=NULL; clrscr(); gotoxy(25,1); cout<<"REGISTRO DE AUTOMOTORES"; gotoxy(1,3); cout<<"1.- Registrar automotor"; gotoxy(1,5); cout<<"2.- Reporte"; gotoxy(1,7); cout<<"3.- Consultar"; gotoxy(1,9); cout<<"4.- Eliminar"; gotoxy(1,11); cout<<"5.- Regresar"; gotoxy(1,14); cout<<"\t Eliga una opcion [ ]"; gotoxy(29,14); cin>>op; cout<<"\n"; eslogan(); switch(op) { case 1: registrar(); break; case 2: reporte(); break; case 3: clrscr(); cout<<"Inserte el numero de automovil que desee consultar"; cin>>a; consultaVehiculo(a); getch(); break; case 4: clrscr(); eliminar(); break; } } }
/****************************************************************************************************************************** * * * 11 de abril de 2010 * * * * Paquete de programas para el proyecto de la carrera * * * * Programador Julio Cesar Leyva Rodriguez Instituto Tecnologico de Los Mochis * * * ******************************************************************************************************************************/ #include <iostream.h> #include <conducto.h> #include <automovi.h> #include <evento.h> void main() { int op; while(op!=5) { clrscr(); eslogan(); gotoxy(25,10); cout<<"PRINCIPAL"; gotoxy(1,13); cout<<"1.- Vehiculos"; gotoxy(1,15); cout<<"2.- Conductores"; gotoxy(1,17); cout<<"3.- Evento"; gotoxy(1,19); cout<<"4.- Reporte"; gotoxy(1,21); cout<<"\t Eliga una opcion [ ]"; gotoxy(29,21); cin>>op; switch(op) { case 1: clrscr(); menuA(); break; case 2: menuC(); break; case 3: clrscr(); menuE(); break; case 4: clrscr(); reporteEvento(); getch(); break; case 5: clrscr(); cout<<"Salir"; break; default: cout<<"\nOPCION INCORRECTA"; break; } } }

Comentarios
Publicar un comentario