Diseño de producción de diccionario
# include & ltconio.h & gt
# include & ltstdio.h & gt
# include & ltstdlib.h & gt
# include & ltstring.h & gt
#define szWORD 32
#define szSTRN 224
# define szITEM sizeof (struct TItem)
char fileDict[SZ strn];
elemento de estructura typedef{
char word[SZ word];
char media【SZ strn】;
}item;
fpos_t búsqueda (char *palabra, char *media)
{
archivo* f = 0; primer elemento;
int r = 0; fpos_t p = 0;
if (!palabra)
f = fopen(fileDict, "Rb");
si (!f) devuelve 0
mientras (!feof(f))
fgetpos( f & amp; p);
r = fread (& amp; I, szITEM, 1, f
if (r & lt; 1) rompe la posición; /p >
if (I. palabra [0] == 0) continuar;
if (strcmp (I. palabra, palabra)) continuar
if (media); ) strcpy (Valor medio, es decir, valor medio);
fclose(f);
Devuelve p+1;
}
fclose(f) ;
Devuelve 0;
}
Anexo no válido (no válido)
{
Primer elemento; f = 0; fpos_t p = 0;
memset(&I, 0, SZ item);
Printf("Por favor, ingrese una palabra: "); scanf ("% s", I. palabra);
p = búsqueda (I. palabra, 0);
if (p) {
Printf ("¡Esta palabra ha sido registrada en el diccionario!\n");
Return;
}
Printf("Por favor ingrese la definición y presione enter Fin: ");
fflush(stdin);
gets(I. media);
f = fopen(fileDict, "ab");
fwrite(&I,szITEM,1,f);
fclose ( f);
Printf("Entrada agregada\n");
}
Borrado no válido (anulado)
{ p>
Primer elemento; f = 0; fpos_t p = 0;
memset(& I, 0, SZ item); palabra: "); scanf ("% s", I. palabra);
p = búsqueda (I.
palabra, 0);
if (p == 0) {
Printf ("¡No hay ningún registro de esta palabra en el diccionario! \ n ");
return;
}
p-;
memset(&I,0,elemento SZ);
f = fopen (fileDict, "r b+");
fset pos(f&p);
fwrite(&I,szITEM,1,f);
fclose(f);
Printf("Entrada eliminada\n");
}
Edición no válida (no válida)
{
Primer elemento; archivo * f = 0 fpos_t p = 0
memset(&I,0,SZ elemento);
p><; p>Printf ("Ingrese una palabra: "); scanf ("% s", I. palabra);p = búsqueda (I. palabra, 0). if(p==0){
Printf("¡No existe ningún registro de esta palabra en el diccionario!\n");
Return;
}
p-;
Printf ("Ingrese la definición y presione Enter para finalizar (presione Enter para cancelar para abandonar la modificación):
fflush". (stdin) ;
gets(Es decir);
if(strstr(es decir, "abortar"))
Printf("¡Modificación abortada!\n ");
Retorno;
}
f = fopen(fileDict, "r b+");
fset pos(f & amp; p);
fwrite(&I,szITEM,1,f);
fclose(f);
Printf("Entrada guardada \ n");
}
Consulta no válida (no válida)
{
Primer elemento; fpos_t p = 0;
p>memset (& I, 0, elemento SZ);
Printf ("Ingrese una palabra: "); scanf ("% s", I. palabra
);p = Buscar (i.palabra, I.significa);
if (p = = 0) {
Printf ("Esta palabra no está en el diccionario ¡Registro! \n ");
Retorno;
}
Printf("Entrada %s\nExplicación %s", i.word, I.
media);
}
Conjunto no válido (no válido)
{
int cmd = 0;
Printf("El diccionario actual es %s, ¿necesita cambiarlo (seleccione Y o Y para cambiar)?", fileDict
cmd = getch()
if(cmd = ='Y'| | cmd = ='Y'){
Printf("Ingrese el nombre del archivo del diccionario (incluida la ruta):");
scanf ("% s ", fileDict);
Printf ("¡Configurado correctamente!\n "); int main(int argc, char * argv【】)
{
int cmd = 0
if (argc & gt; 1)
strcpy(fileDict, argv[1]);
Otro
strcpy(fileDict, "c:\\dict.txt");
/*end if*/
for(;;) {
printf("\n \
********** **** *******\n\
* *Bienvenido al Mini Diccionario **\n\
*********** ******* *******\n\
** Diccionario de 0 episodios**\n\
* * 1-Término de consulta** \n\
* * 2-Nueva entrada**\n\
* * 3-Editar entrada**\n\
* * 4- Eliminar entrada**\n\
* * 5-Salir del diccionario**\n\
* * * * * * * * * * * * * * * * * * * * * \n");
cmd = getch()-"0";
switch(command){
Caso 0: set() ; romper;
Caso 1: consulta(); romper;
Caso 2: append(); ;
Caso 4: borrar(); romper
Valor predeterminado: devolver
}
}
Devuelve 0;
p>
}