Red de conocimiento informático - Conocimiento del nombre de dominio - Se necesita con urgencia el código fuente del programa en lenguaje C del sistema de gestión del censo;

Se necesita con urgencia el código fuente del programa en lenguaje C del sistema de gestión del censo;

/* ¡Simplemente agregue algunos campos en el siguiente programa, como el número de identificación! */

#include

#include

#include

#define szSTR 64

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

struct CONTACT {

char nombre[szSTR];/* nombre **

char unidad[szSTR];/* unidad de trabajo**

char tele[szSTR];/* telefonía*/

char correo[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 máscara)

{

if(máscara & BNAME) { printf(" Por favor ingrese el nombre del estudiante "); scanf("%BFULL 0xFF:"); scanf("%s", s->name); }

if(mask & BUNIT) { printf(" Ingrese el lugar de trabajo: "); scanf("% s", s->unit); }

if(mask & BTELE) { printf("Ingrese un número de teléfono de contacto: "); scanf ("%s", s->tele); }

if(mask & BMAIL) { printf("Ingrese un correo electrónico:");scanf("%s", s-> correo }

}/*end input*/

void show (int id, CON * s)

{

si(! s) retorno ;

if(id)

printf("%d \t%s\t%s\t%s\t%s\n",

id, s->nombre, s->unidad, s->tele, s->correo);

else

printf("nombre %s lugar de trabajo % s teléfono %s correo electrónico %s\n",

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

/*end if*/

}/*end show*/

void regist(void)

{

CON s; = 0;

entrada

ut(&s, BFULL);

f = fopen(fileDB, "ab");

fwrite(&s,sizeof(s),1,f); p>

fclose(f);

printf("¡Datos guardados!\n");

printf("¡Datos guardados! \n");

}/*end regist*/

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

{

ARCHIVO * f = 0; int i = 0, r = 0; CON t;

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

f = fopen(fileDB, "rb");

if(!f) {

printf("No hay ningún registro en la base de datos en este momento time\ n");

return 0;

}/*end if*/

printf("Número\t Nombre\t Unidad\t Teléfono \t Correo electrónico\n");

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

while(!feof(f)) {

fgetpos (f, &q);

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

if(r<1)break;

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

if(key) {

a = strstr(t.name , key);

b = strstr(t.tele , key);

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

}/*end if*/

if(p) *p = q;

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

i++;

show(i, &t);

}/*end while*/

fclose(f);

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

devolver i;

}/*finalizar navegación*/

consulta fpos_t(CON * s)

{

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

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

scanf(" %s ", clave);

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

return r?p:-1;

}/* finalizar consulta */

void clear(void)

{

ARCHIVO * f = 0; CON s;

fpos_t

p = consulta(&s);

if(p<0) return;

f = fopen(fileDB, "rb+");

fsetpos(f , &p);

memset(&s, 0, tamaño de(s));

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

fclose(f);

printf("¡Registro eliminado!\n");

}/*end clear*/

void modificar(void)

{

ARCHIVO * f = 0; CON s; int cmd = 0;

fpos_t p = consulta(&s);

if(p<.0) return;

f = fopen(fileDB, "rb+");

fsetpos(f, &p);

for( ;;) {

show(0, &s);

printf("Seleccione: 1-Nombre; 2-Organización de trabajo; 3-Teléfono; 4-Correo electrónico; 5- Guardar y salir; 6-Descartar cambios y salir\n");

scanf("%d", &cmd);

switch(cmd) {

caso 1:

caso 2:

caso 3:

caso 4:

entrada(&s, OPER[cmd]) ;

break;

caso 5:

fsetpos(f, &p);

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

caso 6:

fclose(f);

retorno;

predeterminado:

printf("Operación incorrecta, vuelva a escribir.\n");

}/*end case*/

}/*mext*/

}/*end clear*/

int main(void)

{

int cmd = 0; CON s;

para (;;) {

printf("¡Bienvenido a la libreta de direcciones! Elija: 1-Agregar; 2-Consultar; 3-Eliminar; 4-Modificar; 5-Salir\n");

scanf("%d", &cmd); /p>

switch(cmd) {

caso 0: devolver 0;

caso 1: regist().break;

caso 2: consulta(&s); break;

caso 3: clear(); break;

caso 4: modificar();

caso 5: navegar (0, 0, &s); descanso;

caso 5: navegar(0

, 0, &s). descanso;

}/fin de caso

}

devuelve 0;

}