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;
}


Deja tu comentario

Sean Bienvenidos a mi página.

- Copyright © Jason Igneel -