Advertisement
Juan_Blanc

Agenda Con Archivos de Acceso Aleatorio

May 1st, 2015
309
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.68 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct{
  6.     char nombre[20];
  7.     char direccion[30];
  8.     int telefono;
  9. }Contacto;
  10.  
  11. void menu (char* nombreArchivo);
  12. Contacto crearContacto();
  13. void guardarContacto(Contacto contacto, char* nombreArchivo);
  14. void mostrarAgenda(char* nombreArchivo);
  15. void pausar();
  16.  
  17. int main(){
  18.     char nombreArchivo[12]= "agenda.bin";
  19.     menu (nombreArchivo);
  20.     return 0;
  21. }
  22.  
  23. void menu(char* nombreArchivo){
  24.     int opcion;
  25.    
  26.     do{
  27.         system("cls");
  28.         printf("1. Crear contacto\n");
  29.         printf("2. Consultar agenda\n");
  30.         printf("3. Salir\n\n");
  31.         printf("Ingresar una opcion: ");
  32.         scanf(" %d", &opcion);
  33.        
  34.         if (opcion>0 && opcion<4){
  35.             system("cls");
  36.             switch(opcion){
  37.                 case 1:
  38.                     guardarContacto(crearContacto(), nombreArchivo);
  39.                     break;
  40.                 case 2:
  41.                     mostrarAgenda(nombreArchivo);
  42.                     break;
  43.                 case 3:
  44.                     printf("Fin del programa\n");
  45.                     pausar();
  46.                     break;
  47.             }
  48.         }
  49.         else{
  50.             printf("\nOpcion no contemplada\n");
  51.             pausar();
  52.         }
  53.     }while (opcion!=3);
  54. }
  55.  
  56. Contacto crearContacto(){
  57.     Contacto contacto;
  58.    
  59.     printf("Nombre: ");
  60.     scanf(" %[^\n]", contacto.nombre);
  61.     printf("Direccion: ");
  62.     scanf(" %[^\n]", contacto.direccion);
  63.     printf("Telefono: ");
  64.     scanf(" %d", &contacto.telefono);
  65.    
  66.     return contacto;
  67. }
  68.  
  69. void guardarContacto(Contacto contacto, char* nombreArchivo){
  70.     FILE* file= fopen(nombreArchivo, "ab");
  71.    
  72.     if (file==NULL){
  73.         printf("Error al intentar acceder al archivo\n");
  74.         pausar();
  75.     }
  76.     else{
  77.         fwrite(&contacto, sizeof(Contacto), 1, file);
  78.         printf("\nContacto guardado!\n");
  79.         pausar();
  80.         fclose(file);
  81.     }
  82. }
  83.  
  84. void mostrarAgenda(char* nombreArchivo){
  85.     FILE* file= fopen(nombreArchivo, "rb");
  86.    
  87.     if (file==NULL){
  88.         printf("Error al intentar acceder al archivo\n");
  89.         pausar();
  90.     }
  91.     else{
  92.         Contacto contacto;
  93.         printf("%-20s %-30s %-10s\n\n", "Nombre", "Direccion", "Telefono");
  94.         while (fread(&contacto, sizeof(Contacto), 1, file)){
  95.             printf("%-20s %-30s %-10d\n", contacto.nombre, contacto.direccion,
  96.                     contacto.telefono);
  97.         }
  98.         fclose(file);
  99.         printf("\n\n");
  100.         pausar();
  101.     }
  102. }
  103.  
  104. void pausar(){
  105.     printf("Presione ENTER para continuar");
  106.    
  107.     while (getchar() != '\n');
  108.     getchar();
  109.    
  110.     printf("");
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement