结对项目 - 词频统计

目的与要求


  • 代码复审练习
  • 结对练习
  • 编写单元测试
  • 基于作业3的结果,读取一个较小的文本文件A_Tale_of_Two_Cities.txt,统计该文件中的单词的频率,并将统计结果输出到当前目录下的 Result1.txt 文件。 (第一阶段初稿完成该要求)
  • 命令行格式: 提示符> Myapp.exe -f filename.txt > Result.txt (PS:C++ 程序,Java 程序输出方式类似) filename.txt 为前面下载的文件名。
  • 解释:
    • 选项 -f 表示后面跟文件名
    • 输出格式规定(参考作业3中的示例):
      • 首先按照频率由高到低排序
      • 频率一样的词, 按照字典顺序排序
  • 此外, 读取一个较大的文本文件Gone_with_the_wind.txt实验对比程序执行效率,做如下改进,比较改进前后程序执行时间。


详细内容


  1. 思路:

基于上一个 个人项目 - 词频统计 的程序和结果,将本次所需的文件放在指定的地址上,统计该文件中的单词的频率,并使用文件流的写入将结果写入文件。

2. 分工:

我负责主要大框架的编写,我的小伙伴负责在这个框架里细化逻辑与语法语句的关系。

  • 源代码
#include<iostream>
#include<fstream>
#include<cstring>
#include<cctype>
using namespace std;

void screen(int chioce)      //对内容进行筛选
{
    char input[50][50],newinput[50][50],newopen[100];
    char *open;
    if(chioce==1)            //以输入方式对字符串进行存储与筛选
    {
        cout<<"请输入一串字符串,以回车键作为结束:";
        for(int m=0;input[m]!=‘\0‘;m++)     //将字符串以二维字符数组的形式储存起来
        {
            for(int n=0;input[n]!=‘\0‘;n++)
            {
                cin>>input[m][n];
            }
        }
        for(int m=0;input[m]!=‘\0‘;m++)//将输入的字符串的大写转换为小写
        {
            for(int n=0;input[m][n]!=‘\0‘;n++)
            {
                if(input[m][n]>=‘A‘&&input[m][n]<=‘Z‘&&strlen(input)>=4)   //限制字符串大小为4
                {
                    int i=0,j=0;
                    newinput[i][j]=toupper(input);
                }
            }
        }
        sta(newinput,m*n);
    }

    else        //以录入方式对字符串进行存储与筛选
    {
        int i=0,n;
        ifstream open("D:\\A_Tale_of_Two_Cities.txt");
        open=new int[n];
        while(open>>open[i],strlen(open)>=4)  //字符串大于4的才给予储存的机会
        {
            newopen[i]=toupper(open);         //大写转换成小写
            i++;
        }
        sta(newopen,i);
    }
}

void sta(char word[],int wordnum[])          //统计单词出现的次数
{
    char newword[],newwordnum[];
    cout<<"统计的单词出现的次数如下:\n";
    for(int i=0;;i++)
    {
        for(int j=0;if(strcmp(newword[i],word[j]));j++)
        {
            newwordnum[i]++;
        }
        cout<<newword[i]<<‘\t‘<<newwordnum[i]<<endl;
    }

}

void SortWordDown(char word,int size )  //以单词出现频率降序排列单词
{
    for (int i=0;i<size;i++)
    {
        for(int j=0; j<size-1;j++)
        {
            if (words[j]<words[j+1])
            {
                exchange(words[j],words[j+1]);
            }
        }
    }
}

int main( )
{
    int chioce;
    cout<<"请问是输入一串字符串还是导入一个文本文件?(1:字符串,2;文本文件):";
    cin>>chioce;
    if(chioce==1||chioce==2)        //用户选择
    {
        screen(chioce);
    }
    ofstream outfile;               //用文件流写入文件结果
    outfile.open( "Result1.txt" )
    return 0;
}
  • 运行结果

    

  • 小结

第一次尝试与其他人一起结对编程,对于一个人的编程,两个人更明显的可以互相交流和弥补双方的缺点和弱势。

对于在原来程序上完善和原数据上的变动更得心应手了。

  • 源代码Github地址

https://github.com/Jennyhyt/My-source-code/blob/master/TeamWork-WFS.cpp

时间: 2024-08-08 00:18:51

结对项目 - 词频统计的相关文章

结对项目 - 词频统计Ⅱ

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

作业4:结对项目—— 词频统计

1. 要求 基于作业3的结果,读取一个较小的文本文件A_Tale_of_Two_Cities.txt,统计该文件中的单词的频率,并将统计结果输出到当前目录下的 Result1.txt 文件. (第一阶段初 稿完成该要求). 命令行格式: 提示符> Myapp.exe -f filename.txt > Result.txt (PS:C++ 程序,Java 程序输出方式类似) filename.txt 为前面下载的文件名. 解释: 1.选项 -f 表示后面跟文件名 2.输出格式规定(参考作业3中

结对项目— 词频统计(语言C++)

结对对象:季天梦 博客地址:http://www.cnblogs.com/jitianmeng/ github链接:https://github.com/liuyutianlyt/EX_4.md 比例:1:1  要求 [必做 1] 基于作业3的结果,读取一个较小的文本文件A_Tale_of_Two_Cities.txt,统计该文件中的单词的频率,并将统计结果输出到当前目录下的 Result1.txt 文件. (第一阶段初稿完成该要求) 命令行格式: 提示符> Myapp.exe -f filen

结对项目— 词频统计2(语言C++)

结对对象:季天梦 博客地址:http://www.cnblogs.com/jitianmeng/ github链接:https://github.com/liuyutianlyt/EX_4.md 比例:1:1   要求 [必做 2] 读取小文本文件A_Tale_of_Two_Cities.txt 或者 大文本文件Gone_with_the_wind.txt,统计某一指定单词在该文本文件中出现的频率. 命令行格式: 提示符> Myapp.exe -f filename.txt -w word (P

作业4:结对项目——词频统计

1. 目标 代码复审练习 结对练习 编写单元测试 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)在打

task4:结对项目-词频统计

结对人:周楠 思路:利用TreeMap实现key字典序,然后输出到LinkedList,然后用Comparator,实现字典值从大到小排序,但是key实现值相同的key字典序的想出的实现方法,但是一直错是返回null,不知所以. 程序: 1 class sort2{ 2 LinkedList<Map.Entry<String, Integer>> yy; 3 LinkedList<Map.Entry<String, Integer>> temppp; 4 5

《结对-英文词频统计-结对项目总结》

结对项目心得: 完成之后感觉实际耗时应该比原计划少一些,查找相关方法.不过感觉python还是相对比较容易上手的,有这么多可以直接调用的方法.这一部分大概用时三个半小时. 其他部分的工作用时与预计没有太大差距. 最省时间的是程序没有出现太大问题,所以大大减少了时间. 最主要的是两人合作.

个人项目——词频统计

前言: 开发工具: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

个人项目----词频统计WEB(部分功能)

需求分析 1.使用web上传txt文件,对上传的txt进行词频统计. 2.将统计后的结果输出到web页面,力求界面优美. 3.在界面上展示所给url的文章词频统计,力求界面优美. 3.将每个单词同四.六级词库进行比对,统计所传txt文件中四.六级单词涵盖率. 4.在3的基础上,展示文章中前10%单词中的覆盖百分比,词频前50%单词.词频前80%单词的覆盖百分比. 由于能力有限,学习了很久,到目前为止之完成了第一个功能,并对结果进行了输出,界面部分还有待学习. 代码实现 创建了两个JSP界面,up