Colección de citas famosas - Colección de poesías - Diseño de diccionario pequeño

Diseño de diccionario pequeño

/*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;

si (!palabra) devuelve

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.word[0] == 0) continuar;

if(strcmp(i.word, word)) continuar;

if(media) strcpy(media, I . media);

fclose(f

Devuelve p+1; p>fclose( f);

Devuelve 0;

}

void append (void)

{

Primer elemento; f = 0; fpos_t p = 0;

memset(&I,0,szITEM);

Printf("Ingrese una palabra:" ) ; scanf("%s ", I . palabra);

p = búsqueda (es decir, palabra, 0

if (p) {

Printf ("¡Esta palabra ha sido registrada en el diccionario! \ n ");

Regresar

}

Printf("Ingrese una definición, regrese; Fin del coche: ");

fflush(stdin);

gets(quiero decir);

f = fopen(fileDict, "ab");

fwrite(& I, szITEM, 1, f

fclose(f);

Printf("Entrada agregada\n ") ;

}

Borrado no válido (no válido)

{

Primer elemento; archivo * f = 0; fpos_t p = 0; >

memset(& I, 0, szITEM);

Printf("Ingrese una palabra:"); scanf("%s ", I . palabra);

p = lookup(es decir, palabra, 0);

if(p==0) {

Printf("No existe tal palabra en el diccionario ¡Registro! \n ");

Retorno;

}

p-;

memset(& I, 0, szITEM) ;<

/p>

f = fopen(fileDict, " r b+ ");

fset pos(f & amp;p;

fwrite(& amp;I, szITEM); , 1, f);

fclose(f);

Printf("Entrada eliminada\n "); Edición no válida (no válida)

{

Primer archivo * f = 0; fpos_t p = 0; );

Printf ("Ingrese una palabra:"); scanf ("%s ", I. palabra

p = búsqueda (es decir, palabra, 0);

if(p==0) {

Printf("¡No hay ningún registro de esta palabra en el diccionario!\n ");

Return

}

p-;

Printf("Ingrese una definición y presione Enter para finalizar (presione Enter para cancelar las modificaciones):"); >

fflush(stdin);

gets(quiero decir);

if(strstr str(es decir, "abortar"){

Printf( "¡Modificación cancelada! \ n ");

Return;

}

f = fopen(fileDict, " r b+ "); p>fset pos(f &p);

fwrite(&I,szITEM,1,f);

fclose(f);

Printf("Entrada guardada\n ");

}

Consulta no válida (nula)

{

Primer elemento fpos _; t p = 0;

memset(& amp;I, 0, szITEM);

Printf("Ingrese una palabra:"); scanf("%s ", I. palabra);

p = lookup(i.palabra, es decir);

if(p==0) {

Printf ("Hay ¡no hay registro de esta palabra en el diccionario! \ n ");

Retorno;

}

printf(" Entrada % s \ n interpretación % s " ,i.word,I.mean);

}

Conjunto no válido (no válido)

{

int cmd = 0;

Printf("El diccionario actual es %s, ¿necesita cambiarlo (seleccione Y o Y para cambiarlo)? ", fileDict);

cmd = getch();

if(cmd == 'y' || cmd == 'Y') {

Printf("Ingrese el nombre del archivo del diccionario (incluida la ruta):");

scanf("%s ", fileDict);

Printf("¡Se configuró 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 \

* * 0 -Configurar diccionario**\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 ';

Cambiar (cmd) {

Caso 0: set();

Caso 1: consulta(); p>

Caso 2: append(); romper;

Caso 3: editar();

Caso 4: borrar();

Valor predeterminado: Devuelve 0

}

}

Devuelve 0;