词频统计2

结对对象:王闯   博客链接:www.cnblogs.com/WC123  贡献比例: 1:1个人觉得这个程序还是很难的,难点主要有文件流,辨别单词,查找单词,单词频率统计。如果是我一个人的话是完成不了的,只能写出一段代码实现一部分功能。两个人就容易多了,根据个人能力编写不同部分的代码,选择两个人当中比较好的那个构思进行整合。当然,这也是建立在参考了众多大神的代码的基础上完成的。
#include<iostream>
#include<fstream>
#include<cstring>
#include<string>
using namespace std;

struct Word
{
    int Count;
    Word() :b(""), Count(0) {}
    string b;
    char *p;
};

void exchange(Word &word)
{
    string tb = Word.b;
    int tCount = Word.Count;
    Word.b = b;
    Word.Count = Count;
    b = b
    Count = tCount;
}  

Words examine[100];

void judge(char x[])
{   int k = 0;
    while (x[k] != ‘\0‘)
    {
        if (x[k] >= ‘A‘&&x[k] <= ‘Z‘)
            x[k] = x[k] + 32;
            k++;
    }
}

int identify(char a[])
{   int m=(strlen(a)>=4)?1:0;
    int n=(a[0]>=‘a‘&&a[0]<=‘z‘)?1:0;
    if(!m||!n)
        return 0;
    else
        while(a)
        {
            for(int i=1;;i++)
           {
               if(!(a[i]>=‘a‘&&a[i]<=‘z‘)||!(a[i]>=‘0‘&&a[i]<=‘9‘))
                        return 0;
               else
                        return 1;
           }
        }
}

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

int counts(char str[],int num)
{   for(int j=0;j<num;j++)
    {

        if(!strcmp(str,examine[j].p))
             examine[j].count++;
        else
            return 0;
    }
}

int main()
{   char c[200];
    ifstream fin("D:/A_Tale_of_Two_Cities.txt");
    for(int f=0;;f++)
        fin>>c[f];
    fin.close();
    cin.get();
    judge(c);
    const char *s= ",?±?".‘‘!?";
    char *q;
    int n=0;
    q = strtok(c, d);
    sortwordown(words, wCount);
    while (s)
    {
        if (identify(s))
        {

             strcpy(examine[n].p,s);
             n++;

        }

       s=strtok(NULL,d);
    }
    cout<<"Enter a word to find...\n";
    char r;
    cin>>r;
    int t=0;
    while(!strcmp(examine[n].p,r))
    {
             t++;
    }
    cout<< examine[n].p << ":" << examine[n].count << ‘\n‘; 

    return 0;
}
时间: 2024-12-07 01:59:26

词频统计2的相关文章

词频统计-单元测试

我自己的单元测试没有弄出来,我用c编的,在visual studio中貌似实现不了单元测试,而李俞寰同学是用c#编写的词频统计,在vs2015中实现单元测试无比的方便,所以我请教了他并借鉴了一下. [TestMethod()] public void DictionarySortTest() { Dictionary<string,int>input=new Dictionary<string,int>() { {"you,1}, {"are",1},

词频统计-功能一

一.完成一个小程序 我 拿到这个题目之后,就决定用最不熟悉的c#来实现,因为老师说不懂的去学才会有进步.布置任务后的第二天就开始去图书馆借了两本书<c#从入门到精髓>,<c#项目实战>,拿到书之后看了入门书<c#从入门到精髓>,看书的过程时痛苦的,因为发现大二选修课学的c#全交还给老师了,只能重头再学了.唯一有点印象的就是窗口应用程序,基于UI的设计. 写代码首先需要工具,由于电脑上没有visual studio的安装包,当时求助了度娘. 如果没有安装包的同学们,可以借

词频统计效能测试---------第二版

在第一次的词频统计中,对JProfile 款软件不是很熟悉,感觉数据不是很准确,在程序启动时JProfile总是提示Java虚拟机已退出,后来经过查阅知道解决方案:截图如下   要将 keep vm alive 勾选上. 程序总体总体情况如下: 当程序运行之后,cpu和内存的使用几乎在同一时间有一个明显的上升过程. 各个对象使用情况如下 下面是热点函数的展示,这也和我在程序中运用时间戳确定建树函数[generateCharTree()]占用时间较多的情况相符.因为对这个程序来说主要时间都花费在单

结对项目 - 词频统计Ⅱ

目的与要求 代码复审练习 结对练习 编写单元测试 基于上一个结对项目的结果,读取小文本文件A_Tale_of_Two_Cities.txt 或者 大文本文件Gone_with_the_wind.txt,统计某一指定单词在该文本文件中出现的频率. 命令行格式: 提示符> Myapp.exe -f filename.txt -w word (PS:C++ 程序,Java 程序输出方式类似) 解释: 选项 -f 表示打开某一文件 选项 -w 表示统计其后单词在打开的文件中的频率 详细内容 开发语言:J

个人项目——词频统计

前言: 开发工具:Visual Studio 2013 开发语言:C++ 源代码管理工具:Github Github源代码网址:https://github.com/superyy/YY1/blob/master/%E8%AF%8D%E9%A2%91%E7%BB%9F%E8%AE%A1main.cpp 预计各功能所花时间:some hours 实际各功能所花时间:some hours 性能提高所花时间:some hours 要求 :实现一个控制台程序,给定一段英文字符串,统计其中各个英文单词(4

实验二-3 Hadoop&amp;Paoding 中文词频统计

  参考教程 在Hadoop上使用庖丁解牛(较复杂,并未采用,可以之后试试) http://zhaolinjnu.blog.sohu.com/264905210.html Lucene3.3.Lucene3.4中文分词——庖丁解牛分词实例(屈:注意版本) http://www.360doc.com/content/13/0217/13/11619026_266124504.shtml 庖丁分词在hadoop上运行时的配置问题(采纳了一半,没有按照其所写配置dic属性文件) http://f.da

初学Hadoop之中文词频统计

1.安装eclipse 准备 eclipse-dsl-luna-SR2-linux-gtk-x86_64.tar.gz 安装 1.解压文件. 2.创建图标. ln -s /opt/eclipse/eclipse /usr/bin/eclipse #使符号链接目录 vim /usr/share/applications/eclipse.desktop #创建一个  Gnome 启动 添加如下代码: [Desktop Entry] Encoding=UTF-8 Name=Eclipse 4.4.2

第二周作业-词频统计

本周作业是词频统计,编程具体要求如下: https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/922 对实现功能进行简要的介绍: 功能一:小文件输入,为表明程序能跑.需要在控制台下输入命令,得到文件中不重复的总单词数.并对单词出现的次数进行排序输出. 功能二:支持命令行输入英文作品的文件名,亲自录入,输出显示不重复单词总数,并对出现频率最高的前10的单词进行输出 功能三:支持命令行输入存储有英文作品文件的目录名,批量统计词频. 功能四:

软件工程第二次作业 词频统计

1.项目名称:词频统计 2.代码地址:https://coding.net/u/songyuu/p/python_wf/git 3.代码如下: 1 import os 2 import re 3 import collections 4 #print(os.getcwd()) #显示wf.py路径 5 #print(os.listdir())#显示目录下的文件 6 file_name=input("wf ") 7 if not os.path.isfile(file_name+'.tx

组合数据类型练习,英文词频统计实例

1.由字符串创建一个作业评分表,做增删改查询统计遍历操作,例如查询第一个3分的下标,统计1分的同学有几个,3分的同学有几个,增删改查等等. 2.字典实例:建立学生学号成绩字典,做增删改查遍历操作. 3.列表,元组,字典,集合的遍历. 4.英文词频统计实例 news = '''When I was young I'd listen to the radio Waiting for my favorite songs When they played I'd sing along, It make