因为这是翻译机,所以你应该准备一个英汉汉英互译词库,然后用C对这个词库进行操作,最直接的方法就是穷搜,这是很简单的,但是词库大了就会很慢。。。所以词库可以做一些调整,比如按字母序排列,或者加一些字母索引,这样查找就会快些。。。
如果你能把词库给我我就能写出来,如果词库自己做的话,就只能译几个词,其它的词可以自己加入词库。。。
推荐使用VC++,VC的调试功能很强大,一般能很快找出程序中的错误,效率很高。win-TC很垃圾,Bug太多,经常出现一些莫名其妙的错误,而且大部分都是编译器误报。
LCD显示器的驱动程序;有LCD初始化及其状态检测;模式检测中可以扫描KEY并决策在哪一个LCD上显示信息或者结束扫描
程序不完整阿
不知道你这样问的意思。不过看到分值挺诱人的,我也来说两句。
C语言翻译器。翻译器是早前的叫法,现在大都叫编译器。
以前条件比较艰苦,开发的时候,程序的编辑工具、编译工具、链接工具、调试环境等等这些统称为“工具链”的东东都是分开的(意思是说它们是不同的几个软件),说得通俗一点,就是写代码需要一个编辑软件,编译写好的代码,又需要用到别的软件,这样极其的不方便。
发展到现代,很多开发过程都集成到一个软件去了,就是说上面介绍的那些编写、编译、链接甚至是执行等等这些开发环节在一个集成开发软件当中都能完成。
所以,现在通常所说的编译,已经隐含地表示一个程序从预编译、编译、汇编、链接等等这么些过程了。
什么是编译(也就是你所问的翻译)?编译就是将人认识的高级一点的C语言翻译成机器认识的低级一点的机器码(就是二进制码,全是0和1)。翻译器呢,就是完成这个过程的一个软件啦。
这么说,你能不能理解?
速度采纳给分。
LZ 的那种方法 可以实现 ,但很显然是不实用,因为那样记录的也太多了吧,,,
我觉得,你可以记录下常用的特殊短语 像: hello China就可以了,因为很大一部分就是按照顺序翻译的,“有道”也经常出现这种问题的,以下是自己在用参考“有道”的时候的实现的一些想法,可以作为参考:
如果想智能点的话,你就得“教会”这个 【 英语和汉语 】这两门课 教的方法,就是把你会的东西全都教给他,比如说:
首先,你可以为每个单词定义一个struct数据结构,里面包含的是这个单词的 1. 【字义】(一个单词总不止一个意思吧)2.【词性】(你学习语法的时候要用到吧)3.【其他】(词组了什么的,有发音功能的话还得记录音标吧、、呵呵)
然后,要教它语法吧、、、这其实是最难的,语法就相当于你的算法了,程序的灵魂所在;
这也许就是C一直吸引着我们的地方,将抽象变为具体,呵呵、、祝你学习愉快、、、
写了一个简单的翻译器,只提供单词翻译,中文到英文,英文到中文都行,你需要首先进行字典录入。录入以后会自动在目录下生成一个dic.txt文件。
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define FILENAME "dic.txt"
struct word //字典结构体
{
char chinese[20]; //中文
char english[20]; //英文
};
/////////////////////////////////////////////////////////////
FILE *FP; //全局文件指针
FILE * FileOpen(char FileName[]) //文件打开函数
{
FILE *fp;
if((fp=fopen(FileName,"r"))==NULL)
{
fp=fopen(FileName,"w");
cout"文件打开失败重新创建记录文件";
return fp;
}
fp=fopen(FileName,"a+");
return fp;
}
void FileClose(FILE *fp) //文件关闭函数
{
if(fclose(fp)==0)
cout"安全关闭"endl;
else
cout"文件关闭失败"endl;
}
////////////////////////////////////////////////////////////////
void tra1() //中文翻译成英文模块
{
FILE *fp;
if((fp=fopen(FILENAME,"r"))==NULL)
{
printf("文件打开失败!");
}
char tempchinese[20];
word temp;
printf("请输入中文单词:");
scanf("%s",tempchinese);
while(fread(temp,sizeof(word),1,fp)==1)
{
if(strcmp(temp.chinese,tempchinese)==0)
{
printf("中文:%s 英文:%s \n",temp.chinese,temp.english);
}
}
printf("查找完毕!");
FileClose(fp);
}
//////////////////////////////////////////////
void tra2() //英文翻译成中文模块
{
FILE *fp;
if((fp=fopen(FILENAME,"r"))==NULL)
{
printf("文件打开失败!");
}
char tempenglish[20];
word temp;
printf("请输入英文单词:");
scanf("%s",tempenglish);
while(fread(temp,sizeof(word),1,fp)==1)
{
if(strcmp(temp.english,tempenglish)==0)
{
printf("中文:%s 英文:%s \n",temp.chinese,temp.english);
}
}
printf("查找完毕!");
FileClose(fp);
}
////////////////////////////////////////////////
void inp() //字典录入模块
{
FP=FileOpen(FILENAME);
word temp;
printf("请输入英文:");
scanf("%s",temp.english);
printf("请输入对应中文:");
scanf("%s",temp.chinese);
fwrite(temp,sizeof(temp),1,FP);
printf("信息添加完成");
FileClose(FP);
}
////////////////////////////////////////////////
int menu() //主目录模块
{
int choose;
while(choose!=0)
{
printf("\n");
printf("简易中英翻译系统\n");
printf("1、中-英翻译\n");
printf("2、英-中翻译\n");
printf("3、字典录入\n");
printf("输入0退出系统\n");
printf("请输入:");
scanf("%d",choose);
switch(choose)
{
case 0:return 0;break;
case 1:tra1();break;
case 2:tra2();break;
case 3:inp();break;
}
}
}
///////////////////////////////////////////////////////
void main()
{
menu();
}
本文链接:http://task.lmcjl.com/news/2024.html