C语言中英翻译机

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告

学院、系:吉林大学珠海学院计算机科学与技术系专业名称:软件工程

课程设计科目C语言程序课程设计所在班级:7班

学生学号:********

学生姓名:***

指导教师:***

完成时间:2012年3月-5月

题目:C语言关键字中英翻译机

一、设计任务与目标

要求输入中文的名词和关键字,可以将其翻译成英语,如输入“基本整型”+回车,得到int;输入英文的单词int,则可以翻译成中文“基本整型”。若输入的不是关键字则要求继续输入,可以多次查询。输入bye时退出程序。目前,市场上各种翻译器都有这功能,编译这种功能的程序并不难,但要优化到市场欢迎,其功能多样性和词库大小就十分重要,而词库太过巨大或多或少会影响到计算机运行的速度,所以我的目标是在尽可能大的词库下通过简易的程序快速的运行出来结果。

本次上机实践所使用的平台和相关软件。

平台:Windows 2000

相关软件:VC6.0……

二、方案设计与论证

1.定义两个字符型二维数组用来存放中文关键字和英文关键字,中文和英文的

顺序要一一对应。

2.定义两个函数,函数yinghan()是用来实现英文关键字翻译成中文关键字

的功能,函数hanying()是用来实现中文关键字翻译成英文关键字的功能。

3.定义一个字符型数组用来存放要查询关键字的字符串。另外定义一个字符型

数组k用来确定是进入英汉词典还是进入汉英词典。

4.利用while(1)可以无限次查询关键字。

5.利用strcmp()函数和for循环等语句比较英文(汉字)关键字和词库中的

英文(汉字)关键字逐一比较来找出对应的释意。

6.若输入的关键字和已有的比较相同则输出对应的释意,若输入的关键字在词

库中

7.找不到的话,则输出“抱歉,输出查找不到该单词”,这时你可以选择再次

输入单词或者按“u+回车”返回主菜单。

8.用exit()函数实现输入“bye”时退出。

三、程序框图或流程图,程序清单与调用关系

a)主函数main()

函数实现功能:该函数功能是判断用户是进入英汉函数查找中文关键字还是进入汉英函数查找英文关键字以及通过strcmp语句实现返回主菜单和退出程序的功能。

参数意义:定义字符数组k[m]用来存放用户输入的内容e(进入英汉函数)或c (进入汉英函数)或u(返回上一级)或bye(退出程序)。而x[n][m]和y[n][m]这两个二维数组是用来做词库用的。

b)函数Yinghan()

函数实现功能:输入中文关键字就可以通过在词库中查找相应的英文释意,如果词库中无用户输入的中文关键词的释意的话则输出“查找不到该单词”,如果用户输入“u”的话,则会返回主菜单。

参数意义:x[n][m]和y[n][m]这两个二维数组是从主函数main调用的。而k[m]则是存放用户输入的中文关键字。

c)函数Hanying()

函数实现功能:输入英文关键字就可以通过在词库中查找相应的中文释意,如果词库中无用户输入的英文关键词的释意的话则输出“查找不到该单词”,如果用户输入“u”的话,则会返回主菜单。

参数意义:x[n][m]和y[n][m]这两个二维数组是从主函数main调用的。而k[m]则是存放用户输入的英文关键字。

四、全部源程序清单

#include

#include

#include

#define n 10

#define m 100

void yinghan(char x[n][m],char y[n][m]) //该函数的作用是:英汉词典

{

char k[m],k1[m]={"u"}; //字符数组k[m]的作用是:保存输入的单词

int i;

printf("如果要返回主菜单,输入u \n");

while(1)

{

while(1)

{

printf("请输入英语单词: ");

gets(k);

if(strcmp(k,k1)==0) break; //如果输入的单词为u则退出该循环

for(i=0;i

if(strcmp(k,x[i])==0) break; //如果数组x[n][m]中的一个单词与输入的单词相同时则退出循环

if(i>=n) printf("抱歉,查找不到该单词\n");

else printf("%s的意思为:%s \n",k,y[i]);

}

if(strcmp(k,k1)==0) break; //入输入的单词为u则退出该循环返回主菜单}

}

void hanying(char x[n][m],char y[n][m])//该函数的作用是:汉英词典

{

char k[m],k1[m]={"u"};

int i;

printf("如果要返回主菜单,输入u \n");

while(1)

{

while(1)

{

printf("请输入汉语: ");

gets(k);

if(strcmp(k,k1)==0) break;//如果输入的单词为u则退出该循环

for(i=0;i

if(strcmp(k,y[i])==0) break;//如果数组y[n][m]中的一个汉语词与输入的单词相同时则退出循环

if(i>=n) printf("抱歉,查找不到该单词\n");

else printf("%s的意思为:%s \n",k,x[i]);

}

if(strcmp(k,k1)==0) break;//入输入的单词为u则退出该循环返回主菜单}

}

void main()

{

char k[m];

char

x[n][m]={"auto","break","do","else","float","double","if","switch","register"," int"};

char y[n][m]={"自动","中断","循环体","否则","单精度","双精度","如果","开关","寄存器","整形"};

while(1)

{

printf("\t|*********************电子词典模拟软件*********************|\n");

printf("\t 1.先选择词典:输入字母e/c选择英汉还是汉英词典\n");

printf("\t 2.输入要查询的词,回车结束输入\n");

printf("\t 3.输入字母u返回主菜单,重新选择词典\n");

printf("\t 4.退出:主菜单下输入字母 bye 退出此此电子词典程序\n");

printf("\t|******************** All rights reserved******************|\n");

printf("输入字母e/c选择英汉还是汉英词典 \n");

gets(k);

if(strcmp(k,"e")==0) yinghan(x,y); //如果输入的字符数组等于e则执行英汉词典

else if(strcmp(k,"c")==0) hanying(x,y);//如果输入的字符数组等于c则执行汉英词典

else if(strcmp(k,"u")==0); //如果输入的字符数组等于u则返回主菜单

else if(strcmp(k,"bye")==0) break; //如果输入的字符数组等于bye则退出程序

}

}

相关文档
最新文档