结对编程__词频统计

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结对编程__词频统计相关的知识,希望对你有一定的参考价值。

搭档:施蓓蓓

源码: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"); //读入文件流,将文件直接放在同目录下
    if (!infile)
    {
        cout << "不能打开文件";
    }
    while (!infile.eof())
    {
        infile.getline(Str, 30000);
    }
    infile.close();

    int i = 0, m = 1, k = 0, flag = 0, x = 0;

    Str[x - 1] = \\0;
    x = 0;
    while (Str[x]){
        if (A <= Str[x] && Str[x] <= Z || a <= Str[x] && Str[x] <= z) {//判断是否是单词
            b[i++] = Str[x];//如果是的话将字符放到单词数组中

            flag = 1;
        }
        else if (flag){
            b[i] = \\0;
            flag = m = 0;
            for (i = 0; i < k; i++){
                if (strcmp(b, w[i].c) == 0){//比较单词是否相同
                    m = 1;
                    break;
                }
            }
            if (!m){
                w[k].n = 1;
                strcpy_s(w[k++].c, b);//不相同就保存
            }
            else w[i].n++;//相同,出现次数加1
            i = 0;
        }
        x++;
    }
    ofstream outfile("Result.txt");
    for (i = 0; i < k; i++)
        outfile << w[i].c << "   " << w[i].n << endl;//依次输出单词结构中的单词和个数到文件中
    cout << endl;
}

 

因为题目是基于作业3的,这次作业的重点对于我来说是文件流,文件流以前我用的不多,更不要说还是输出到指定文件里。我是直接把文件放到程序同文件夹里的,感觉还蛮好用的

 

3、结对体验

 

  这次结对的搭档是我的一个舍友,因此前期的摩擦不是很多。一开始的问题就是用谁的作业3和用谁的开发工具,经过一点讨论才有的结果。还有就是关于文件流的用法,我们都有一些个人的看法,后来还是在网上搜索了下用法,才有这最后的版本。

  说到底,结对编程是比自己一个人单做是有效率的,但是没有一个人编程在时间和细节方面更自由,还算是一次顺利的合作吧。


 

 

以上是关于结对编程__词频统计的主要内容,如果未能解决你的问题,请参考以下文章

结对&词频统计

《结对-英文词频检测程序-需求分析》

《结对-英文词频检测程序-需求分析》

结对编程-词频统计

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

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