Programación en lenguaje C, diseño de diccionario electrónico inglés-chino
# include ltconio.h gt
# include ltstdio.h gt
# include ltstdlib.h gt
# incluir ltstring.h gt
#definir szWORD 32
#definir szSTRN 224
# definir szITEM sizeof(struct TItem)
char fileDict[SZ strn];
elemento de estructura typedef{
char word[SZ word];
char mean[SZ strn];
}item;
fpos_t search (char *palabra, char *media)
{
Archivo * f = 0; ;
int r = 0; fpos _ t p = 0;
if (!word) devuelve 0
f = fopen(fileDict, " Rb "; );
Si (!f) devuelve 0;
Y (!feof(f)) {
fgetpos(f amp; p);
p>r = fread(amp;I,szITEM,1,f);
if(r lt;1) rompe el bit;
if(i.word [ 0] == 0) continuar;
if (strcmp (i.palabra, palabra)) continuar
if (media) strcpy (media, I. media); /p>
p>
fclose(f);
Devolver p 1;
}
fclose(f);
Devuelve 0 ;
}
void append (void)
{
Primer archivo * f = 0; ; fpos _ t p = 0;
memset(amp;I,0,szITEM);
Printf("Ingrese una palabra: "); . palabra);
p = búsqueda(es decir, palabra, 0);
If (p) {
Printf("Esta palabra ha sido registrada en el diccionario!\n ");
Return;
}
Printf("Ingrese una definición y presione Enter para finalizar: ");
fflush (stdin);
gets(I . quiero decir);
f = fopen(fileDict, "ab"); amp; 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; amp; I , 0, szITEM);
Printf ("Ingrese una palabra: "); scanf ("s ", I . palabra); palabra, 0 );
if(p==0)
{
Printf("¡No hay registro de esta palabra en el diccionario! \ n "
Return
}
p- ;
memset( amp; I, 0, szITEM);
f = fopen(fileDict, " r b "); pos(f amp; p);
fwrite( amp; I, szITEM, 1, f
fclose(f); ("La entrada ha sido eliminada\n ");
}
Edición no válida (no válida)
{
Primer elemento; file * f = 0; fpos _ t p = 0;
memset(amp;I,0,szITEM);
Printf("Ingrese una palabra: "); "s ",I . palabra) ;
p = búsqueda(es decir, palabra, 0);
if(p==0) {
Printf( "¡No hay registro de esta palabra en el diccionario!\n ");
Regresar;
}
p-;
Printf("Ingrese una definición y presione Enter End (presione Enter para cancelar las modificaciones): "); /p>
if(strstr str( Eso es "abort"){
Printf("¡Modificación abortada!\n ");
Return;
}
f = fopen(fileDict, " r b ");
fset pos(f amp; p);
fwrite( amp; I, szITEM, 1, f);
fclose(f);
Printf("Entrada guardada\n ");
}
Consulta no válida (nula)
{
El primer elemento; fpos _ t p = 0
memset( amp; I, 0, szITEM);
Printf("Ingrese una palabra: "); scanf("s ", I. palabra);
p = lookup(i.palabra, quiero decir); );
if(p==0 ) {
Printf("¡No hay registro de esta palabra en el diccionario! \ n "); Return;
}
printf (" Entrada s \ n interpretación s ", es decir, palabra, es decir
}
<); p>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("¡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 ¡Usa el mini diccionario! **\n\
* * * * * * * * * * * * * * * * * * * * * * \n \
* * 0-Establecer diccionario**\n\
* * 1-Términos de consulta**\n\
* * 2-Nueva entrada**\n\ p >
* * 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(); romper; >
p>
Valor predeterminado: devuelve 0;
}
}
Devuelve 0;
}