如何用C语言来制作翻译器

如何用C语言来制作翻译器,第1张

写了一个简单的翻译器,只提供单词翻译,中文英文,英文到中文都行,你需要首先进行字典录入。录入以后会自动在目录下生成一个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

0break

case

1:tra1()break

case

2:tra2()break

case

3:inp()break

}

}

}

///////////////////////////////////////////////////////

void

main()

{

menu()

}

每个C语言编译器都可以把C代码翻译成汇编代码

你查一下相关编译器的手册就知道了

不同的编译器所使用的参数也会不一样

例如GCC的编译器

用-O参数就可以输出汇编代码

亲,你好!我学软件也刚好一年,当时我也懊恼过这个问题,但没办法,计算机是外国人发明的。所以建议您不要懊恼,下载个有道词典很方便的,翻译也不会太杂。楼上说的观念我不赞同,编程跟英语的关系很大,若不懂英语,只会死记硬背编程里用的单词,不累死人吗!简单的BIOS菜单里面单词不认识,你会做系统吗!最重要的是,作为一个程序员,编程时定义变量命名一定要规范,写程序不仅仅是让你自己看懂,而是你写的代码让别人都能看懂,这才是专业程序员必备的。否则维护的时候怎么办?养成良好的习惯,用得多了就记住了,学好英语对自己帮助很大的。程序员写代码,要整齐美观,注释清晰,命名规范,让别人一眼就能看懂,才能被人赏识。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11215690.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存