Posted by :
Jason
viernes, 12 de agosto de 2016
Ejercicio # 35
Crearemos un MENU en el cual nos permita
1.-Crear un archivo e ingresar nombre apellido y numero de cedula de la persona.
2.- ver el registro creado.
3.- ingresar mas personas al registro.
MUESTRA DE LA COMPILACIÓN DEL CÓDIGO
Código:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
typedef struct {
char nom[25];
char ape[25];
int separador;//esto es un sepoarador de los char esta puesto para que al mostrar no se mesclen los caracteres.
char cedula[15];
char dir[35];
}Amigo;
/*Funciones de Archivo*/
void Crear(void);
void visualizar(void);
void Agregar(void);
/*Nombre del Archivo a guardar*/
char nombre_fichero[] = "registro.txt";
FILE *abrir_fichero_b(char cadena[], int metodo);
void main(void){
FILE *fp;
int opc;
char cad[10];
fp = abrir_fichero_b(nombre_fichero,0);
do{
system("cls");
printf("\n\t\t\tMENU\n");
printf("\n\t1. Crear Archivo (Cuidado, elimina lo que ya se tiene en el Archivo)");
printf("\n\t2. Agregar Al Registro \n\t3. Visualizar Registro \n\t4. Salir\n");
printf("\n Escoga una de las OPCIONES: ");
opc = atoi(gets(cad));
while(opc<0 || opc>4) /*Limitando la entrada de las opciones*/
opc = atoi(gets(cad));
system("cls");
switch(opc)
{
case 1:
Crear();
break;
case 2:
Agregar();
break;
case 3:
visualizar();
break;
}
/*Solo parar cuando sea una de las opciones*/
if(opc<4)
{
puts("\n\nPresiona Cualquier Tecla para Regresar al Menu");
getch();
}
}
while(opc!=4);
}
// FUNCION PARA CREAR UN ARCHIVO
/*****************************************************************
Funcion que sirve para borrar todo el Contenido del Archivo Binario*/
void Crear(void){
FILE *fp;
fp = abrir_fichero_b(nombre_fichero,0);
if(fp)
{
printf("\n Error de archivo de registro\n");
fclose(fp);
}
}
void visualizar(void){
FILE *fp;
int i=1;
Amigo aux;
fp = abrir_fichero_b(nombre_fichero,0);
if(!(fp))
printf("\n Error de archivo de registro\n");
else{
printf("\n\t\t\t USUARIOS EN EL REGISTRO \n");
printf("---------------------------------------------------------------\n");
while ((fread(&aux, sizeof(aux), 1, fp))!=0){
printf("\t\t=> Datos del USUARIO %d\n\n",i);
printf("\tNombre: %s | Apellido: %s | Cedula: %s\n",aux.nom,aux.ape,aux.cedula);
printf("\tDireccion: %s\n\n",aux.dir);
i++;
}
printf("---------------------------------------------------------------\n");
fclose(fp);
}
}
void Agregar(void){
FILE *fp;
Amigo aux;
char cad[3];
printf("\n\t\t\t REGISTRANDO USUARIO AL REGISTRO\n\n");
fp=abrir_fichero_b(nombre_fichero,2);
if(!(fp))
printf("\n Error de archivo de registro\n");
else{
/*Introduciendo los Datos del Amigo*/
printf("\tNOMBRE: ");
gets(aux.nom);
printf("\tAPELLIDO: ");
gets(aux.ape);
printf("\tCEDULA: ");
gets(aux.cedula);
printf("\tDIRECCION: ");
gets(aux.dir);
fwrite(&aux, sizeof(aux), 1, fp);
fclose(fp);
}
}
FILE *abrir_fichero_b(char cadena[], int metodo){
FILE *x;
switch(metodo){
case 0:
x = fopen(cadena,"rb");
break;
case 1:
x = fopen(cadena,"wb");
break;
case 2:
x = fopen(cadena,"ab");
break;
case 3:
x = fopen(cadena,"r+b");
break;
}
return x;
}