Xiaocai quiere un sistema de gestión de números de teléfonos móviles en lenguaje C
#include lt; stdio.hgt; /*Definir funciones de entrada y salida*/
#include lt; stdlib.hgt /*Definir funciones diversas y funciones de asignación de memoria*/
#include lt; string.hgt; /*Procesamiento de cadenas*/
#include lt; /*conio es Entrada/Salida de consola (entrada y salida de consola) La abreviatura de , que define funciones para la entrada y salida de datos a través de la consola, principalmente operaciones correspondientes generadas por algunos usuarios al presionar el teclado, como la función getch (), etc.
*/
struct xi/*definir estructura*/
{
char xingbie[20] /*definir matriz de caracteres*/
char youxiang[20];
};
struct xin/*definir estructura*/
{
int shuzi; /*Definir variable entera*/
char xingming[20];
struct xi xinxi /*Llamar estructura struct xi*/
char dianhua[20; ];
char qunzu[20];
}pengyou[51]; /*Define la matriz de estructura, la 51 de las cuales está dedicada a modificar información para abrir memoria* /
ARCHIVO *fp; /*Definir puntero de tipo de archivo*/
int I=0 /*Definir variable global*/
void xiugaixinxi(int n; )/*Función de modificación de información*/
{
char ar;
printf("\n\t\t\t * * * * * * * * * * * * * * * * * ");
printf("\n\t\t\t * * * * * * * *Menú* * * * * * * * " );
printf("\n\t\t\t*\t\t\t\t *\n\t\t\t *\t * 1: Nombre\t\t * ");
printf("\n\t\t\t*\t\t\t\t *\n\t\t\t *\t * 2: Género\t\ t *");
printf("\n\t\t\t*\t\t\t\t *\n\t\t\t *\t * 3: Correo electrónico\t \ t *");
printf("\n\t\t\t*\t\t\t\t *\n\t\t\t *\t * 4: Teléfono\ t \t *");
printf("\n\t\t\t*\t\t\t\t *\n\t\t\t *\t * 5: grupo Grupo \t\t *");
printf("\n\t\t\t*\t\t\t\t *\n\t\t\t * * * * * * * * * * * * * * * * * *");
printf("\n\t\t\t * * * * * * * * * * * * * * * * * ");
printf("\n\t\t\tPor favor elija modificar el contenido 1-5: ");
ar=getche(); /*Ingrese un único Caracteres, obtiene caracteres de la consola inmediatamente después de la entrada, no termina con retorno de carro (con pantalla)*/
switch(ar)
{
char ch;
caso'1':
printf("\n\t\t\t* Nombre:
fflush(stdin) ; /*Borrar búfer de archivos*/
scanf("s"
, pengyou[50].xingming); /*Ingrese el nombre*/
strcpy(pengyou[n-1].xingming, pengyou[50].xingming /*Copiar nombre*/
break;
case'2':
fflush(stdin); /*Borrar el búfer de archivos*/
printf("\t); \t\t* Género: ");
scanf("s",pengyou[50].xinxi.xingbie); /*Ingrese género*/
strcpy(pengyou[ n-1].xinxi.xingbie, pengyou[50].xinxi.xingbie); /*Copiar género*/
break
case'3':
fflush(stdin); /*Borrar el búfer de archivos*/
printf("\t\t\t* Correo electrónico:
scanf("s"); , pengyou[50].xinxi.youxiang); /*Ingrese la dirección de correo electrónico*/
strcpy(pengyou[n-1].xinxi.youxiang, pengyou[50].xinxi.youxiang /*); Copiar dirección de correo electrónico*/
break;
case'4': fflush(stdin); /*Borrar búfer de archivo*/
printf("\ t); \t\t* Teléfono: ");
scanf("s", pengyou[50].dianhua); /*Ingrese el número de teléfono*/
strcpy(pengyou[ n -1].dianhua, pengyou[50].dianhua); /*Copiar llamada*/
break;
case'5': fflush(stdin); buffer*/
printf("\t\t\t* grupo: ");
scanf("s", pengyou[50].qunzu); */
strcpy(pengyou[n-1].qunzu, pengyou[50].qunzu); /*Copiar grupo*/
break
p>predeterminado:
{
printf("\n\n\t\t\tError, presione cualquier tecla para regresar al menú principal!");
ch=getche();/*Ingresa un solo carácter*/
break;/*Finalizar y volver al menú principal*/
}
}
}
void jisuanneicun()/*calcular función de memoria*/
{
int
long k;/*Definir variable entera larga*/
fp=
fopen("pengyou.txt", "r t"); /*Abrir un archivo de texto para lectura y escritura*/
if(fp!=NULL)/*Si la tarea de apertura no se puede realizar, el La función fopen traerá un mensaje de error. En este momento, la función fopen devolverá un valor de puntero nulo NULL (NULL se define como 0 en el archivo stdio.h) */
{
for(I=1 ; Ilt ;=50;I )
{
j=fgetc(fp);/*Leer un carácter del archivo especificado. El archivo debe abrirse en lectura o lectura. modo de escritura de*/
if(j==EOF)
return /*EOF=-1*/
k=I-1;
fseek(fp, k*sizeof(struct xin), SEEK_SET); /*fseek puede cambiar la posición del puntero del archivo.
SEEK_SET representa el comienzo del archivo*/
fread(amp; pengyou[k], sizeof(struct xin), 1, fp /*Lee un sizeof(struct xin) del archivo señalado. por fp longitud de los datos a amp;pengyou[k]*/
}
}
else
{
fp=fopen("pengyou.txt", "w"); /*Abrir un archivo de texto para salida*/
I=1
}
}
void xianshixinxi(int j)/*función de visualización*/
{
printf("\n\n\t\t \t Registro de memoria d", pengyou[j-1].shuzi);
printf("\n\t\t\t*************** *** *******************", pengyou[j-1].shuzi);
printf("\n\t\t\ t* Nombre :-20s\t*", pengyou[j-1].xingming);
printf("\n\t\t\t* Género:-20s\t*", pengyou [j- 1].xinxi.xingbie);
printf("\n\t\t\t* Correo electrónico: -20s\t*", pengyou[j-1].xinxi.youxiang) ;
p>printf("\n\t\t\t* Teléfono: -20s\t*", pengyou[j-1].dianhua);
printf( "\n\t \t\t* Grupo:-20s\t*", pengyou[j-1].qunzu);
printf("\n\t\t\t*** **********************************");
}
void shuruxinxi(int j) /*Función de entrada*/
{
pengyou[j].shuzi=j
printf("\ n\n\t\t\ tEl registro de memoria désimo", j 1);
printf("\n\t\t\t************** ********** ****************");
printf("\n\t\t\t* Nombre: " ); "\t\t\t* Género :"); fflush(stdin); /*Borrar el búfer de archivos*/
scanf("s", pengyou[j].xinxi.xingbie); *Ingresar género*/
printf("\t\t\t* Correo electrónico: "); fflush(stdin); /*Borrar el búfer de archivos*/
scanf(" s", pengyou[j].xinxi .youxiang);/*Ingrese la dirección de correo electrónico*/
> printf("\t\t\t* Teléfono: "); fflush(stdin); /*Borrar el búfer de archivos*/
scanf("s", pengyou[j].dianhua); /*Ingrese el número de teléfono*/
printf("\t\t\t* grupo: "); fflush(stdin); /*Borrar el búfer de archivos*/
scanf( "s", pengyou[j].qunzu); /*Grupo de entrada*/
}
void baocunxinxi(int I)/*Función de guardado*/ p>
{
int j;
fp=fopen("pengyou.txt", "w");
for(j=0 ; jlt; I; j )
{
fwrite(amp; pengyou[j], sizeof(struct xin), 1, fp); /*Ingrese los datos de la memoria al disco* /
}
}
char mima[10]="0802"; /*Definir contraseña*/
void main( )/*función principal*/
{
int c, flag, i, j, l, n, o, p; /p>
char chazhaoxingming[20];
char chazhaodianhua[20];
char chazhaoqunzu[20]
char kouling[20] ;
jisuanneicun();/*Llamar a la función jisuanneicun()*/
i=--I
system("cls " /*); C limpieza de pantalla única*/
do
{
p=0
n=3;
flag=0;
system("cls"); /*Borrado de pantalla específico de C*/
printf("\n\n\t\t \tBienvenido a sistema de gestión de contactos de teléfonos móviles");
printf("\n\t\t\t * * * * * * * * * * * * * * * * *");
printf("\n\t\t\t * * * * * * * *Menú* * * * * * * *");
printf("\n \t\t \t*\t\t\t\t *\n\t\t\t *\t * 1: Agregar\t\t *");
printf("\ n\t\ t\t*\t\t\t\t *\n\t\t\t *\t * 2: Leer\t\t *");
printf( "\n\t \t\t*\t\t\t\t *\n\t\t\t *\t * 3: Consulta\t\t
*");
printf("\n\t\t\t*\t\t\t\t *\n\t\t\t *\t * 4: Eliminar\t\ t *");
printf("\n\t\t\t*\t\t\t\t *\n\t\t\t *\t * 5: Modificar\t \t *");
printf("\n\t\t\t*\t\t\t\t *\n\t\t\t *\t * 6: Salir\ t\t *");
printf("\n\t\t\t*\t\t\t\t *\n\t\t\t * * * * * * * * * * * * * * * * * *");
printf("\n\t\t\t * * * * * * * * * * * * * * * * * " );
printf("\n\n\t\t\t***Hay d registros de memoria, seleccione 1-6: ",
ch); =getche();/*Ingrese un solo carácter y obtenga el carácter de la consola inmediatamente después de ingresarlo, sin terminar con un retorno de carro (con pantalla)*/
switch(ch)
{
caso '1': /*entrada*/
if(ilt; 50)
{
shuruxinxi( i );/*Llamar a shuruxinxi(int I)*/
i;
break;/*Terminar y volver al menú principal*/
}
else
{
printf("\n\t\t\tMemoria insuficiente, presione cualquier tecla para regresar al menú principal!"); /p>
ch=getche();/*Ingresa un solo carácter*/
break;/*Finalizar y volver al menú principal*/
} p>
case '2': /*Leer*/
if(i!=0)
{
for(j=1; jlt;=i;j) p>
xianshixinxi(j);/*Llamar a xianshixinxi()*/
printf("\n\t\t\tPresione cualquier tecla para regresar a el menú principal!");
ch=getche(); /*Ingrese un solo carácter*/
pausa; /*Finalizar y regresar al menú principal*/ p>
}
else
{
printf("\n\n\t\t\tSin registro, presione cualquier tecla para regresar a el menú principal!");
ch=getche (); /* Introduce un solo carácter */
break; /* Termina y regresa al menú principal */ p>
}
caso '3': /*Consulta */
> if(ilt; 1)
{
printf("\n\n\t\t\tSin registro, presione cualquier tecla para regresar al menú principal!");
p>ch=getche(); /*Ingresa un solo carácter*/
break; /*Finalizar y regresar al menú principal*/
}
else
printf("\n\t\t\t* * * * * * * * * * * * * * * * * * *");
printf( "\n\t\t\t * * * * * * * *Menú* * * * * * * *");
printf("\n\ t\t\t*\t \t\t\t *\n\t\t\t *\t * a: nombre\t\t *");
printf("\n \t\t\t*\ t\t\t\t *\n\t\t\t *\t * b:Teléfono\t\t *");
printf("\ n\t\t\t* \t\t\t\t *\n\t\t\t *\t * c:grupo\t\t *");
printf(" \n\t\t\ t*\t\t\t\t *\n\t\t\t * * * * * * * * * * * * * * * * * *");
printf(" \n\t\t\t* * * * * * * * * * * * * * * * * * *");
printf("\n\ t\t\tPor favor, introduzca a-c: "); /*Por favor, introduzca a-c*/
c=getche();
switch(c)
{
case 'a': /*Consulta por nombre*/
printf("\n\n\t\t\tPor favor ingrese su nombre: ");
fflush(stdin ); /*Borrar el búfer de archivos*/
gets(chazhaoxingming); /*Ingrese el nombre*/
for(j=0;jlt;i ;j)
{
if(strcmp(chazhaoxingming, pengyou[j].xingming)==0) /*Comparar*/
{ p>
p ;
xianshixinxi(j 1);/*Llamar a la función xianshixinxi()*/
}
}
printf("\ n\n\t\t\t***Hay d registros: ", p
descanso /*La terminación regresa*/
case 'b':/ *Buscar por número de teléfono*/
printf("\n\
n\t\t\tIngrese el número de teléfono: ");
fflush(stdin); /*Borrar el búfer de archivos*/
gets(chazhaodianhua);
for(j=0;jlt;i;j)
{
if(strcmp(chazhaodianhua, pengyou[j].dianhua)==0)/* Comparar */
{
p
xianshixinxi(j 1); /*Llamar a la función xianshixinxi()*/
}
}
printf("\n\n\t\t\t***Hay d registros: ", p
descanso; / *La terminación regresa*/
case 'c':
printf("\n\n\t\t\tPor favor ingrese el grupo: "
<); p> fflush(stdin); /*Borrar el búfer de archivos*/gets(chazhaoqunzu
for(j=0;jlt;i;j)
;{
if(strcmp (chazhaoqunzu, pengyou[j].qunzu)==0)/*Comparar*/
{
p;
xianshixinxi(j 1);/*Llamar a la función xianshixinxi()*/
}
}
printf("\n \n\t\t\t***Hay d registros: ", p);
descanso; /*Terminación devolución*/
predeterminado: descanso;
}
printf("\n\t\t\tPresione cualquier tecla para regresar al menú principal!";
ch=getche(); Ingrese un solo Caracteres*/
pausa /*terminar y regresar al menú principal*/
caso '4': /*eliminar*/
printf("\n\ n\t\t\tEliminar registro: ");
fflush(stdin); /*Borrar el búfer de archivos*/
scanf("d" , amperio; l) ;
if(lgt;i||llt;1)
{
printf("\n\n\t\t\tSin registro, presione cualquier tecla para regresar al menú principal!"
ch=getche() /*Ingrese un solo carácter*/<); /p >
break; /* Terminar y volver al menú principal*/
}
else
{
xianshixinxi(l);
printf("\n\n\t\t\t¡Tienes tres oportunidades!" /*Solo tienes tres oportunidades para ingresar la contraseña*/
do
{
printf("\n\t\t\tPor favor ingrese la contraseña: " /*Ingrese la contraseña*/
fflush( stdin); /*Borrar búfer de archivo*/
scanf("s", kouling) /*Entrada*/
if(!strcmp(kouling, mima))/* Verificación de contraseña*/
{
printf("\n\t\t\t¡La contraseña es correcta!\n" /*Verificación de contraseña aprobada*/
bandera= 1;/*marca*/
for(j=l;jlt;i;j)
{
strcpy(pengyou[j -1]. xingming, pengyou[j].xingming); /*Copiar nombre*/
strcpy(pengyou[j-1].xinxi.xingbie, pengyou[j].xinxi.xingbie); /*Copiar género */
strcpy(pengyou[j-1].xinxi.youxiang, pengyou[j].xinxi.youxiang) /*Copiar dirección de correo electrónico*/
strcpy(pengyou[ j-1].dianhua, pengyou[j].dianhua); /*Copiar número de teléfono*/
strcpy(pengyou[j-1].qunzu, pengyou[j].qunzu); ); /*Copiar grupo*/
}
i--;
printf("\t\t\tEliminar correctamente, presione cualquier tecla para regresar al menú principal!" );
ch=getche(); /*Ingrese un solo carácter*/
break; /* Terminar y regresar al menú principal*/
}
else
{
printf("\n\ t\t \t¡Aún tienes d oportunidades!: ", n-1); /*Contraseña incorrecta, vuelve a ingresar*/
n--;
}
}
while(ngt;0);
if(!flag)
{
printf("\ n\ t\t\tContraseña incorrecta, presione cualquier tecla para regresar al menú principal!");
ch=getche(); /*Ingrese un solo carácter*/
break; /*Terminación Regresar al menú principal*/
}
break /* Terminar y regresar al menú principal*/
} p>
break;
case '5': /*Modificar*/
printf("\n\n\t\t\tModificar registro:");
fflush(stdin ); /*Borrar el búfer de archivos*/
scanf("d",amp;o);
if(ogt;i| |olt;1)
{
printf("\n\n\t\t\t¡Sin registro, presione cualquier tecla para regresar al menú principal!"); p>
ch=getche(); /*Ingresa un solo carácter*/
break; /*Finalizar y regresar al menú principal*/
}
else
{ p>
xianshixinxi(o);
printf("\n\n\t\t\t¡Tienes tres oportunidades!" ); /*Solo tienes tres oportunidades para ingresar la contraseña*/ p>
do
{
printf("\n\t\t\tPor favor ingresa su contraseña: "); /*Ingrese su contraseña*/
fflush(stdin);/*Borrar el búfer de archivos*/
scanf("s", kouling);/ *Entrada*/
if(!strcmp(kouling, mima))/*Realizar verificación de contraseña*/
{
printf("\n\t \t\t¡La contraseña es correcta!\n"); /*Verificación de contraseña aprobada* /
flag=1; /*flag*/
xiugaixinxi(o); p>
printf("\t\t\tModificación exitosa, presione cualquier tecla para regresar al menú principal!"
ch=getche() /*Ingrese un solo carácter*/
<); p> break ; /* Terminar y regresar al menú principal */}
else
{
printf("\ n\t\t\ t¡Aún tienes d oportunidades!: ",n-1);/*Contraseña incorrecta, vuelve a ingresar*/
n--;
}
}
while(ngt; 0);
if(!flag)
{
printf( "\n\t \t\tContraseña incorrecta, presione cualquier tecla para regresar al menú principal!");
ch=getche() /*Ingrese un solo carácter*/
<; p> break; /*Terminar y regresar al menú principal*/}
break /* Terminar y regresar al menú principal*/
}
break;
case '6': /*Salir del sistema*/
printf("\n\n\t\t\t¿Guardar en el archivo? ");/*¿Devolver? */
printf("\n\n\t\t\tNota:\n\n\t\t\tPresione la tecla y para guardar en el archivo; de lo contrario, no se guardará.\n\ t\ t\t");
ch=getche(); /*Ingresa un solo carácter*/
if(ch=='y')
{
baocunxinxi(i); /*Guardar*/
exit(0); /*Cerrar todos los archivos y finalizar el programa en ejecución*/
break ;
}
else
{
exit(0);/*Cerrar todos los archivos y finalizar el programa en ejecución* /
romper;
}
predeterminado: romper
}
}mientras(1);
}