用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;}
}; 展开
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;}
}; 展开
2个回答
展开全部
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");
}
是这意思吗?
{
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");
}
是这意思吗?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-04-23
展开全部
学厨师哪家强
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询