[ Foro de C ]

Agenda no modifica los contactos

03-Jun-2020 21:38
Invitado (Eduardo)
0 Respuestas

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.)