Red de conocimiento informático - Aprendizaje de código fuente - Código fuente del sistema de gestión de inscripciones

Código fuente del sistema de gestión de inscripciones

/*¡Agregue más campos como números de identificación en el programa a continuación! */

# incluir ltstdio.h gt

# incluir ltstdlib.h gt

# incluir ltstring.h gt

#Definición szSTR 64

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

Estructura de contacto {

char nombre[sztr] /*nombre*/

Unidad de facturación; /*Unidad de trabajo*/

char tele[sztr] /*Teléfono*/

char mail[sztr];/* Correo electrónico* /

};

información de contacto de la estructura typedef;

#define BNAME 1

#define BUNIT 2

#Definición elemento 4

#Definición BMAIL 8

#Definición BFULL 0xFF

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

Entrada no válida (CON * s, int mask)

{

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

if (mask ampBUNIT) {printf("Ingrese la unidad de trabajo: ");scanf("s",s- gt ;unit);}

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

if (mask ampBMAIL) {printf("Ingrese su dirección de correo electrónico: "); scanf("s",s-gt;mail);}

}/*End input*/

Visualización no válida (id interno, control)

{

Si (!s) devuelve;

Si (id)

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

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

Otros

Printf("Nombre s unidad de trabajo s número de teléfono s correo electrónico s\n ",

s- gt; nombre, s - gt ;Unidad, s- gt; tele, s- gt; correo electrónico

/*end if*/

}/*End show*/

<); p> Registro no válido

{

contras; archivo * f = 0;

entrada (amperios, b completo); = fopen(fileDB, "ab");

fwrite( amp; s, tamaño de(s), 1,

fclose(f); p >Printf("¡Los datos han sido guardados! \ n ");

}/*Finalizar registro*/

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

{

Archivo * f = 0; int i = 0, r = 0;

char * a = 0, * b = 0;

t q;

Si (!s) devuelve 0;

f = fopen(fileDB, "Rb");

Si (!f) {

p>

Printf("No hay ningún registro en la base de datos\n ");

Devuelve 0;

}/*end if*/

printf( " número \ tname \ tnompany \ tnail \ n ");

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

fgetpos(f amp; q

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

); if(r lt; 1) posición rota;

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

if (clave){

a = strstr(t.nombre, clave);

b = strstr(t.tele, clave

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

} /*end if*/

if(p)* p = q;

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

i;

Display(iampt);

}/*Finalizar mientras*/

fclose(f) ;

printf("-\ n ");

Volver I;

}/*Finalizar navegación*/

consulta fpos_t (condición)

{

char key[sztr]= " "; fpos _ t p = 0; int r = 0

Printf("Por favor, ingrese; su nombre o número de teléfono: " );

scanf("s ", clave);

r = navegar(clave ampp, s);

Regresar r? p: -1;

}/*Finalizar consulta*/

Vacío borrar (vacío)

{

Archivo* f = 0; desventajas;

fpos _ TP = consulta(amp;s);

Si (p lt0) regresa;

f = fopen(fileDB, " r b ");

fset pos(f amp; p);

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

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

fclose(f);

Printf("¡Registro eliminado!\n "); >}/*Finalizar limpieza*/

Modificación no válida (no válida)

{

Archivo* f = 0; int cmd = 0 ;

p>

fpos_TP = consulta(amp;s);

si (p lt0) devuelve;

f = fopen(fileDB, " r b ");

fset pos(f amp;p);

for(;;) {

display(0 amp;s);

Printf(" Por favor seleccione: 1-Nombre; 2-Unidad de trabajo; 3-Teléfono; 4-E-mail; 5-Guardar y salir;

anf("d", ampcmd);

switch(cmd) {

Caso 1:

Caso 2:

Caso 3 :

Caso 4:

Entrada(ampUS,OPER[cmd]);

Pausa;

Caso 5:

p>

fset pos(f amp; p);

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

Caso 6:

fclose(f);

Regresar;

Valor predeterminado:

Printf("Operación de error, vuelva a ingresar.\n "

}/*Fin de caso*/

}/*mext*/

}/*Fin de limpieza*/

int main (void)

{

int cmd = 0; desventajas;

for(;;) {

Printf(" Bienvenido Utilice la libreta de direcciones. Elija: 1-Agregar; 2-Consultar; 4-Modificar 5-Salir\n ");

scanf("d " , ampcmd );

Cambiar (cmd) {

Caso 0: devolver 0;

Caso 1: registrar(); p> Caso 2: consulta (amps); break;

Caso 3: clear(); break;

Caso 4: modificar(); >Caso 5: Explorar (0, 0 & s);

}//Finalizar caso

}

Devuelve 0; p>}