Colección de citas famosas - Colección de consignas - Diseño de producción de diccionario

Diseño de producción de diccionario

/*Funciones básicas de la biblioteca*/

# 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)

{

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>

}