coding.net地址:https://coding.net/u/Boxer_

ssh:git@git.coding.net:Boxer_/homework.git

--------------------------------------------------------------------------------------

9.6更新了一下,按老师要求把程序分块发表了,git版本控制内容比较多,正在学(2016.9.9已学)。

--------------------------------------------------------------------------------------

需求:从一个英文txt中读取内容,实现词频统计。

现完成:基本功能大概完成了,由于编程基础比较差,文件操作部分还不是很熟练,我发现从文件中提取字符串流读取到程序的string对象中,会把所有的空格过滤掉,导致没法统计单词频率,目前还没找到解决方法,只能先手动输入文章了。ORZ...

好好学习java,目前看来,处理字符串等问题还是java有成熟的解决方案。

1.建立一个word类,包含str和count两个属性,分别代表word的内容和个数。包含一个exchange方法,用来交换两个word的内容。

class Word
{
public:
Word() : Str(""), Count()
{}
string Str;
int Count;
void exchange(Word &word)
{
string tStr = word.Str;
int tCount = word.Count;
word.Str = Str;
word.Count = Count;
Str = tStr;
Count = tCount;
}
};

2.用来统计单词的个数。

void CalcCount(Word * words, string &newWord, int size)
{
int i = ;
for(; i < size; i++)
{
if(words[i].Str == newWord)
{
words[i].Count++;
return;
}
else if(words[i].Str == "")
break;
}
words[i].Str = newWord;
words[i].Count = ;
}

3.用来进行单词排序,采用冒泡算法。

void SortWordDown(Word * words, int size)
{
for(int i = ; i < size; i++)
{
for(int j = ; j < size-; j++)
{
if(words[j].Count < words[j+].Count)
{
words[j].exchange(words[j+]);
}
}
}
}

4.主函数

int main()
{
Word * words;
string content;
cout << "输入一段英文:";
getline(cin, content); //计算单词总数
int wCount = ;
for(unsigned int i = ; i < content.length(); i++)
{
if(content[i] == ' ')
wCount++;
}
words = new Word[wCount]; string::size_type offset = content.find(' ');//单词都是以空格隔开
while(offset != string::npos)
{
string wStr = content.substr(, offset);
content.erase(, offset+);
CalcCount(words, wStr, wCount);
offset = content.find(' ');
}
CalcCount(words, content, wCount);//计算最后一个单词 SortWordDown(words, wCount);
int printCount = wCount ; for(int i = ; i < printCount; i++)
{
cout << words[i].Str << "\t" << words[i].Count << endl;
} delete [] words;
return ;
}

【第一周】c++实现词频统计的更多相关文章

  1. 【第一周】第一周工作统计(psp)

    项目:词频统计 项目类型:个人项目 项目完成情况:已完成 项目改进:未变更 项目日期:2016.9.3-2016.9.4 3号 类别c 内容c 开始时间s 结束e 中断I 净时间T 项目实践 构思   ...

  2. 【第二周】Java实现英语文章词频统计(改进1)

    本周根据杨老师的spec对英语文章词频统计进行了改进 1.需求分析: 对英文文章中的英文单词进行词频统计并按照有大到小的顺序输出, 2.算法思想: (1)构建一个类用于存放英文单词及其出现的次数 cl ...

  3. C# 词频统计 东北师范大学 软件项目管理 第一次作业

    一.作为杨老师的学生第一次听杨老师讲课,印象最深的就是:工程中所有步骤之间是乘法,如果任何一步为0,工程就做不出来了.以前所有老师讲到的都是不要太在乎结果,努力的过程很重要,但是这在软件工程中不合适了 ...

  4. 软工结对项目之词频统计update

    队友 胡展瑞 031602215 作业页面 GitHub 具体分工 111500206 赵畅:负责WordCount的升级,添加新的命令行参数支持(自定义输入输出文件,权重词频统计,词组统计等所有新功 ...

  5. 论文爬取 & 词频统计2.0

    一.Github地址      课程项目要求    队友博客 二.具体分工 031602225 林煌伟 :负责C++部分主要功能函数的编写,算法的设计以及改进优化 031602230 卢恺翔 : 爬虫 ...

  6. 作业3-个人项目<词频统计>

    上了一天的课,现在终于可以静下来更新我的博客了.       越来越发现,写博客是一种享受.来看看这次小林老师的“作战任务”.                词频统计 单词: 包含有4个或4个以上的字 ...

  7. C语言实现词频统计——第二版

    原需求 1.读取文件,文件内包可含英文字符,及常见标点,空格级换行符. 2.统计英文单词在本文件的出现次数 3.将统计结果排序 4.显示排序结果 新需求: 1.小文件输入. 为表明程序能跑 2.支持命 ...

  8. 201521123042 Java第一周学习总结

    1. 201521123042 <Java程序设计>第一周学习总结 a.用notepad++和eclipse编写Java程序 b.安装Java Q1.为什么java程序可以跨平台运行?执行 ...

  9. 201521044152<java程序设计>第一周学习总结

    本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...

随机推荐

  1. USB助手

    自动拷贝U盘的数据--- 由于之前学习了win32的编程就想着做一个有趣的东西.想了想准备做一个可以自动复制U盘数据的程序. 对于这个程序的功能首先就是要能够识别U盘是否插入了,这里使用了函数GetL ...

  2. structc 开源框架简介

    了解 structc-https://github.com/wangzhione/structc structc 是 C 构建基础项目框架. 不是太惊艳, 但绝对是 C 简单项目中一股清流. 它的前身 ...

  3. scala(9) Monad

    一个单子(Monad)说白了不过就是自函子范畴上的一个幺半群而已.这句话涉及到了几个概念:单子(Monad),自函子(Endo-Functor),幺半群(Monoid),范畴(category). 范 ...

  4. maven拓展——使用tomcat插件运行maven项目

    首先,在pom.xml中配置插件: <build> <plugins> <plugin> <groupId>org.apache.tomcat.mave ...

  5. 20155217 2016-2017-2《java程序设计》第一周学习总结

    20155217 2016-2017-2<java程序设计>第一周学习总结 浏览教材,根据自己的理解每章提出一个问题 java平台和java编程语言的区别? 怎样使用IDE来管理原始码与位 ...

  6. sql语句-3-聚合数据查询

  7. Spring框架实例

    一,介绍 Spring框架核心是Ioc控制反转,只要在容器中注册以后,依赖从容器中获取即可 简单的理解:需要一个值,在程序中定义一个变量,但是不赋值,只设置set方法,运行时,容器为该变量赋值 二,实 ...

  8. 安装支持elasticsearch使用sql查询插件

    一.ElasticSearch-SQL介绍 ElasticSearch-SQL(后续简称es-sql)是ElasticSearch的一个插件,提供了es 的类sql查询的相关接口.支持绝大多数的sql ...

  9. Python接口测试实战2 - 使用Python发送请求

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  10. halcon学习相关资料(转载)

    https://blog.csdn.net/maweifei/article/details/78162581 论坛.培训 halcon学习网:http://www.ihalcon.com/ 鸟叔机器 ...