C语言中英翻译机_第1页
C语言中英翻译机_第2页
C语言中英翻译机_第3页
C语言中英翻译机_第4页
C语言中英翻译机_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学院、系:专业名称:课程设计科目所在班级:学生学号:学生姓名:指导教师:完成时间:2012年3月-5月课程设计报告吉林大学珠海学院计算机科学与技术系软件工程C语言程序课程设计7班04110704杨森凯曾志平题目:C语言关键字中英翻译机1、 设计任务与目标要求输入中文的名词和关键字,可以将其翻译成英语,如输入“基本整型”+回车,得到int;输入英文的单词int,则可以翻译成中文“基本整型”。若输入的不是关键字则要求继续输入,可以多次查询。输入bye时退出程序。目前,市场上各种翻译器都有这功能,编译这种功能的程序并不难,但要优化到市场欢迎,其功能多样性和词库大小就十分重要,而词库太过巨大或多或少会

2、影响到计算机运行的速度,所以我的目标是在尽可能大的词库下通过简易的程序快速的运行出来结果。本次上机实践所使用的平台和相关软件。平台:Windows2000相关软件:VC6.02、 方案设计与论证1 .定义两个字符型二维数组用来存放中文关键字和英文关键字,中文和英文的顺序要对应。2 .定义两个函数,函数yinghan()是用来实现英文关键字翻译成中文关键字的功能,函数hanying()是用来实现中文关键字翻译成英文关键字的功能。3 .定义一个字符型数组用来存放要查询关键字的字符串。另外定义一个字符型数组k用来确定是进入英汉词典还是进入汉英词典。4 .利用while(1)可以无限次查询关键字。5

3、.利用strcmp()函数和for循环等语句比较英文(汉字)关键字和词库中的英文(汉字)关键字逐一比较来找出对应的释意。6 .若输入的关键字和已有的比较相同则输出对应的释意,若输入的关键字在词库中7 .找不到的话,则输出“抱歉,输出查找不到该单词",这时你可以选择再次输入单词或者按“u+回车”返回主菜单。8 .用exit()函数实现输入“bye”时退出。3、 程序框图或流程图,程序清单与调用关系a)主函数main()函数实现功能:该函数功能是判断用户是进入英汉函数查找中文关键字还是进入汉英函数查找英文关键字以及通过strcmp语句实现返回主菜单和退出程序的功参数意义:定义字符数组km

4、用来存放用户输入的内容e(进入英汉函数)或c(进入汉英函数)或u(返回上一级)或bye(退出程序)。而xnm和ynm这两个二维数组是用来做词库用的。函数实现功能:输入中文关键字就可以通过在词库中查找相应的英文释意,如果词库中无用户输入的中文关键词的释意的话则输出“查找不到该单词”,如果用户输入“u”的话,则会返回主菜单。参数意义:xnm和ynm这两个二维数组是从主函数main调用的。而km则是存放用户输入的中文关键字。c)函数Hanying()函数实现功能:输入英文关键字就可以通过在词库中查找相应的中文释意,如果词库中无用户输入的英文关键词的释意的话则输出“查找不到该单词”,如果用户输入“u”

5、的话,则会返回主菜单。参数意义:xnm和ynm这两个二维数组是从主函数main调用的。而km则是存放用户输入的英文关键字。四、全部源程序清单#include<stdio.h>#include<string.h>#include<stdlib.h>#definen10#definem100voidyinghan(charxnm,charynm)/该函数的作用是:英汉词典charkm,k1m="u"字符数组km的作用是:保存输入的单词inti;printf("如果要返回主菜单,输入un");while(1)while(1)

6、printf("请输入英语单词:");gets(k);if(strcmp(k,k1)=0)break;/如果输入的单词为u则退出该循环for(i=0;i<n;i+)/通过一个循环来调用存储英语单词的数组xnm中的每个单词if(strcmp(k,xi)=0)break;/如果数组xnm中的一个单词与输入的单词相同时则退出循环if(i>=n)printf("抱歉,查找不到该单词n");elseprintf("%s的意思为:%sn",k,yi);if(strcmp(k,k1)=0)break;/入输入的单词为u则退出该循环返回主

7、菜单该函数的作用是:汉英词典un");voidhanying(charxnm,charynm)/charkm,k1m="u"inti;printf("如果要返回主菜单,输入while(1)while(1)printf("请输入汉语:");gets(k);if(strcmp(k,k1)=0)break;/如果输入的单词为u则退出该循环for(i=0;i<n;i+)/通过一个循环来调用存储汉语的数组ynm中的每个单词if(strcmp(k,yi)=0)break;/如果数组ynm中的一个汉语词与输入的单词相同时则退出循环if(i&g

8、t;=n)printf("抱歉,查找不到该单词n");elseprintf("%s的意思为:%sn",k,xi);if(strcmp(k,k1)=0)break;/入输入的单词为u则退出该循环返回主菜单voidmain()(charkm;charxnm="auto","break","do","else","float","double","if","switch","register&

9、quot;,"int"charynm="自动","中断","循环体","否则","单精度","双精度","如果","开关","寄存器","整形"rightswhile(1)*|n");printf("t1.printf("t2.printf("t3.printf("t4.先选择词典:输入字母e/c选择英汉还是汉英词典n"

10、;);输入要查询的词,回车结束输入n");输入字母u返回主菜单,重新选择词典n");退出:主菜单下输入字母bye退出此此电子词典程序n");printf("t|*电子词典模拟软件printf("t|*All|n");reserved*printf("输入字母e/c选择英汉还是汉英词典n");gets(k);if(strcmp(k,"e")=0)yinghan(x,y);/如果输入的字符数组等于e则执行英汉词典elseif(strcmp(k,"c")=0)hanying(x,y

11、);/如果输入的字符数组等于c则执行汉英词典elseif(strcmp(k,"u")=0);/如果输入的字符数组等于u则返回主菜单elseif(strcmp(k,"bye")=0)break;/如果输入的字符数组等于bye则退出程五、程序运行结果测试与分析1)进入程序后显示主菜单界面2)输入“e+回车”进入英汉词典,用来查找中文释意。3)输入“c+回车”进入汉英词典,用来查找英文释意。4)翻译break择祠典摄出此此电子词典程序请输外郑钳:月.四的苣思为:懵输入英语单词:3.输入字母u返回主菜单,j4.退出工主菜单下输入字母;MMXMlCiMMMMlfM

12、MiMKiMMJtJOfM自1I'lghtS状一-MMifMMiMEM:iMMU输入字母“c选择英汉还是汉英祠典e如果要返回主菜单,输入u请输入英语单词:intc:"F:c语言VC5*yPr(jjBct3关健字、Debug、关舞字.exe-;MiXMjMMjMWiMWiMltMltMMXXM:1f电子词典用3选择词典二输入字母"c选择英汉还是汉英词典办要查询对机上车结率新人m.输入字母返回主菜单,重新选择词典想退出;主菜单下输入字母bye也出此此电子词典程序:3frMiyMlWfl|JJyightSPg叁6:】*U£dMMTMMTMMTMWM3lH<

13、it;输入字母”c选择英汉还是汉英词典正果要返回主若单,输入u菌输入汉语二启动Q卦的意思为;auto请输入双语二否则否则的意思为;门”请输入汉语二QQPinyin半=5)按“u+回车”返回主菜单力;门亡语言¥匚6童井工口山匕七3关曜字”已1)11八关维字.exeZS3J>XKXKHMHHXMKMH>O(XHKMK电子词典模刁打件HKHXMHKMMIOCXHMMKMMMMH;选择词典嗡入字母”匚选择英汉江是汉英祠典久要查询露机回车结束输入i.2-3 .输入字母u返回主菜单,重新选择词典4 .退出:主菜单下输入字母h并摄出此此电子词典程序iHMKMKXMXMMMKMMXMXM

14、KMAllrightsI*eS后匕SMMHXMXMXXKXHMMXMX;输入字母“心选择英汉还是汉英词典加果要返回主菜单I输入”请输入英语单词:auto3t0的意思为:自动请输入英语单词:breakbpeak为意思为:中断请输入英语单词:-、.IHMKMKXMXMKMKMMXMXMKMK申孑词典模刁打件MMXMXMKMMXMXMKXKMMXMX;1 .比选择词典嗡入字母”选择英汉也是汉英词典2 寓人要查询的福,回车结束新人3 .输入字母u返回主菜单,重新选择祠典4 .退出:主菜单下输入字母h并显出此此电子词典程序XMMMMXKXMMMMMMXMMMMMAllrights1*匕5-14丁匕(1*

15、洞M*X*X*M函洞”MXX”:输入字母“心选择英汉还是汉英词典16)找不到关键字:输入词库中没有的关键字cC"F:c语言TVCCyProjectw关健字D后bug,关律字.ese"电子词典/拟软f,一选择词典啕入字母e/心选择英汉姓是汉英词典2.输入要查询战机胆车结束哥人1输入字母"输入字母u返回主菜单,重新选择伺典4.退出:主菜单下输入字母帕总盘出此此电子词典程序;KMXMK自HI'lhtS/巴写已.*廿七.MMMXMHitMKMMM”选择英汉还是汉英祠典菜词主单不单回语普返英杳英要入Xe如注罪请七词S.:该:按“bye+回车”退出程序,要在主菜单中退

16、出六、结论与心得A.发现问题和解决方法:a)在程序调试的过程中,一开始我并不是用二维数组存放词库,而是用一维数组,结果发现一维数组并不能很好的运行”在词库中找不到单词”这个语句,后来改用二维数组,不仅可以存放更多的单词以及解决了“找不到单词”这个语句。b)第二个困扰我的问题就是“按u返回主菜单这个语句",一开始这个功能是我在网上搜集资料时看到的,但要把这个功能加入我的函数就要进行改进了,因为我使用的是调用函数,所以我利用两个while语句,外围的while语句实现了返回主函数的功能,而回到主函数就回到了主界面。c)调试过程中还会出现一些零零总总的语法错误,这些语法错误是容易纠正的,就

17、像有时会漏掉“;”“/这些符号,按下F4找到错误就能很快解决解决!B.未完成的想法和目标:虽然编程完成了,当我觉得如果词库非常巨大的话,这样通过for循环一次次查找是十分浪费资源和时间的,所以我在网上查到数据结构中有索引功能,我觉得可以利用它,然后像课本中的英文单词一样,字母a为一组,b为一组,然后通过查找第一个字母,确定范围,然后再进行查找,可是由于网上查到的资料实在有限,现阶段是实现不了的了,所以,我的目标就是在将来能攻破这个难关,通过学习来强化自己的知识,解决这个问题。C.心得:课程设计是锻炼我们实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,在当今这个信息时代,拥有计算机开发实践能力十分重要。通过这次的课程设计,我对C语言这门课程又有了更深的了解。自从拿到题目到完成整个编程,从理论到实践,我觉得我学到很多很多的的东西,同时不仅巩固了以前所学过的知识,并且学习到了一些在书本上所没有的知识。我觉得这是一场理论和实践的相结合的实战,光有理论知识而没有实践动手能力是无法完成任务的,我们要从理论中得出结论,在实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论