用C++设计一个英汉字典类 Dictionary, 每个字典对象包含若干个词条Item 5

用类与对象的思想来设计一个英汉字典类Dictionary,每个字典对象包含若干个词条Item。Item类封装简单词条信息(英文单词及汉语解释)与相关操作。Dictiona... 用类与对象的思想来设计一个英汉字典类 Dictionary, 每个字典对象包含若干个词条Item。Item类封装简单词条信息(英文单词及汉语解释)与相关操作。
Dictionary类包含如下成员:存储词条的数组指针dic,当前字典存放的词条个数nCount字典所能存放的最大词条数量MaxCount。请完成这Dictionary类的定义,实现如下功能:
按英语单词查找词条char* FindEn(char* en)
向词典添加新词条 AddItem(Item & it)
将字典中的全部词条写入文件 writeFile( ofstream&);
Item类定义如下:
class Item
{
private:
char English[20]; //英文单词
char Chinese[100]; //中文解释
public:
Item( char* en="NULL", char* ch="空词条")
{
if(en) strcpy(English,en);
if(ch) strcpy(Chinese,ch);
}
void setEn( char* en)
{ if(en) strcpy(English,en); }
void setCh( char* ch)
{ if(ch) strcpy(Chinese,ch); }
char* getEn(){ return English; }
char* getCh(){ return Chinese;}
};
展开
 我来答
百度网友8ce788f
2017-01-23 · TA获得超过687个赞
知道小有建树答主
回答量:850
采纳率:80%
帮助的人:200万
展开全部
class CItem
{
public:
CItem(string& eng,string& ch);
CItem(){m_EngWord = ""; m_ChPra = "";}
string Eng(){return m_EngWord;}
string Ch() {return m_ChPra;}
private:
string m_EngWord;
string m_ChPra;
};
CItem::CItem(string& eng,string& ch)
:
m_EngWord(eng),
m_ChPra(ch)
{
}

class CDictionary
{
public:
CItem FindItem(string& word);
bool AddItem(string& eng,string& ch);
// bool Save2File(string& file);
void PrintAll();
private:
map<string,CItem> m_AllWord;
};

CItem CDictionary::FindItem(string& word)
{
if(m_AllWord.count(word) > 0)
return m_AllWord[word];
else
{
CItem temp;
return temp;
}
}
bool CDictionary::AddItem(string& eng,string& ch)
{
if(eng != "")
{
CItem temp(eng,ch);
m_AllWord[eng] = temp;
return true;
}
return false;
}
// bool CDictionary::Save2File(string& file)
// {
// return true;
// }
void CDictionary::PrintAll()
{
for(map<string,CItem>::iterator it = m_AllWord.begin();it != m_AllWord.end();++it)
{
cout<<"Word:"<<it->second.Eng()<<endl;
cout<<"Parap:"<<it->second.Ch()<<endl;
cout<<"\n";
}
}

int main()
{
CDictionary dic;
string eng = "zhazha";
string ch = "渣渣";
bool re = dic.AddItem(eng,ch);
CItem te = dic.FindItem(eng);
te = dic.FindItem(ch);
dic.PrintAll();
system("pause");
}
是这意思吗?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TableDI
2024-07-18 广告
仅需3步!不写公式自动完成Excel vlookup表格匹配!Excel在线免,vlookup工具,点击16步自动完成表格匹配,无需手写公式,免费使用!... 点击进入详情页
本回答由TableDI提供
匿名用户
2016-04-23
展开全部
学厨师哪家强
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式