ayuda para agregar opcion "editar" en agenda electronica

Iniciado por equijadar1500, 17 Mayo 2016, 18:09 PM

0 Miembros y 1 Visitante están viendo este tema.

equijadar1500

ayuda para agregar la opción de editar en la agenda electrónica
verán tengo la mayor parte del código solo me falta incluir la opción de "editar registros"

#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#define bool int
#define true 1
#define false 0


FILE *archivo, *temporal;

void AGREGAR_PERSONA()
{
   int numreg, registro;
   char apellido[20], nombre[20], telefono[15], telm[15], resp;
   bool no_encontrado;
   do{
      if((archivo = fopen("Directorio.ang","r")) == NULL)
      {
         cout<<"\n No se Encuentra el Archivo!";
         cout<<"\n\n Pulse una tecla para continuar...";
         getch();
      }else{
         clrscr();
         no_encontrado = true;
         cout<<"\n Introduzca el numero de registro: "; cin>> registro;
         while ((!feof(archivo)) && (no_encontrado))
         {
            fscanf(archivo,"%d %s %s %s %s", &numreg, &apellido, &nombre, &telefono, &telm);
            if(registro == numreg)
            {
               no_encontrado = false;
            }
         }
         fclose(archivo);
         if(no_encontrado)
         {
            archivo = fopen("Directorio.ang","a");
            numreg = registro;
            cout<<"\n Introduzca el Apellido: "; cin>> apellido;
            cout<<" Introduzca el Nombre: "; cin>> nombre;
            cout<<" Introduzca el Telefono de casa: "; cin>> telefono;
            cout<<" Introduzca el telefono celular:"; cin>> telm;
            fprintf(archivo,"%d %s %s %s %s\n", numreg, apellido, nombre, telefono, telm); // %f para los float, %d para los int.
         }else{
            cout<<"\n Esta Persona ya esta Registrada en la Agenda!";
         }
         cout<<"\n\n Desea Registrar Otra Persona? S/N: "; resp = getch();
         fclose(archivo);
      }
   }while((resp == 's') || (resp == 'S'));
} //Fin del procedimiento AGREGAR_PERSONA

void CONSULTAR_REGISTRO()
{
   int registro, numreg; // Se declaran enteros porque si se dejan como string luego no se puede hacer la comparacion normal sino por comparacion de cadenas.
   char apellido[20], nombre[20], telefono[15], telm[15], resp;
   bool no_encontrado;
   do{
      if((archivo = fopen("Directorio.ang","r")) == NULL)
      {
         cout<<"\n No se Encuentra el Archivo!";
         cout<<"\n\n Pulse una tecla para continuar...";
         getch();
      }else{
         clrscr();
         no_encontrado = true;
         cout<<"\n Introduzca el numero de registro a Consultar: "; cin>>registro;
         while((!feof(archivo)) && (no_encontrado))
         {
            fscanf(archivo,"%d %s %s %s %s", &numreg, &apellido, &nombre, &telefono, telm);
            if(registro == numreg)
            {
               no_encontrado = false;
            }
         }
         if(no_encontrado)
         {
            cout<<"\n No Existe un Registro con ese numero de registro!\n\n";
         }else{
            cout<<"\n Registro Encontrado!\n\n";
            cout<<" Numero de registro:   " <<numreg <<"\n";
            cout<<" Apellido: " <<apellido <<"\n";
            cout<<" Nombre:   " <<nombre <<"\n";
            cout<<" Telefono de casa: " <<telefono <<"\n";
            cout<<" Telefono movil:"<< telm<<"\n";
         }
         cout<<" Desea Realizar Otra Consulta? S/N: "; resp = getch();
         fclose(archivo);
      }
   }while((resp == 's') || (resp == 'S'));
} //Fin del procedimiento CONSULTAR_REGISTRO

void ELIMINAR_PERSONA()
{
   int registro, numreg;
   char resp, apellido[20], nombre[20], telefono[15], telm[15], eliminar;
   bool no_encontrado;
   do{
      if ((archivo = fopen("Directorio.ang","r")) == NULL)
      {
         cout<<"\n No se Encuentra el Archivo!";
         cout<<"\n\n Pulse una tecla para continuar...";
         getch();
      }else{
         clrscr();
         no_encontrado = true;
         cout<<"\n Introduzca el numero de registro del contacto a Eliminar: "; cin>>registro;
         while((!feof(archivo)) && (no_encontrado))
         {
            fscanf(archivo,"%d %s %s %s %s", &numreg, &apellido, &nombre, &telefono, &telm);
            if(registro == numreg)
            {
               no_encontrado = false;
            }
         }
         if(no_encontrado)
         {
            cout<<"\n No Existe un Registro con ese numero!\n\n";
         }else{
            cout<<"\n Registro Encontrado!\n\n";
            cout<<" Numero de registro:   " <<numreg <<"\n";
            cout<<" Apellido: " <<apellido <<"\n";
            cout<<" Nombre:   " <<nombre <<"\n";
            cout<<" Telefono de casa: " <<telefono <<"\n";
            cout<<" Telefono movil: " << telm<<"\n\n";
            fclose(archivo);
            cout<<" Desea Eliminar este Registro? S/N: "; eliminar = getch();
         }
         if ((eliminar == 's') || (eliminar == 'S'))
         {
            if((archivo = fopen("Directorio.ang","r")) == NULL)
            {
               cout<<"\n No se Encuentra el Archivo!";
               cout<<"\n\n Pulse una tecla para continuar...";
               getch();
            }else{
               temporal = fopen("temporal.ang","w");
               while(!feof(archivo))
               {
                  fscanf(archivo,"%d %s %s %s %s\n", &numreg, &apellido, &nombre, &telefono, &telm);
                  if (registro != numreg)
                  {
                     fprintf(temporal,"%d %s %s %s %s\n", numreg, apellido, nombre, telefono, telm);
                  }
               }
               fclose(temporal);
               fclose(archivo);
               if((temporal = fopen("temporal.ang","r")) == NULL)
               {
                  cout<<"\n No se Encuentra el Archivo, no se Pudo Eliminar!";
                  cout<<"\n\n Pulse una tecla para continuar...";
                  getch();
               }else{
                  archivo = fopen("Directorio.ang","w");
                  while(!feof(temporal))
                  {
                     fscanf(temporal,"%d %s %s %s %s\n", &numreg, &apellido, &nombre, &telefono, &telm);
                     fprintf(archivo,"%d %s %s %s %s\n", numreg, apellido, nombre, telefono, telm);
                  }
                  fclose(temporal);
                  fclose(archivo);
                  cout<<"\n\n Se ha Eliminado el Registro!";
                  //Vaciamos el Archivo temporal
                  temporal = fopen("temporal.ang","w");
                  fclose(temporal);
               }
            }
         }
         cout<<"\n\n Desea eliminar Otro Registro? S/N: "; resp = getch();
      }
   }while((resp == 's') || (resp == 'S'));
} //Fin del procedimiento ELIMINAR_REGISTRO

void VACIAR_AGENDA()
{
   char resp;
   cout<<"\n\n Esta Seguro que Desea Vaciar la Agenda? S/N: "; cin>> resp;
   if ((resp == 's') || (resp == 'S'))
   {
      if((archivo = fopen("Directorio.ang","w")) == NULL)
      {
         cout<<"\n No se Encuentra el Archivo!";
         cout<<"\n\n Pulse una tecla para continuar...";
         getch();
      }else{
         fclose(archivo);
         cout<<"\n Se ha Vaciado la Agenda Satisfactoriamente!";
         cout<<"\n\n Pulse una tecla para continuar...";
         getch();
      }
   }
} //Fin del procedimiento VACIAR_AGENDA

void DESPLEGAR_AGENDA()
{
   char numreg[8], apellido[20], nombre[20], telefono[15], telm[15];
   if((archivo = fopen("Directorio.ang","r")) == NULL)
   {
      cout<<"\n No se Encuentra el Archivo!";
      cout<<"\n\n Pulse una tecla para continuar...";
      getch();
   }else{
      clrscr();
cout<<"  NUMERO DE REGISTRO   APELLIDO    NOMBRE    TELEFONO DE CASA   TELEFONO MOVIL \n\n";
      while(!feof(archivo))
      {
         fscanf(archivo,"%s %s %s %s %s\n", &numreg, &apellido, &nombre, &telefono, &telm);
cout<<"          "<<numreg<<"            "<<apellido<<"     "<<nombre<<"         "<<telefono<<"          "<<telm<<" \n";
      }
      fclose(archivo);
      cout<<"\n\n Pulse una tecla para continuar...";
      getch();
   }
} //Fin del procedimiento DESPLEGAR_AGENDA

void MENU()
{
                                cout<<"Agenda electronica \n\n";
   cout<<" 1- Agregar una Persona a la Agenda.\n";
   cout<<" 2- Consultar un Registro en la Agenda.\n";
   cout<<" 3- Desplegar todos los Datos de la Agenda.\n";
   cout<<" 4- Eliminar un Registro de la Agenda.\n";
   cout<<" 5- Vaciar la Agenda.\n";
   cout<<" S- Salir.\n";
} // Fin del procedimiento MENU

void main (void)
{
   char op;
   bool salir = false;
   do{
      clrscr();
      if ((archivo = fopen("Directorio.ang","r")) == NULL)
      {
         cout<<"\n Al parecer es la Primera Vez que inicias el Programa,\n";
         cout<<" o el Archivo fue Borrado. Presiona una tecla para Crearlo...";
         getch();
         archivo = fopen("Directorio.ang","w");
         fclose(archivo);
         cout<<"\n\n El Archivo se ha Creado con Exito!!!\n\n";
         MENU();
         cout<<"\n Seleccione una Opcion: "; op = getch();
      }else{
         MENU();
         cout<<"\n Seleccione una Opcion: "; op = getch();
      }
      switch (op)
      {
         case '1':
            AGREGAR_PERSONA();
            break;
         case '2':
            CONSULTAR_REGISTRO();
            break;
         case '3':
            DESPLEGAR_AGENDA();
            break;
         case '4':
            ELIMINAR_PERSONA();
            break;
         case '5':
            VACIAR_AGENDA();
            break;
         case 's': case 'S':
            salir = true;
            break;
      }
   }while(salir == false);
   getchar ();
} // Fin del main (void)