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)