用C语言编写一个简单翻译程序

1.创建或获取一个英文单词或简单的英文句后,可以在屏幕上显示相应的中文翻译
2.用户可以采用命令行输入单词或句子,也可以采用文件输入
3.翻译结果可以存储到文件
4.可以中译英,也可以英译中
5.提供词汇表编辑功能
下面是一些参考代码,拜托大家帮忙了~!!!
/*下面是录入单词翻译小程序代码,文件stud.dat,实际上我当时是想遇到生词,翻译过后,用来记录自己学了多少单词的,不完全是用来翻译,不然就做成导入字典文件了,那我完全可以用翻译软件。*/

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

struct word
{
char e[100];
char c[100];
struct word *link;
};struct word stu[30];

struct word *load();
void print(struct word *phead);
int main(int argc, char* argv[])
{

char ch;
FILE *fp;

if((fp=fopen("stud.dat","a"))==NULL)
{
printf("can't open file stud.dat\n");
exit(1);
}

do
{
int i=0;
printf("输入英文:");gets(stu[i].e);
printf("输入中文:");gets(stu[i].c);
i++;
fwrite(&stu,sizeof(struct word)-4,1,fp);//减4是因为结构体中多一个struct word *link;

printf("是否续继输入字典库(y/n)?");
ch=getchar();
getchar();
}while (ch=='y'||ch=='Y');
fclose(fp); //以上可以用/*屏蔽,直接查看字典库

print(load());//函数嵌套,打印字典库
}

void print(struct word *phead) //链表的遍历
{

struct word *p;
p=phead;
while(p!=NULL)
{

printf("%s\t%s\n",p->e,p->c);
p=p->link;
}
}

struct word *load() //将输入的中英文翻译读取到链表中
{
struct word *head,*p,*q;
FILE *fp;
if((fp=fopen("stud.dat","rb"))==NULL)
{
printf("can't open file stud.dat\n");
getchar();
exit(1);
}

head=NULL;
q=(struct word *)malloc(sizeof(struct word));//给头结点申请空间

while(fread(q,sizeof(struct word)-4,1,fp)==1) //读一个单词翻译,放到结点q中
{
q->link=NULL; //刚读取的数据中没考虑link成员
if(head==NULL) //如果没有头结点,刚把刚读到的作为头结点
{
head=q; //把尾结点先给head
p=head; //p总是指向链表的尾结点
}
else
{
p->link=q; //把读到的数据结点q挂到当前链表的尾部
p=p->link; //p指向尾结点
}
q=(struct word *)malloc(sizeof(struct word)); //申请新结点,准备下次录入
}
free(q); //最后一次申请的结点没有读取到数据,释放掉
fclose(fp);
return (head);//函数返回头指针,以便别的函数调用
}

LZ 的那种方法 可以实现 ,但很显然是不实用,因为那样记录的也太多了吧,,,

我觉得,你可以记录下常用的特殊短语 像: hello China就可以了,因为很大一部分就是按照顺序翻译的,“有道”也经常出现这种问题的,以下是自己在用参考“有道”的时候的实现的一些想法,可以作为参考:

如果想智能点的话,你就得“教会”这个 【 英语和汉语 】这两门课 教的方法,就是把你会的东西全都教给他,比如说:

首先,你可以为每个单词定义一个struct数据结构,里面包含的是这个单词的 1. 【字义】(一个单词总不止一个意思吧)2.【词性】(你学习语法的时候要用到吧)3.【其他】(词组了什么的,有发音功能的话还得记录音标吧、、呵呵)

然后,要教它语法吧、、、这其实是最难的,语法就相当于你的算法了,程序的灵魂所在;

这也许就是C一直吸引着我们的地方,将抽象变为具体,呵呵、、祝你学习愉快、、、
温馨提示:答案为网友推荐,仅供参考
相似回答