题目:基于作业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 << "输入字符串:\n"; 32 char c; 33 while(c=cin.get()) 34 { 35 if((c>='a' && c<='z') || (c>='A' && c<='Z') || c==' ' || c=='\n') 36 str+=c; //去除符号 37 if(c=='\n') 38 break; 39 } 40 //输出去掉非英文字符的字符串 41 42 for(int j=0;str[j]!='\0';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<<'\n'; //将结果输出保存到Result1.txt中 63 return 0; 64 }
运行结果:
总结:
这次结对编程让我收获非常的多,也让我体会到了结对编程的便利性、有效性;
比如说我们遇到不会的地方,可以相互的讨论,取长补短;
比如有一方出错的时候,另一方也可以及时的纠正;
而且我发现,这样的做好处不止体现在作业中,生活中也同样如此。
两个人配合的做事能够非常有效的提高效率。
通过这次的合作让我更能跟伙伴友好的相处,这是难能可贵的。