统计文本中单词出现次数,打印出现次数最多的前10个.文本大小30KB~300KB

使用C++和MFC框架,通过文件流读取30KB~300KB文本,去除标点并统计单词出现次数,展示前10个最常见单词。程序界面采用Skin#美化,用户可以选择是否排除常见高频词汇。
摘要由CSDN通过智能技术生成

统计文本中单词出现次数,打印出现次数最多的前10个.文本大小30KB~300KB

一。编译环境

      1). 操作系统:Windows8.1

      2). IDE: VS2012

      3). 语言: C++,MFC框架

     另外....简单的用Skin#美化了一下界面皮肤 

二。基本思想

        使用文件流读取文件,去掉标点,空格用以分隔单词,每读取一个单词就存入map的key和value,若存在则将相应的key对应的value值(即该单词出现次数)加1。(注明:这里利用map操作时insert时相同的key不会被覆盖,但是利用下标访问表达式,map[key] =value;这样的调用是会被重写相应key的值的。这样做可以省去很多代码)

三。重要部分代码

     注释已经算很详细了吧,由于MFC框架的关系,就只贴出关键部分代码。

这里利用复选框来选择需不需要排除"am","is","are","i","you","he","she","and"...由于这些词太多,我也就选一些特别容易出现的作为代表。文件的选择利用文件对话框自行选择。

     以下为“检测”按钮点击事件:

void CStringCatcherDlg::OnBnClickedScan()
{
	//获得复选框的选中状态
	CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK);   //获取复选框指针
	int state = pBtn->GetCheck();                      //取得选中状态
	
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值