⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 articlefile.cpp

📁 读取文本文件的
💻 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 + -