zoukankan      html  css  js  c++  java
  • 结对编程——词频统计 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)中的频率

    结对伙伴:陈晖,博客地址: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     
    43     for(int j=0;str[j]!='';j++)
    44     {
    45         if(str[j]>='A'&&str[j]<='Z')
    46         {
    47             str[j]+= 32;  //大写字母Ascll码+32转换为小写
    48         }
    49     }
    50  //输出转换为小写的字符串
    51 
    52     string buf;
    53     ofstream fout("D:123.txt");  //把转换好的字符串写入文件
    54     fout<<str;
    55     fout.close ();
    56     ifstream fin("D:123.txt");  //读出写入的字符串并排序
    57     cout<<"输入统计单词:";
    58     char m;
    59     cin>>m;  //待统计单词m
    60     int total=0;    
    61     if(!strcmp(p,m))
    62     {
    63         total++;
    64     }
    65     while(fin>>buf)
    66     {
    67         value(buf)++;
    68     }
    69     vector<WORD>::const_iterator p;  //迭代器访问元素
    70     for(p=a.begin();p!=a.end();++p)
    71         cout<<p->word<<":"<<p->num<<'
    ';    
    72     return 0;
    73 }

    总结:

    这次的结对编程比起上一次来要顺利了很多,因为通过上一次的结对,让我们变得默契了很多。

    我觉得结对编程实在值得推荐,【感觉自己说了不止一遍了。

    至于好处,相信合作过的人都知道。

  • 相关阅读:
    buuctf-misc 一叶障目
    攻防世界-web ics-05
    攻防世界-web ics-06
    攻防世界-web NewsCenter
    攻防世界-web upload1
    攻防世界-web unserialize3
    攻防世界-web PHP2
    攻防世界-web2
    gitlab常用命令
    javascript编程风格
  • 原文地址:https://www.cnblogs.com/shilijing/p/5335194.html
Copyright © 2011-2022 走看看