Código fuente del sistema de gestión de inscripciones
# 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>
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: p >
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>}