Red de conocimiento del abogados - Respuesta jurídica de la empresa - Programación en lenguaje C, sistema de gestión de libreta de direcciones.

Programación en lenguaje C, sistema de gestión de libreta de direcciones.

/*Utilice lenguaje C para escribir un programa de gestión de directorio telefónico con funciones de inserción, modificación, eliminación, visualización y consulta de datos

1. Los datos incluyen: nombre, unidad de trabajo, teléfono. número y dirección de correo electrónico.

2. El nombre y el número de teléfono del registro se pueden modificar.

3. Se pueden agregar o eliminar registros.

4. Se pueden mostrar todos los registros guardados.

5. Puedes buscar por nombre o número de teléfono.

Otro: Implementado usando estructura de matriz y sistema de archivos.

La estructura incluye nombre, unidad de trabajo, número de teléfono y correo electrónico

¡Absolutamente original, recién completado y probado la tarde del 12 de julio de 2010, en lenguaje C puro! */

#include lt;stdio.hgt;

#include lt;stdlib.hgt;

#include lt;string.hgt;

#define szSTR 64

#define fileDB "c:\\contact.txt"

struct CONTACT {

nombre de char[szSTR]; /*Nombre*/

char unit[szSTR] /*Unidad de trabajo*/

char tele[szSTR];/*Número de teléfono*/

char mail[szSTR];/*mail*/

};

typedef struct CONTACT CON;

#define BNAME 1

# define BUNIT 2

#define BTELE 4

#define BMAIL 8

#define BFULL 0xFF

int OPER[5] = { BFULL, BNAME, BUNIT, BTELE, BMAIL};

void input(CON * s, int mask)

{

if(mask amp; BNAME ) { printf("Ingrese el nombre del estudiante:"); scanf("s", s-gt; nombre }

if(mask amp; BUNIT) { printf("Ingrese el trabajo unidad:" ); scanf("s", s-gt; unidad); }

if(mask amp; BTELE) { printf("Ingrese el número de contacto: "); scanf("s ", s- gt;tele); }

if(mask amp; BMAIL) { printf("Ingrese su correo electrónico: "); scanf("s", s-gt;mail); }

}/*end input*/

void show (int id, CON * s)

{

if(!s ) return;

if(id)

printf("d\ts\ts\ts\ts\n",

id, s-gt; nombre, s-gt; unidad, s-gt; tele, s-gt; correo

else

printf("Nombre s unidad de trabajo s correo electrónico s\n ",

s-gt; nombre, s-gt; unidad, s-gt; tele, s-gt; correo);

/*end if*/

}/*end show*/

registro nulo(void)

{

CON s; >

input(amp;s, BFULL);

f = fopen(fileDB, "ab");

fwrite(amp;

s, tamaño de(s), 1, f);

fclose(f);

printf("¡Datos guardados!\n"); /*end regist*/

int Browse(char * key, fpos_t * p, CON * s)

{

FILE * f =0; i = 0, r = 0;

char * a = 0, * b = 0; fpos_t q;

si (!s) devuelve 0; > p>

f = fopen(fileDB, "rb");

if(!f) {

printf("No hay registros en la base de datos\n");

p>

return 0;

}/*end if*/

printf("número\tnombre\tunit\tphone\temail\n");

printf("---------------------------------------- -------- --------\n");

while(!feof(f)) {

fgetpos(f, amp; q);

r = fread(amp;t, sizeof(t), 1, f);

if(rlt;1)break;

if(t.name[0] ==0) continuar;

if(key) {

a = strstr(t.name, key);

b = strstr(t.tele , clave);

if(a == 0 amp; amp; b == 0) continuar

}/*end if*/

if (p) *p = q;

if(s) memcpy(s, amp; t, sizeof(t));

show (i, amp; t);

}/*end while*/

fclose(f);

printf ("------ ------------------------------------------ \n");

return i;

}/*finalizar exploración*/

fpos_t query(CON * s)

{

char key[szSTR]=""; fpos_t p = 0; int r = 0;

printf("Ingrese su nombre o número de teléfono: "); p>

scanf("s ", clave);

r = navegar(clave, amp; p, s);

return r?p: -1;

}/* finalizar consulta*/

void clear(void)

{

ARCHIVO * f = 0; CON s;

fpos_t p = query(amp;s);

if(plt;0) return;

f = fopen(fileDB, "rb")

;

fsetpos(f, amp;p);

memset(amp;s, 0, sizeof(s));

fwrite(amp;s , sizeof(s), 1, f);

fclose(f);

printf("¡Registro eliminado!\n"); *end clear*/

void modificar(void)

{

ARCHIVO * f = 0; CON s;

fpos_t p = consulta(amp; s);

if(plt; 0) return

f = fopen(fileDB, "rb ");

fsetpos(f, amp; p);

for(;;) {

show(0, amp; s);

printf ( "Por favor seleccione: 1-nombre; 2-unidad de trabajo; 3-número de teléfono; 4-correo electrónico; 5-guardar y salir; 6-abandonar cambios y salir\n"); ", amp; cmd);

switch(cmd) {

caso 1:

caso 2:

caso 3:

caso 4:

input(amp; s, OPER[cmd]);

break

caso 5:

fsetpos(f, amp; p);

fwrite(amp; s, sizeof(s), 1, f

caso 6:

);

fclose(f);

return;

default:

printf("Operación incorrecta, vuelva a ingresar.\n"); /p>

}/*end case*/

}/*mext*/

}/*end clear*/

int main( void)

{

int cmd = 0; CON s;

for(;;) {

printf("Dirección de bienvenida libro! Seleccione: 1-Agregar; 2-Consultar; 3-Eliminar; 4-Modificar; 5-Salir\n");

scanf("d", amp; cmd

switch(cmd) {

caso 0: devolver 0;

caso 1: registrar(); caso 2: consulta(amp; s);

caso 3: borrar();

caso 4: modificar(); > caso 5: navegar(0, 0, amp; s);

}//finalizar caso

}

return 0; >

p>

}