结对作业4词频统计

结对对象:谢小山   博客:http://home.cnblogs.com/u/898254/

github账号:https://github.com/hjs12

http://www.cnblogs.com/xiexiaoshan123/

贡献比例:50%:50%

// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
#include<fstream>
#include<cstring>
using namespace std;

struct Num{
    int num = 1;
    char *s = NULL;
};

Num word[99];

int Judge(char danci[])//判断单词
{
    bool j1 = (strlen(danci) >= 4);
    bool j2 = (danci[0] >= ‘a‘ && danci[0] <= ‘z‘);
    if (!(j1&&j2))
        return -1;
    else
    for (int ns = 1; danci[ns] != ‘\0‘;)
    {
        if (!((danci[ns] >= ‘a‘ && danci[ns] <= ‘z‘) || (danci[ns] >= ‘0‘ && danci[ns] <= ‘9‘)))
            return -1;
        else
            ns++;
    }
}
int Sta(char danci[], int nn)   //判断该单词是否出现过
{
    if (nn>0)
    for (int i = 0; i <nn; i++)
    {
        if (!strcmp(danci, word[i].s))  //出现
        {
            word[i].num++;      //+1
            return -1;
        }
    }
}
int main()
{
    char sentence[1000];//字符数组长度要足够大
    ifstream file("d://A_Tale_of_Two_Cities.txt");
    ofstream outfile("d://Result1.txt");  //读取
    if (!file){
        cout << "Unable to open file";
        exit(1);
    }
    if (!outfile){
        cout << "Unable to open outmyfile";
        exit(1);
    }
    while (!file.eof())
    {
        file.getline(sentence, 1000);
    }
    file.close();
    int num2 = 0;
    while (sentence[num2] != ‘\0‘)//转小写
    {
        if (sentence[num2] >= ‘A‘&&sentence[num2] <= ‘Z‘)
            sentence[num2] = sentence[num2] + 32;
        num2++;
    }
    const char *delim = " ,“”.‘‘‘’!?";  //分隔符
    char *p,
        *pNext = NULL;
    int n = 0,     //计数器 n ,t 初始化
        t = 0;
    p = strtok_s(sentence, delim, &pNext);   //strtovk_s函数根据分隔符分隔字符串
    while (p)
    {
        if (Judge(p) != -1)
        {
            if (Sta(p, n) != -1)
            {
                word[n].s = p;
                n++;
            }
        }
        p = strtok_s(NULL, delim, &pNext);
    }

    while (word[t].s)        //输出统计结果
    {
        cout<< word[t].s << ":" << word[t].num << ‘\n‘;
        outfile<< word[t].s << ":" << word[t].num << ‘\n‘;
        t++;
}
    outfile.close();
    return 0;
}

字符组长度要足够长。

学会了使用ofstream将结果存入txt文件。

时间: 2024-12-22 03:10:40

结对作业4词频统计的相关文章

作业4词频统计2

[必做 2] 读取小文本文件A_Tale_of_Two_Cities.txt 或者 大文本文件Gone_with_the_wind.txt,统计某一指定单词在该文本文件中出现的频率. 命令行格式: 提示符> Myapp.exe -f filename.txt -w word (PS:C++ 程序,Java 程序输出方式类似) 解释: 选项 -f 表示打开某一文件(filename.txt) 选项 -w 表示统计其后单词(word)在打开的文件(filename.txt)中的频率. package

第二周结对编程作业:词频统计

程序实现的功能是统计文件中出现的词和每个词的频数. 这里的词的规定和平时语言上的规定不太一样,但是更标准化,规定了长度.组成字符和分隔符,在实现中也从这几个方面来寻找词. /*判断字符是否是字母*/ bool isAlphabetic (char c) { return ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')); } /*判断字符是否是数字*/ bool isNumerical (char

结对编程__词频统计

搭档:施蓓蓓 源码:Github 贡献比例:50% 结对编程照片: 1.要求     基于作业3的结果,读取一个较小的文本文件A_Tale_of_Two_Cities.txt,统计该文件中的单词的频率,并将统计结果输出到当前目录下的 Result1.txt 文件 2.主程序 void main(void) { char b[30], Str[30000];//定义单词数组,字符串数组 ifstream infile("A_Tale_of_Two_Cities.txt"); //读入文件

作业之词频统计

项目需求: 1编一程序,统计一篇英文文章中各单词出现的次数. 2输入:英文文章,为文本文件,扩展名.txt 3输出:按次数降序排列 设计如下. 1 #pragma warning (disable:4996) 2 #include <iostream> 3 #include <map> 4 #include <vector> 5 #include <algorithm> 6 7 using namespace std; 8 9 class String 10

个人作业3词频统计

  #include <stdlib.h> #include <stdio.h> #include <cstring> int chazhao(char *str1,char *str2) { char *p=str1;//p指向句子 int i=0,k=0;//k统计个数 while(*p!='\0')//句子结束退出循环 { while(*p!=' ')//单词结束退出循环 查找下个单词 { if(*p!=str2[i])//遇到不同字母 指向下一个单词 while

第二周结对编程作业——词频统计

本周作业是结对编写一个词频统计的程序,我们组是我(欧阳思琪)和贺晋飞同学共同完成这项任务.在仔细阅读了要求之后,我们组对程序编程进行了讨论.由于语言可以不必局限于要求中的C.C++,我们便考虑JAVA或python,两者各有优缺点,JAVA写起来比较繁重,而基于以往用python处理NLP相关项目的经验觉得python较为简单,但觉得在简单要求下,使用JAVA的运行速度明显更快,所以我们选择使用JAVA来完成本次作业. 分工:欧阳思琪 代码编写与博客编写 贺晋飞   代码审查与代码测试 实际:由

第二周作业-词频统计

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

第二次结对编程-字词短语统计

第二次结对编程项目总结 第二次结对项目(词频统计要求网址): https://www.cnblogs.com/xinz/archive/2011/11/27/2265000.html 项目网址: https://github.com/QishenDatui/WordFrequency 基本要求 详细要求位于这里. 简要概括:根据输入的命令行参数,对文本中的字符进行对应的统计,例如使用-c命令统计字符出现次数,利用-f统计单词出现次数等等.项目一共分为5个步骤,4个必做项和一个附加项.分别为统计字

作业4:结对编程—词频统计

结对对象:石莉静 博客地址:http://www.cnblogs.com/shilijing/ Github地址:https://github.com/cchenhui/-4 贡献比例:1:1 结对编程照片: [必做 2] 读取小文本文件A_Tale_of_Two_Cities.txt 或者 大文本文件Gone_with_the_wind.txt,统计某一指定单词在该文本文件中出现的频率. 源程序: #include <iostream> #include <vector> #in