Red de conocimiento informático - Consumibles informáticos - Buscamos una libreta de direcciones sencilla programada en lenguaje C con puntuaciones altas

Buscamos una libreta de direcciones sencilla programada en lenguaje C con puntuaciones altas

Esto tuyo no es sencillo, a mí me ha costado mucho esfuerzo. Compilado y aprobado bajo TC3.0.

#include

#include

#include

# define MaxLenthOfAddBook 50 //El número máximo de entradas permitidas en la libreta de direcciones

void DeleteRecord(void);

void AddItem(void);

void SearchRecord (void) ;

void ModifiyItem(void);

void PrintItemByIndex(unsigned int iIndex);

void DisplayAllItems(void);

typedef struct strAddBook

{

unsigned char Bandera; //Registrar información de estado

unsigned char Nombre[20];

unsigned char Agregar [20];

unsigned char ZipCode[6]; //Código postal

unsigned char Email[20];

unsigned char qq[ 12];

unsigned char MobilePhone[20];

}defAddBook;

typedef enum strItem{

Índice,

Nombre,

Agregar,

Código postal,

Correo electrónico,

qq,

Teléfono móvil ,

}defItem; // Elemento de la libreta de direcciones

unsigned int FindItem(defItem iType);

defAddBook MyAddBook[MaxLenthOfAddBook] //Definir matriz de la libreta de direcciones;

carácter sin firmar RunFlag;

///

///Delay

retraso nulo (iValue largo sin firmar)

{

unsigned int i;

while(iValue--)

{

for(i=0;i <30000; i++);

}

}

void main(void)

{

sin firmar char ch;

RunFlag = 1;

while (RunFlag)

{

//getchar();

clrscr(); //Borrar pantalla

printf("Libreta de direcciones\r\n");

printf("\

Seleccione una tarea:\ r\n\

[F] Mostrar todos los registros\r\n\

[A] Agregar un registro a la lista\r\n\

[ S] Buscar en lista\r\n\

[D] Eliminar una lista de formulario de registro\r\n\

[M] Modificar un elemento\r

\n\

[E] Salir\r\n");

printf("Por favor ingrese su elección:");

ch = 0;

ch = getche(); //Obtener el valor de entrada

if('a' <= ch && ch <= 'z') ch -= 32; Escribir switch

switch (ch)

{

case 'F':

DisplayAllItems();

romper;

caso 'A':

AddItem();

romper;

caso 'S':

SearchRecord();

romper;

caso 'D':

EliminarRecord();

romper;

caso 'M':

ModifiyItem();

descanso;

caso 'E':

RunFlag = 0;

ir a QuitLable;

romper;

valor predeterminado:

clrscr();

printf("Elección no reconocida\r\n");

break;

}

}

QuitLable:

clrscr();

printf("Salir de la libreta de direcciones.");

getchar();

}

///

///Mostrar todos los registros

void DisplayAllItems(void)

{

unsigned int i;

clrscr();

for(i=0;i

{

PrintItemByIndex(i);

//printf("\r\n");

}

printf("Este es el fin\r\n");

demora(100);

getch();

}

///

///Mostrar registros

void PrintItemByIndex(unsigned int iIndex)

{

unsigned int i;

if(iIndex >= MaxLenthOfAddBook){ //El índice no puede Se excede la longitud máxima de la matriz

printf("El índice está fuera de rango.\r\n");

getchar();

return ;

}

if(MyAddBook[iIndex].Flag > 0){ //Si no está vacío

printf("Índice: %d\r\ n", iIndex); //Imprimir número de serie

printf("Nombre: %s\r\n",MyA

ddBook[iIndex].Nombre); //Nombre

printf("DIRECCIÓN: %s\r\n",MyAddBook[iIndex].Agregar); p> printf("Código postal: %s\r\n",MiAddBook[iIndex].Código postal);

printf("Correo electrónico: %s\r\n",MiAddBook[iIndex].Correo electrónico) ;

printf("Número QQ: %s\r\n",MyAddBook[iIndex].qq);

printf("Teléfono móvil: %s\r\n" ,MyAddBook[iIndex].MobilePhone);

}

//printf("Imprimir sobre\r\n");

}

///

///Agregar registros

void AddItem(void)

{

int i, EmptyFlag = 0;

clrscr();

printf("Agregar un elemento a la lista.\r\n");

for (i = 0;i < MaxLenthOfAddBook;i++) //Buscar registros vacíos

{

if (MyAddBook[i].Flag > 0) continue //Si no está vacío, lo siguiente será; no se ejecutará Sentencia

MyAddBook[i].Flag = 1; //Marca este registro para usar

EmptyFlag = 1;

printf("Item %d está vacío .\r\n", i);

break; //Salir del bucle

}

if (EmptyFlag == 0)

{

printf("La lista está llena.\r\nPresione enter para continuar..."); //El registro está lleno

getchar ();

return ;

}

printf("Por favor, introduzca el nombre:\r\n");

scanf( "%s", MyAddBook [i].Name);

printf("Por favor, ingrese Agregar:\r\n");

scanf("%s", MyAddBook[ i].Add);

printf("Ingrese el código postal:\r\n");

scanf("%s", MyAddBook[i].ZipCode);

printf("Ingrese el correo electrónico:\r\n");

scanf("%s", MyAddBook[i].Email);

printf ("Ingrese qq: \r\n");

scanf("%s", MyAddBook[i].qq);

printf("Ingrese Teléfono móvil:\ r\n");

scanf("%s", MyAddBook[i].MobilePhone);

printf("Terminado, presione e

nter.\r\n");

PrintItemByIndex(i);

demora(100);

getch();

}

///

///Consulta

void SearchRecord(void)

{

elección de char unsigned;

unsigned int Temp;

defItem ch;

clrscr(); //Borrar pantalla

printf(" Elemento de búsqueda.\r\n");

printf("\

[1] Por índice\r\n\

[2] Por nombre \r\n\

[3] Por dirección\r\n\

[4] Por código postal\r\n\

[5] Por Correo electrónico\r\n\

[6] Por número QQ\r\n\

[7] Por número de teléfono móvil\r\n");

printf("Por favor seleccione una opción:");

elección = getch();

clrscr();

if (elección < '1 ' || elección > '7')

{ //Si la elección está fuera de rango

printf("Error en la elección.\r\nPresione Enter para continuar..." );

getchar(); //Esperar a que se presione la tecla

return; //Salir de la función

}

ch = elección - '1' ;

switch (ch) //Operación basada en selección

{

case Index:

printf(" Introduzca el índice: ");

scanf("%d",&Temp);

PrintItemByIndex(Temp);

delay(100);

getch();

break;

nombre del caso:

caso Agregar:

caso Código Postal:

caso Correo electrónico:

caso qq:

caso Teléfono móvil:

Temp = FindItem(ch);

if(Temp < MaxLenthOfAddBook ){

PrintItemByIndex(Temp); //Si el valor devuelto es correcto, imprímalo

}else{

printf(" No existe tal registro.\r\n ");

}

delay(100);

getch();

break ;

predeterminado: break;

}

}

///

///Encuentra el artículo y devolver el número de serie

unsigned int FindItem(defItem iType)

{

unsigned int i;

p>

int rtn; //Valor de retorno

unsigned char strTemp[20]; //Variable temporal para almacenar la cadena

printf("Ingrese el parámetro:" ) ;

scanf("%s",strTemp); //Ingrese los parámetros a encontrar

for(i = 0;i

{

if(MyAddBook[i].Flag == 0) continue; //Si el registro está vacío, la siguiente declaración no se ejecutará

switch(iType)

{

nombre del caso:

rtn = strcmp(strTemp,MyAddBook[i].Name //Compara dos cadenas

break ;

case Agregar:

rtn = strcmp(strTemp,MyAddBook[i].Add); //Compara dos cadenas

break;

case ZipCode:

rtn = strcmp(strTemp,MyAddBook[i].ZipCode); //Compara dos cadenas

break;

case Email:

rtn = strcmp(strTemp,MyAddBook[i].Email //Compara dos cadenas

break;

case qq:

rtn = strcmp(strTemp,MyAddBook[i].qq); //Compara dos cadenas

break;

case MobilePhone:

rtn = strcmp(strTemp,MyAddBook[i].MobilePhone); //Compara dos cadenas

break;

}

if(rtn == 0) return i; //Si las cadenas son iguales, devuelve i

}

return MaxLenthOfAddBook; //Si no se puede encontrar el valor máximo

}

///

///Eliminar

void DeleteRecord(void)

{

int iIndex = 0;

clrscr();

printf("Eliminar una libreta de direcciones del formulario de registro.\r\n");

printf( "Por favor, introduzca el index:");

scanf("%d",&iIndex);

clrscr();

if(iIndex < MaxLenthOfAddBook) {

MyAddBook[iIndex].Flag = 0; //La bandera está vacía

printf("Delete OK.\r\n");

} else{

printf("El índice está fuera de rango.\r\n");

}

printf("Presione cualquier tecla para continuar..

.");

getch();

}

///

///Modificar registro

void ModifiyItem(void)

{

unsigned int index,choice;

clrscr();

printf("Por favor ingrese el índice:");

scanf("%d",&index); //Ingrese el número de serie

if(index < MaxLenthOfAddBook){

printf ("Modificar elemento.\r\n");

printf("\

[1] Modificar nombre\r\n\

[ 2] Modificar dirección\r\n\

[3] Modificar código postal\r\n\

[4] Modificar correo electrónico\r\n\

[5 ] Modificar número QQ\r\n\

[6] Modificar número de teléfono móvil\r\n");

Choice = getch();

clrscr();

if (choice < '1' || Choice > '6')

{ //Si la elección está fuera de rango

printf( "Error en la elección.\r\nPresione Enter para continuar...");

delay(100);

getch() //Espera la clave.

return ; //Salir de la función

}

switch (elección - '0') //Operación basada en la selección

{

caso 1:

printf("Ingrese el nombre:\r\n");

scanf("%s", MyAddBook[index]. Nombre);

break;

caso 2:

printf("Ingrese Agregar:\r\n");

scanf("%s", MyAddBook[index].Add);

break;

caso 3:

printf("Ingrese el código postal:\r \n");

scanf("%s", MyAddBook[index].ZipCode);

break;

caso 4:

printf("Por favor, introduzca el correo electrónico:\r\n");

scanf("%s", MyAddBook[index].Email);

break;

caso 5:

printf("Ingrese qq:\r\n");

scanf("%s", MyAddBook[index].qq) ;

break;

caso 6:

printf("Ingrese teléfono móvil:\r\n");

scanf( "%s", MiAddBook[ índice

].MobilePhone);

descanso;

predeterminado: descanso;

}

}else{

printf("El índice está fuera de rango.\r\n");

demora(100);

getchar();

retorno; p>

}

printf("Terminado, presione enter.\r\n");

demora(100);

obtener( );

}