[ Foro de C ]
El caso es que tengo que crear los contactos en la opcion 1 y en la opcion 2 me deben aparecer los que he registrado y poder seleccionar uno para modificar pero lo que pasa es que solo se guarda el ultimo numero telefonico que ingrese, ayudaaa
#include<stdio.h>
#include<conio.h>
struct contacto
{
int Numero_registrado, activo;
long int tel;
char nom[10],AP[10],AM[10],correo[20], empresa[30],puesto[15],sito_web[30],notas[30];
}contact[30];
int no_reg=0;
int main()
{
}
menu()
{
int opc;
printf("Elija una opcion.\n");
printf("1. Crear Contacto\n");
printf("2. Actualizar Contacto\n");
printf("3. Eliminar Contacto\n");
printf("4. Salir\n");
scanf("%d", &opc);
while(opc<1||opc>4)
{
printf("\a\n\t\tERROR\n");
system("pause");
system("cls");
printf("Elija una opcion.\n");
printf("1. Crear Contacto\n");
printf("2. Actualizar Contacto\n");
printf("3. Eliminar Contacto\n");
printf("4. Salir\n");
scanf("%d", &opc);
fflush(stdin);
}
system("cls");
switch(opc)
{
case 1:
CrearContacto();
break;
case 2:
ActualizarContacto();
break;
case 3:
EliminarContacto();
break;
case 4:
return 0;
break;
}
}
CrearContacto()
{
int crear;
printf("AGREGAR CLIENTE\n\n");
contact[no_reg].activo=1;
contact[no_reg].Numero_registrado= no_reg+1;
printf("Ingrese el telefono (a 8 digitos): ");
scanf("%ld",&contact[no_reg].tel);
fflush(stdin);
printf("\n\t\t*EL NUMERO DE TELEFONO HA SIDO REGISTRADO CORRECTAMENTE*\n");
printf("\nIngrese el apellido paterno: ");
gets(contact[no_reg].AP);
fflush(stdin);
strupr(contact[no_reg].AP);
printf("Ingrese el appelido materno: ");
gets(contact[no_reg].AM);
fflush(stdin);
strupr(contact[no_reg].AM);
printf("Ingrese el nombre: ");
gets(contact[no_reg].nom);
fflush(stdin);
strupr(contact[no_reg].nom);
printf("Ingrese el E-mail: ");
gets(contact[no_reg].correo);
fflush(stdin);
strupr(contact[no_reg].correo);
printf("Ingrese su sitio web: ");
gets(contact[no_reg].sito_web);
fflush(stdin);
strupr(contact[no_reg].sito_web);
printf("Ingrese su puesto: ");
gets(contact[no_reg].puesto);
fflush(stdin);
strupr(contact[no_reg].puesto);
printf("Ingrese el nombre de la empresa: ");
gets(contact[no_reg].empresa);
fflush(stdin);
strupr(contact[no_reg].empresa);
printf("Ingrese alguna nota: ");
gets(contact[no_reg].notas);
fflush(stdin);
strupr(contact[no_reg].notas);
system("cls");
printf("Los Datos Registrados son: \n");
printf("\n\nTelefono: ");
printf("%ld",contact[no_reg].tel);
printf("\nNumero de registo del cliente: %d\n",contact[no_reg].Numero_registrado);
printf("Apellido paterno:");
puts(contact[no_reg].AP);
printf("Apellido materno:");
puts(contact[no_reg].AM);
printf("Nombre del cliente:");
puts(contact[no_reg].nom);
printf("E-mail:");
puts(contact[no_reg].correo);
printf("Sitio web:");
puts(contact[no_reg].sito_web);
printf("Nota:");
puts(contact[no_reg].notas);
printf("Empresa:");
puts(contact[no_reg].empresa);
printf("Puesto:");
puts(contact[no_reg].puesto);
printf("\n\n¿Desea agregar otro contacto?: ");
printf("2)Si.");
printf("1)No.\n");
scanf("%d",&crear);
system("cls");
while(crear<1||crear>2)
{
printf("\a\t\tERROR\n");
system("pause");
system("cls");
printf("\nEL telefono: ");
printf("%ld",contact[no_reg].tel);
printf("El El numero de registro del cliente es: %d\n",contact[no_reg].Numero_registrado);
printf("El apellido paterno es:\n");
puts(contact[no_reg].AP);
printf("El apellido materno es:\n");
puts(contact[no_reg].AM);
printf("El nombre del cliente es:\n");
puts(contact[no_reg].nom);
printf("El correo es:\n");
puts(contact[no_reg].correo);
printf("El sitio web es:\n");
puts(contact[no_reg].sito_web);
printf("Nota:\n");
puts(contact[no_reg].notas);
printf("La empresa es:\n");
puts(contact[no_reg].empresa);
printf("El puesto es:\n");
puts(contact[no_reg].puesto);
printf("\n\n¿Desea agregar otro contacto?: ");
printf("2)Si.");
printf(" 1)No.\n");
scanf("%d",&crear);
system("cls");
}
if(crear==1)
{
printf("\nLOS DATOS HAN SIDO REGISTRADOS CORRECTAMENTE");
no_reg++;
printf("\n");
menu();
}
else
{
CrearContacto();
}
}
ActualizarContacto()
{
int m,i;
long int telefono;
printf("\nACTUALIZAR CONTACTO\n");
printf("\n\n\t\t\tCONTACTOS EXISTENTES\n\t");
printf("\tTELEFONO\t\tNOMBRE\n\t\t");
for(i=0;i<50;i++)
{
if(contact[i].activo==1)
{
printf("%lld",contact[i].tel);
printf("\t\t%s",contact[i].nom);
}
}
printf("\n\nIngrese el telefono del contacto a actualizar\n");
scanf("%lld",&telefono);
fflush(stdin);
system("cls");
for(i=0;i<50;i++)
{
m=0;
if(telefono==contact[i].tel)
{
printf("\n\n\t\t\tCONTACTO ENCONTRADO\n\n\n\n\n\n\n");
system("pause");
system("cls");
printf("\nEL telefono: ");
printf("%lld",contact[i].tel);
printf("\n\nEl Id del cliente es: %d\n",contact[no_reg].Numero_registrado);
printf("\n\nEl apellido paterno es:\n");
puts(contact[i].AP);
printf("\n\nEl apellido materno es:\n");
puts(contact[i].AM);
printf("\n\nEl nombre del cliente es:\n");
puts(contact[i].nom);
printf("\n\nEl correo es:\n");
puts(contact[i].correo);
printf("\n\nEl sitio web es:\n");
puts(contact[i].sito_web);
printf("\n\nNota:\n");
puts(contact[i].notas);
printf("\n\nLa empresa es:\n");
puts(contact[i].empresa);
printf("\n\nEl puesto es:\n");
puts(contact[i].puesto);
system("pause");
system("cls");
ActualizarC(i);
break;
}
else
{
m=1;
}
}
if(m==1)
{
printf("\n\n\t\t\tTELEFONO NO ENCONTRADO\n\n\n\n\n\n\n");
system("pause");
system("cls");
menu();
}
}
ActualizarC(int i)
{
int x,y;
printf("\n\n\t\t\tACTUALIZAR CLIENTE\n\n\n\n\n\n\n");
system("pause");
system("cls");
fflush(stdin);
printf("Ingrese el telefono (celular de 10 digitos o local + lada): ");
scanf("%lld",&contact[i].tel);
fflush(stdin);
printf("\t\t\t\n\n\n\nCONTACTO REGISTRADO\n\n\n");
//apellido paterno
printf("Ingrese el apellido paterno: ");
gets(contact[i].AP);
fflush(stdin);
strupr(contact[i].AP);
//apellido materno
printf("Ingrese el appelido materno: ");
gets(contact[i].AM);
fflush(stdin);
strupr(contact[i].AM);
//nombre
printf("Ingrese el nombre: ");
gets(contact[i].nom);
fflush(stdin);
strupr(contact[i].nom);
//correo
printf("Ingrese el correo: ");
gets(contact[i].correo);
fflush(stdin);
strupr(contact[i].correo);
//sitio web
printf("Ingrese su sitio web: ");
gets(contact[i].sito_web);
fflush(stdin);
strupr(contact[i].sito_web);
//puesto
printf("Ingrese su puesto: ");
gets(contact[i].puesto);
fflush(stdin);
strupr(contact[i].puesto);
//empresa
printf("Ingrese el nombre de la empresa: ");
gets(contact[i].empresa);
fflush(stdin);
strupr(contact[i].empresa);
//notas
printf("Ingrese alguna nota: ");
gets(contact[i].notas);
fflush(stdin);
strupr(contact[no_reg].notas);
//Imprimir datos
system("cls");
printf("\nEL telefono: ");
printf("%lld",contact[i].tel);
printf("\n\nEl Id del cliente es: %d\n",contact[i].Numero_registrado);
printf("\n\nEl apellido paterno es:\n");
puts(contact[i].AP);
printf("\n\nEl apellido materno es:\n");
puts(contact[i].AM);
printf("\n\nEl nombre del cliente es:\n");
puts(contact[i].nom);
printf("\n\nEl correo es:\n");
puts(contact[i].correo);
printf("\n\nEl sitio web es:\n");
puts(contact[i].sito_web);
printf("\n\nNota:\n");
puts(contact[i].notas);
printf("\n\nLa empresa es:\n");
puts(contact[i].empresa);
printf("\n\nEl puesto es:\n");
puts(contact[i].puesto);
//verificar datos
printf("\n\n\t\tIngrese:\n\n\t1)Si los datos son correctos.\n\t2)Si los datos son incorrectos.");
scanf("%d",&x);
system("cls");
while(x<1||x>2)
{
printf("\n\t\t\tERROR\n\n");
system("pause");
system("cls");
printf("\n\nEL telefono:\n");
printf("%lld",contact[i].tel);
printf("\n\nEl Id del cliente es: %d\n",contact[i].Numero_registrado);
printf("\n\nEl apellido paterno es:\n");
puts(contact[i].AP);
printf("\n\nEl apellido materno es:\n");
puts(contact[i].AM);
printf("\n\nEl nombre del cliente es:\n");
puts(contact[i].nom);
printf("\n\nEl correo es:\n");
puts(contact[i].correo);
printf("\n\nEl sitio web es:\n");
puts(contact[i].sito_web);
printf("\n\nNota:\n");
puts(contact[i].notas);
printf("\n\nLa empresa es:\n");
puts(contact[i].empresa);
printf("\n\nEl puesto es:\n");
puts(contact[i].puesto);
//verificar datos
printf("\n\n\t\tIngrese:\n\n\t1)Si los datos son correctos.\n\t2)Si los datos son incorrectos.");
scanf("%d",&x);
system("cls");
}
if(x==1)
{
system("cls");
printf("\n\t\t\tCONTACTO ACTUALIZADO");
menu();
}
else
{
ActualizarC(i);
}
}
EliminarContacto()
{
int x,i,m,y;
long long int telefono;
printf("\n\n\t\t\tELIMINAR CONTACTO\n\n\n\n\n\n\n");
system("pause");
system("cls");
printf("\n\n\t\t\tCONTACTOS EXISTENTES\n\t");
printf("\tTELEFONO\t\tNOMBRE\n\t\t");
for(i=0;i<50;i++)
{
if(contact[i].activo==1)
{
printf("%lld",contact[i].tel);
printf("\t\t%s",contact[i].nom);
}
}
printf("\t\nINGRESE EL TELEFONO DEL CONTACTO A ELIMINAR\n\n");
scanf("%lld",&telefono);
fflush(stdin);
system("cls");
for(i=0;i<50;i++)
{
m=0;
if(telefono==contact[i].tel)
{
printf("\n\n\t\t\tCONTACTO ENCONTRADO\n\n\n\n\n\n\n");
system("pause");
system("cls");
printf("\n\nEL telefono:\n");
printf("%lld",contact[i].tel);
printf("\n\nEl Id del cliente es: %d\n",contact[i].Numero_registrado);
printf("\n\nEl apellido paterno es:\n");
puts(contact[i].AP);
printf("\n\nEl apellido materno es:\n");
puts(contact[i].AM);
printf("\n\nEl nombre del cliente es:\n");
puts(contact[i].nom);
printf("\n\nEl correo es:\n");
puts(contact[i].correo);
printf("\n\nEl sitio web es:\n");
puts(contact[i].sito_web);
printf("\n\nNota:\n");
puts(contact[i].notas);
printf("\n\nLa empresa es:\n");
puts(contact[i].empresa);
printf("\n\nEl puesto es:\n");
puts(contact[i].puesto);
system("pause");
system("cls");
printf("\nSeguro que desea eliminar este contacto?\n1)Seguro.\n2)No estoy seguro\n");
scanf("%d",&y);
if(y=1)
{
BorrarC(i);
break;
}
else
{
menu();
}
}
else
{
m=1;
}
}
if(m==1)
{
printf("\n\n\t\t\tTELEFONO NO ENCONTRADO\n\n\n\n\n\n\n");
system("pause");
system("cls");
menu();
}
}
BorrarC(int i)
{
printf("\n\n\t\t\tELIMINAR CLIENTE\n\n\n\n\n\n\n");
system("pause");
system("cls");
contact[i].activo=0;
printf("\n\n\t\t\tCLIENTE ELIMINADO\n\n\n\n\n\n\n");
system("pause");
system("cls");
menu();
}
En la opción 1, deberías incrementar el número de registros siempre, tanto si desea añadir más de un registro como si escoge no añadir más (porque al menos ha introducido uno).
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)