• 结对项目


    目的与要求


    • 代码复审练习
    • 结对练习
    • 编写单元测试
    • 基于作业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]!='';m++)     //将字符串以二维字符数组的形式储存起来
            {
                for(int n=0;input[n]!='';n++)
                {
                    cin>>input[m][n];
                }
            }
            for(int m=0;input[m]!='';m++)//将输入的字符串的大写转换为小写
            {
                for(int n=0;input[m][n]!='';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<<"统计的单词出现的次数如下:
    ";
        for(int i=0;;i++)
        {
            for(int j=0;if(strcmp(newword[i],word[j]));j++)
            {
                newwordnum[i]++;
            }
            cout<<newword[i]<<'	'<<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

     

  • 相关阅读:
    算法总结之 自然数组的排序
    算法总结之 计算数组最小和
    算法总结之 未排序数组中累加和小于或等于给定值的最长子数组长度
    算法总结之 未排序数组中累加和为给定值的最长子数组系列问题
    wget镜像网站并且下载到指定目录 2012-06-20 19:40:56
    用wget做站点镜像
    【亲测好用!】shell批量采集百度下拉框关键词
    网站发的文章有收录 但是没有排名怎么处理
    NGINX + LUA实现复杂的控制
    Linux下php安装Redis扩展
  • 原文地址:https://www.cnblogs.com/hyating/p/5309127.html
Copyright © 2020-2023  润新知