[ Foro de C ]
Al momento de presionar la opcion uno, despues la opcion 2 de modificar contacto y el 3 de eliminar contacto
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
struct AGENDA
{
long int Telefono;
char Ap[10];
char Am[10];
char Nombre[25];
char Email[25];
char SitioWeb[25];
char Notas[30];
char Empresa[30];
char Puesto[30];
}contactos[30];
FILE *u;
int U=0;
int ope=1;
void guardarUsuarios();
void leerUsuarios();
void consultarUsuarios();
void eliminarUsuarios(int ope);
int main(void)
{
int op=1,x,y,mes,dia,anyo,salida,a;
printf("\t\t\t\t U.A.N.L\n");
printf("\t\t\t\t F.C.F.M\n\n\n\n");
printf("\t\t\t PRODUCTO INTEGRADOR\n");
printf("\t\t\t\t PROGRAMACION I\n");
printf("\t\tMatricula\t AP\t AP\t Nom\n");
printf("\t\t1661748\t ALBA\t NAJERA\t JOSEPH OZIEL\n");
printf("\t\t1679626\t CABRIALES\t JIMENEZ\t HERNAN\n");
printf("\t\t1837485\t ESTRADA\t RIOS\t IRVING\n\n");
printf(" \n **** ***** ******* * * ***** **** * ***** ****** * * * ***** *** **");
printf(" \n * ** ** ** * * ** * ** *** ** ****** * * *** ** * *** **");
printf(" \n * ** ** ** * * ** * ** ** ** ** ** * * ** ** ** * *** **");
printf(" \n * **** ** * * ** * ** ** ** ** ** * * ** ** ** * *******");
printf(" \n *** **** ** * * ** * ** * * ** ** * * * * **** *******");
printf(" \n * ** ******* * * ** * ** ******* ** ** * * ******* ** * ***");
printf(" \n * ** ** ** * * ** * ** * * ** ** * * * * ** * ** ***");
printf(" \n * ** ** ** * * ** * ** * * ** ** * * * * ** * ** ***");
printf(" \n **** ***** ******* **** ** * **** * * ***** ** *** * * ** * *******");
do
{//20
do
{
printf("\n");
printf("\n\t\t\t\t\t Padron de CLIENTES :");
printf("\n\t\t1. Datos clientes");
printf("\n\t\t2. Reporte general de cada uno de los puntos anteriores");
printf("\n\t\t3. Salir");
printf("\n\t\tOpcion:");
if(op>3||op<1)printf("\n\t\t\tPor favor ingrese una opcion valida:");
scanf("%d",&op);
}
while(op>3||op<1);
switch(op)
{
case 1:
do
{
op=1;
do
{
system("cls");
printf("\n\t\tAdministracion de Clientes");
printf("\n\t\t1. Agregar Cliente");//cambiarlo
printf("\n\t\t2. Modificar Cliente");
printf("\n\t\t3. Eliminar Cliente");
printf("\n\t\t4. Regresar a administracion");
printf("\n\t\tOpcion:");
scanf("%d",&op);
salida=4;
if(op>salida||op<1)printf("\n\tPor favor ingrese una opcion valida:");
}while(op>4||op<1);
switch (op)
{
case 1:
do
{
system("cls");
//printf("\n\tIngrese una clave para el usuario: ");
//scanf("%d",&alu[A].clave); AQUI SE GENERARA SOLA UNA CLAVE
printf("\n\tIngrese el numero de telefono del cliente: ");
fflush(stdin);
scanf("%ld",&contactos[U].Telefono);
printf("\n\tIngrese apellido paterno del usuario: ");
fflush(stdin);
gets(contactos[U].Ap);
printf("\n\tIngrese apellido materno del usuario: ");
fflush(stdin);
gets(contactos[U].Am);
printf("\n\tIngrese nombre(s) del usuario: ");
fflush(stdin);
gets(contactos[U].Nombre);
printf("\n\tIngrese el email del usuario: ");
fflush(stdin);
gets(contactos[U].Email);
printf("\n\tIngrese el nombre del sitio web del usuario: ");
fflush(stdin);
gets(contactos[U].SitioWeb);
printf("\n\tIngrese notas sobre el usuario: ");
fflush(stdin);
gets(contactos[U].Notas);
printf("\n\tIngrese la empresa de trabajo del usuario: ");
fflush(stdin);
gets(contactos[U].Empresa);
printf("\n\tIngrese el puesto del usuario: ");
fflush(stdin);
gets(contactos[U].Puesto);
U++;
do
{
system("cls");
printf("\n\tDesea ingresar otro nombre de Usuario?");
printf("\n\t1. Si");
printf("\n\t2. No");
printf("\n\t\tOpcion: ");
scanf("%d",&op);
if(op>2||op<1)printf("\n\tPor favor ingrese una opcion valida:");
}while(op>2||op<1);
guardarUsuarios();
}while(op == 1);
break;
case 2:
do
{
op=2;
do
{
system("cls");
for(x=0;x<=U;x++)printf("\n\t\t%s.%s %s %s ",x+1,contactos[x].Ap,contactos[x].Am,contactos[x].Nombre);
printf("\n\t\tQue Ususario desea cambiar?");
printf("\n\t\tOpcion:");
scanf("%d",&ope);
ope--;
if(ope<1||ope>U)printf("\n\t\tPor favor ingrese una opcion valida:");
printf("\n\tIngrese el numero de telefono del cliente: ");
fflush(stdin);
scanf("%ld",&contactos[U].Telefono);
printf("\n\tIngrese apellido paterno del usuario: ");
fflush(stdin);
gets(contactos[U].Ap);
printf("\n\tIngrese apellido materno del usuario: ");
fflush(stdin);
gets(contactos[U].Am);
printf("\n\tIngrese nombre(s) del usuario: ");
fflush(stdin);
gets(contactos[U].Nombre);
printf("\n\tIngrese el email del usuario: ");
fflush(stdin);
gets(contactos[U].Email);
printf("\n\tIngrese el nombre del sitio web del usuario: ");
fflush(stdin);
gets(contactos[U].SitioWeb);
printf("\n\tIngrese notas sobre el usuario: ");
fflush(stdin);
gets(contactos[U].Notas);
printf("\n\tIngrese la empresa de trabajo del usuario: ");
fflush(stdin);
gets(contactos[U].Empresa);
printf("\n\tIngrese el puesto del usuario: ");
fflush(stdin);
gets(contactos[U].Puesto);
U++;
}while(ope<0||ope>U);
eliminarUsuarios(ope);
op=1;
do
{
system("cls");
printf("\n\tDesea modificar otro Usuario?");
printf("\n\t1. Si");
printf("\n\t2. No");
printf("\n\t\tOpcion:");
scanf("%d",&op);
if(op>2||op<1)printf("\n\tPor favor ingrese una opcion valida:");
}while(op>2||op<1);
guardarUsuarios();
}while(op==1);
break;
case 3:
do
{
//ope=1;
do
{
system("cls");
for(x=0;x<=U;x++)printf("\n\t\t%s.%s %s %s ",x+1,contactos[x].Ap,contactos[x].Am,contactos[x].Nombre);
printf("\n\t\tQue cuenta usuario eliminar?");
printf("\n\t\tOpcion:");
scanf("%d",&ope);
ope--;
if(ope<1||ope>U)printf("\n\t\tPor favor ingrese una opcion valida");
}while(ope<0||ope>U);
eliminarUsuarios(ope);
op=1;
do
{
system("cls");
printf("\n\tDesea eliminar otro Usuario?");
printf("\n\t1. Si");
printf("\n\t2. No");
printf("\n\t\tOpcion:");
scanf("%d",&op);
if(op>2||op<1)printf("\n\tPor favor ingrese una opcion valida:");
}while(op>2||op<1);
guardarUsuarios();
}while(op==1);
break;
case 4:
system("pause");
break;
}
}while(op!=salida);
break;
case 2:
do
{
op=1;
do
{
system ("cls");
printf("\n\t\t\t\tReporte general");
printf("\n\t\t1. De Usuarios");
printf("\n\t\t2. Regresar a administracion");
printf("\n\t\tOpcion:");
scanf("%d",&op);
salida=2;
if(op>2||op<1)printf("\n\t\tPor favor ingrese una opcion valida:");
}while(op>2||op<1);
switch(op)
{
case 1:
if(U==0)printf("\n\tNo existen usuarios aun");
else
consultarUsuarios();
break;
case 2:
system("pause");
break;
}
}while(op!=2);
break;
case 3:
getche();
break;
}
}while(op==1 || op==2);
fclose(u);
system("pause");
return 0;
}
void guardarUsuarios()
{
int i;
u=fopen("usuario_actuary.dat","a");
if(u==NULL)
{
printf("\n\t\tERROR al abrir el archivo");
exit(-1);
}
else
for(i=0;i<U;i++)fwrite(&contactos[i],sizeof(contactos[i]),1,u);
fclose(u);
}
void leerUsuario()
{
u=fopen("usuario_actuary.dat","rb");
if(u==NULL)
{
printf("\n\t\tERROR al abrir el archivo");
exit(-1);
}
while(fread(&contactos[U],sizeof(contactos[U]),1,u)!=0)U++;
}
void consultarUsuarios()
{
int i;
for(i=0;i<U;i++)
{
printf("\n\n\tTelefono: %ld Nombre: %s", contactos[i].Telefono, contactos[i].Nombre);
}
system("pause");
}
void eliminarUsuarios(int ope)
{
int i,j=0,opeaux;
struct AGENDA aux[50];
opeaux=ope;
char charErase[10]= {' ',' ',' ',' ',' ',' ',' ',' ',' ',' '};
for(i=0;i<U;i++)
{
if(i!=opeaux)
{
aux[j]=contactos[i];
j++;
}
}
U--;
for(i=0;i<U;i++)
{
contactos[i]=aux[i];
}
}
(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.)