Se necesita con urgencia el código fuente del programa en lenguaje C del sistema de gestión del censo;
#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> p>
fclose(f);
printf("¡Datos guardados!\n");
printf("¡Datos guardados! \n"); p>
}/*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*/ p>
if(p) *p = q;
if(s) memcpy(s, &t, sizeof(t));
i++;
show(i, &t);
}/*end while*/
fclose(f);
printf("---- --- ----------------------------------------\n"); p>
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;
}