/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:电子词典
* 作 者:雷恒鑫
* 完成日期:2012 年06 月 02 日
* 版 本 号:V1.0
* 对任务及求解方法的描述部分
* 输入描述:。将文件中的内容读到对象数组中,由用户输入英文词。
* 问题描述:做一个简单的电子词典。在文件dictionary.txt 中,保存的是英汉对照的一个词典,词汇量近8000 个,
英文、中文释义与词性间用’\t’隔开。建一个表示词条的类Word,Word 类的一个对象可以描述一个词,
类对象数组可以存储词库。
* 程序输出:显示中文释义。
* 程序头部的注释结束
*/
#include<iostream>
#include<fstream>
#include<string>
#include<iomanip>
using namespace std;
int min(int a,int b);
class Word
{
public:
Word();
Word(string word,string word_meaning,string word_type);
void set_word(string word);
void set_word_meaning(string word_meaning);
void set_word_type(string word_type);
string get_word();
string get_word_meaning();
string get_word_type();
//friend ostream& operator << (ostream&,Word&); //重载流插入运算符“<<” ;*/
private:
string word;
string word_meaning;
string word_type;
};
void input_word(Word s[]);
Word search(string word,Word w1[]);
int main()
{
Word w1[8000],w2;
bool key=1;
string word;
input_word(w1);
while(key==1)
{
cout<<"请输入您要查找的单词:";
cin>>word;
w2=search(word,w1);
cout<<"您要查找单词的意思为:"<<w2.get_word_meaning()<<'\t'<<w2.get_word_type()<<endl<<endl;
cout<<"若想继续查词请按1,结束查词请按0000!";
cin>>key;
cout<<endl;
}
system("PAUSE");
return 0;
}
int min(int a,int b)
{
if(a>b)
a=b;
return a;
}
Word::Word()
{
word="unknow";
word_meaning="unknow";
word_type="unknow";
}
Word::Word(string word,string word_meaning,string word_type)
{
this->word=word;
this->word_meaning=word_meaning;
this->word_type=word_type;
}
void input_word(Word s[])
{
int i=0;
string word;
string word_meaning;
string word_type;
ifstream infile("dictionary.txt",ios::in);
if (!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for (i=0;i<8000;i++)
{
infile>>word;
s[i].set_word(word);
infile>>word_meaning;
s[i].set_word_meaning(word_meaning);
infile>>word_type;
s[i].set_word_type(word_type);
}
infile.close();
//cout<<endl;
}
void Word::set_word(string word)
{
this->word=word;
}
void Word::set_word_meaning(string word_meaning)
{
this->word_meaning=word_meaning;
}
void Word::set_word_type(string word_type)
{
this->word_type=word_type;
}
string Word::get_word()
{
return word;
}
string Word::get_word_meaning()
{
return word_meaning;
}
string Word::get_word_type()
{
return word_type;
}
Word search(string word,Word w1[])
{
Word w2;
int i=0;
int a=0,b=0,c;
w2.set_word(word);
string s1,s2,s3,s4;
int low=0,high=7962,mid;
s1=w1[low].get_word();
s2=w1[high].get_word();
s4=w2.get_word();
mid=(low+high)/2;
s3=w1[mid].get_word();
while(low<=high)
{
a=word.size();
b=s3.size();
c=min(a,b);
if(s3==word)
return w1[mid];
else if(s3>word)
{
high=mid-1;
}
else
{
low=mid+1;
}
mid=(low+high)/2;
s1=w1[low].get_word();
s2=w1[high].get_word();
s3=w1[mid].get_word();
}
cerr<<"很遗憾,查无此词!";
exit(1);
return w2;
}
运行结果:
分享到:
相关推荐
查询英语专业词汇最好的电子词典,一直在用,分享了
很好的英语词汇记忆,可以帮助你快速提高英语词汇量,让你的词汇量成倍增加
日语二级词汇--動詞---------------------------
英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。可用于简单的电子词典开发。(例:http://blog.csdn.net/sxhelijian/article/details/8036157)
1)在计算机中建立有限规模的电子英汉词典(文件),本词典采用一个包含N个数据的结构体数组,每个数据的结构应当包括:英文单词、词性、拼读音标、中文(汉语拼音)。 2)对单词和释义字符串长度的限定分别为不少于...
很好用的一个词汇量测试软件,小巧简约。可以定时测试自己的词汇量,使自己的词汇能按阶段循序渐进。进步就在眼前,每次都有成就感。希望大家都有一个很大的词汇量,学好英语!
-------------------日语二级词汇——形容词--------------------
第一:视频短片 第二:图像 第三:Dictionary 第四:Ebook 第五:Extra(该文件夹里主要就是你的音乐和下载的视频,还有一些运用软件等!都在这里的!) 第六:imgcache 第七:Music 第八:Playlists 以下两个是...
经过处理的腾讯中文词汇/短语向量 tencent-ailab-embedding-zh-d200-v0.2.0-s。包含使用方法和训练方法。
可供黑莓安装的贝贝词典。此词典的特点是查词便捷,词汇量大,可以更新词库。是适合学习用的一部词典。
软件工程综合实践课程设计-英语词汇量估算工具实验报告
第十六讲 对比记忆法 第十七讲 英语词汇逻辑记忆方法的综合运用 第十八讲 运用各学科知识强化记忆,扩展词汇量 (一) 第十九讲 运用各学科知识强化记忆, 扩展词汇量 (二) 第二十讲 运用各学科知识强化记忆, 扩展...
它将突出一个可能改善课堂第二语言学习教学法的方向。 通过前测和后测以及对学生的满意度调查表(目的抽样)收集数据。 调查结果显示,有15名学生的分数显着提高,达到100%的分数。 结论是,他们在学习活动中不断...
星火词汇周计划四级词汇.pdf
book3词汇复习检测题(unit1---unit4).pdfbook3词汇复习检测题(unit1---unit4).pdfbook3词汇复习检测题(unit1---unit4).pdfbook3词汇复习检测题(unit1---unit4).pdfbook3词汇复习检测题(unit1---unit4).pdfbook3词汇...
超全自考英语二词汇表-含音标4500-个单词.docx
电子学英语词汇,供电子爱好者学习参考。欢迎使用。
《IBM智能词典2000》整个词典包括48万英汉词条和39万汉英词条,其屏幕取词功能全面支持当前各种流行的浏览器、办公套件和其他各种应用程序,具有即指即译、智能查询、快速检索、词汇量大、界面友好以及使用方便、...
英汉电子词典软件是一个基于Python的项目,**旨在提供一个便捷的英语单词查询和翻译工具**。以下是该项目的介绍: 1. **词库丰富**:项目包含超过150万个英文单词和短语,以及对应的中文翻译,数据来源于多个权威...