📄 articlefile.cpp
字号:
// Articlefile.cpp: implementation of the CArticlefile class.
//
//////////////////////////////////////////////////////////////////////
#include "..\headfile\Articlefile.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CArticlefile::CArticlefile()
{
totalWord = 0;
}
CArticlefile::~CArticlefile()
{
}
int CArticlefile::OpenFile(const string &filename)
{
ifstream file(filename.c_str());
int iSectionIndex = 0;
string str;
while (getline(file, str, '\n'))
{
if ("" == str)
{
continue;
}
CSection Section(str, iSectionIndex);
m_SectionList.push_back(Section);
iSectionIndex++;
totalWord += Section.GetTotalWord();
}
file.close();
return SUCCESS;
}
int CArticlefile::DisplayWord(void)
{
vector<CSection>::iterator secIterator;
map<string, int> A;
for (secIterator=m_SectionList.begin(); secIterator!=m_SectionList.end(); secIterator++)
{
secIterator->DisplayWord(A);
}
Print(A);
return SUCCESS;
}
int CArticlefile::FindWord(const string &wordname)
{
vector<CSection>::iterator secIterator;
int sum = 0;
for (secIterator=m_SectionList.begin(); secIterator!=m_SectionList.end(); secIterator++)
{
sum += secIterator->FindWord(wordname);
}
cout <<"共出现" << sum << "个" << wordname << endl << endl;
return SUCCESS;
}
int CArticlefile::Quit(void)
{
vector<CSection>::iterator secIterator;
for (secIterator=m_SectionList.begin(); secIterator!=m_SectionList.end(); secIterator++)
{
secIterator->Quit();
}
m_SectionList.clear();
return SUCCESS;
}
int CArticlefile::Help(void) const
{
cout << "OpenFile <输入文件名>" << endl;
cout << "DisplayWord 显示单词统计结果" << endl;
cout << "FindWord <查询的单词>" << endl;
cout << "Quit 退出" << endl << endl;
return SUCCESS;
}
int CArticlefile::Print(map<string, int> &A)
{
multimap<int, string> B;
map<string, int>::iterator itA;
multimap<int, string>::iterator itB;
for (itA=A.begin(); itA!=A.end(); itA++)
{
B.insert(pair<int, string>(itA->second, itA->first));
}
itB = B.end();
itB--;
for (; itB!=B.begin(); itB--)
{
cout << itB->second << "出现 "<< itB->first << "次 "
<< "出现频率" << (double)itB->first / totalWord << endl;
}
cout << itB->second << "出现 "<< itB->first << "次 "
<< "出现频率" << (double)itB->first / totalWord << endl;
cout << endl;
return SUCCESS;
}
int CArticlefile::DoWork(void)
{
string temp;
OpenFile("article.txt");
Help();
DisplayWord();
cout << "输入要查询的单词" << endl;
cin >> temp;
FindWord(temp);
Quit();
return SUCCESS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -