Cómo hacer un traductor usando lenguaje C
Escribí un traductor simple que solo proporciona traducción de palabras, ya sea del chino al inglés o del inglés al chino. Primero debes ingresarlo en el diccionario. Después de la entrada, se generará automáticamente un archivo dic.txt en el directorio.
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
# define NOMBRE DE ARCHIVO "dic.txt"
estructura palabra //Estructura del diccionario
{
char chino[20] //chino
< p; > char inglés[20]; //inglés};
//////////////////////// /////////////////////////////////////////
ARCHIVO *FP ; / /Puntero de archivo global
FILE * FileOpen(char FileName[]) //Función de apertura de archivo
{
FILE *fp;
if((fp=fopen(FileName,"r"))==NULL)
{
fp=fopen(FileName,"w");
cout<<"Error al abrir el archivo, vuelva a crear el archivo de registro";
return fp;
}
fp=fopen(FileName ,"a+") ;
return fp;
}
void FileClose(FILE *fp) //Función de cierre de archivos
{
if(fclose(fp)==0)
cout<<"Cierre seguro"< else cout<<" Error al cerrar el archivo"< } ////////////////////// ////// //////////////////////////////////////// void tra1() // módulo de chino a inglés { FILE *fp; if((fp=fopen(FILENAME,"r" ))==NULL) { printf("¡Error al abrir el archivo! "); } char tempchinese[20]; word temp; printf("Ingrese una palabra china: " ); scanf("%s",tempchinese); while(fread(&temp,sizeof(word),1,fp)==1) { if(strcmp(temp.chinese,tempchinese)==0) { printf("Chino: %s Inglés: % s \n",temp.chinese,temp.english); } } printf("¡Búsqueda completada!"); FileClose(fp); } /////////////////////////// /// /////////////////// vacío tra2() //Traducción del inglés al módulo chino { ARCHIVO *fp; if((fp=fopen(FILENAME,"r")) ==NULL) { printf("¡Error al abrir el archivo!"); } char tempenglish[20]; word temp; printf("Por favor, introduzca la palabra en inglés:"); scanf("%s",tempenglish); while(fread(&temp,sizeof(word),1,fp)==1) { if(strcmp(temp.english,tempenglish)==0 ) { printf("Chino: %s Inglés: %s \n",temp.chinese,temp.english); } p > } printf("¡Búsqueda completada!"); FileClose(fp); } / / ///////////////////////////////////////////////// void inp() //Módulo de entrada del diccionario { FP=FileOpen(FILENAME); word temp; p> printf("Ingrese inglés:"); scanf("%s",temp.english); printf("Ingrese el chino correspondiente:" ); scanf("%s",temp.chinese); fwrite(&temp,sizeof(temp),1,FP); printf("Información agregada completa"); FileClose(FP); } ///////////// ////// /////////////////////////////// int menu() // Módulo del directorio principal { int Choose; while(choose!=0) { printf("\n"); printf("Sistema de traducción simple chino-inglés\n"); printf("1. Traducción chino->inglés\n") ; printf ("2. Traducción inglés-chino\n"); printf("3. Entrada de diccionario\n"); printf( "Ingrese 0 para salir del sistema\n") ; printf("Por favor ingrese:"); scanf("%d",&choose); cambiar(elegir) { caso 0:return 0;break; caso 1:tra1();break; caso 2:tra2();romper; caso 3:inp();romper; } } } /// //////////////////////////////////////// /////////////// // void main() { menú(); }