阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。[说明] 下面的词典类Dic实现了简单的英译汉功能。程序运行后的输出为“我是一个学生”。 [C++程序] #include <iostream.h> #include <string.h>

admin2009-02-15  27

问题 阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。[说明]
   下面的词典类Dic实现了简单的英译汉功能。程序运行后的输出为“我是一个学生”。
[C++程序]
#include <iostream.h>
#include <string.h>
#define Max 100
class Dic
{  int top;
    char words[Max] [12];
    char mean[Max] [20];
    public:
         Die(){top=0;}
         void add(char w[],char m[]){
              strcpy(words[top],w);
              strcpy(mean[top],m);
               (1);
         }
         void trans(char str[]) {
                 int i=0,j=0,k=0,s;
                 char w[12],h[200];
                 while(l) {
                   if(str! =’’&&str! =’\0’)
                         w[j++]=str;       //读取单词的一个字符,记录在w中
                   else {
                       w[j]=’\0’;
                       for(s=0;s < top;s++)
                           if(strcmp(words[s],w) (2) 0) break;
                       if(s<top)                   //找到了,翻译成对应的mean[s]
                       {  strcpy(w,mean[s]); j=(3);}
                       else                        //未找到,翻译成(unknown)
                       {  strcpy(w,"(unknown)"}; j=9; }
                       for(s=0;s<j;s++)
                            h[k++]=w[s];
                       if(str==’\0’) {  (4); break;}
                       j=0;
                    }
                    i++;
                 }
                 cout<<h<<endl;
         }
};
void main()
{   Dic obj;
    obj.add("I","我");
    obj.add("am","是");
    obj.add("student","学生");
    obj.add("a","一个");
    obj.trans("(5)");
}

选项

答案(1) top++ (2) = = (3) strlen(w) (4) h[k]=’\0’ (5) I am a student

解析 词典类Dic包括top(当前单词指针),words(英语单词库)mean(对应中文单词库)数据成员,以及一个构造函数、add()(添加单词)和trans(英汉翻译)成员函数。trans函数通过检索单词的方式将一段英语翻译成对应的汉语,其算法是:循环读取输入的英文串str,每遇到空格或者到达末尾时提取一个单词w;然后在词典中搜索w,若找到了,将w替换成对应的中文单词,否则用“(unkown)”替代;将w追加到结果串h末尾,若到达str末尾时退出循环并输出h。
(1)词典中添加一个单词,top应增1;
(2)此处for循环用于在词典英文单词中查找w,一旦匹配即刻退出该循环;
(3)下文需要将w追加到h末尾,因此需要获取w的长度并存放于j中;
(4)如果达到输入字符串的末尾,则翻译过程结束,应给结果串h添加结束符号;
(5)由程序输出易知。
转载请注明原文地址:https://kaotiyun.com/show/TojZ777K
0

最新回复(0)