• 结对编程——词频统计


    题目:基于作业3的结果,读取一个较小的文本文件A_Tale_of_Two_Cities.txt,统计该文件中的单词的频率,并将统计结果输出到当前目录下的 Result1.txt 文件。 (第一阶段初稿完成该要求)

    结对伙伴:陈晖,博客地址:http://www.cnblogs.com/cchenhui

                  Github:https://github.com/cchenhui/-4

    贡献比例:1:1

     

    源程序:

     1 #include <iostream>
     2 #include <vector>
     3 #include <algorithm> 
     4 #include <string>
     5 #include <fstream>
     6 using namespace std;
     7 
     8 struct WORD
     9 {
    10     string word;
    11     int num;
    12 };
    13 
    14 vector<WORD> a;  //创建vector对象,a[]
    15 
    16 int&value(const string&s)
    17 {
    18     for(int i=0;i<a.size();i++)
    19         if(s==a[i].word)
    20             return a[i].num;
    21         WORD p;
    22         p.word=s;
    23         p.num=0;
    24         a.push_back(p);  //在数组a最后添加数据
    25         return a[a.size()-1].num;
    26 }
    27 
    28 int main()
    29 {
    30     string str;
    31     cout << "输入字符串:
    ";
    32     char c;
    33     while(c=cin.get())
    34     {
    35         if((c>='a' && c<='z') || (c>='A' && c<='Z') || c==' ' || c=='
    ')  
    36             str+=c;   //去除符号
    37         if(c=='
    ')
    38             break;
    39     }
    40 //输出去掉非英文字符的字符串
    41         
    42     for(int j=0;str[j]!='';j++)
    43     {
    44         if(str[j]>='A'&&str[j]<='Z')
    45         {
    46             str[j]+= 32;  //大写字母Ascll码+32转换为小写
    47         }
    48     }
    49  //输出转换为小写的字符串
    50 
    51     string buf;
    52     ofstream fout("D:\123.txt");  //把转换好的字符串写入文件
    53     fout<<str;
    54     fout.close ();
    55     ifstream fin("D:\123.txt");  //读出写入的字符串并排序
    56     while(fin>>buf){
    57         value(buf)++;
    58     }
    59     vector<WORD>::const_iterator p;  //迭代器访问元素
    60     ofstream output("D:\Result1.txt");  //定义输出文件名
    61     for(p=a.begin();p!=a.end();++p)
    62         output<<p->word<<":"<<p->num<<'
    ';  //将结果输出保存到Result1.txt中
    63     return 0;
    64 }

    运行结果:

    总结:

    这次结对编程让我收获非常的多,也让我体会到了结对编程的便利性、有效性;

    比如说我们遇到不会的地方,可以相互的讨论,取长补短;

    比如有一方出错的时候,另一方也可以及时的纠正;

    而且我发现,这样的做好处不止体现在作业中,生活中也同样如此。

    两个人配合的做事能够非常有效的提高效率。

    通过这次的合作让我更能跟伙伴友好的相处,这是难能可贵的。

  • 相关阅读:
    Codeforces Round #545 (div 1.)
    THUSC 2017 大魔法师
    loj #6216. 雪花挂饰
    [NOI Online #2 提高组]涂色游戏
    [NOI Online #2 提高组]子序列问题
    [NOI Online #1 入门组]跑步
    备战noip week7
    [NOI Online #3 提高组]优秀子序列
    20201017校测
    springboot基于maven多模块项目搭建(直接启动webApplication)
  • 原文地址:https://www.cnblogs.com/shilijing/p/5308639.html
Copyright © 2020-2023  润新知