结对项目— 词频统计(语言C++)
2016-03-22 20:30
246 查看
结对对象:季天梦
博客地址:http://www.cnblogs.com/jitianmeng/
github链接:比例:1:1
要求
[必做1]基于作业3的结果,读取一个较小的文本文件
命令行格式:提示符>Myapp.exe-ffilename.txt>Result.txt(PS:C++程序,Java程序输出方式类似)filename.txt为前面下载的文件名。
解释:
选项-f表示后面跟文件名
输出格式规定(参考
首先按照频率由高到低排序
频率一样的词,按照字典顺序排序
此外,读取一个较大的文本文件
源程序如下:
#include<iostream> #include<cstring> #include<fstream> usingnamespacestd; structWORD{/*创建一个结构体*/ intcount; chars; voidexchange(Word&word)/*交换单词*/ { stringtStr=word.Str; inttCount=word.Count; word.Str=Str; word.Count=Count; Str=tStr; Count=tCount; } }; }w[100]; boolisword(chara[])/*判断是否是一个单词*/ { inti=0; for(i=0;a[i]!='\0';i++) if((a[i]>='a'&&a[i]<='z')||(a[i]>='0'&&a[i]<='9')) return(true); else return(false); } intjudge(charb[],intn)/*判断该单词是否出现过*/ { if(n>0) for(inti=0;i<n;i++) { if(!strcmp(b,&w[i].s))/*出现*/ { w[i].count++; return(-1); } } } voidSortWordDown(Word*words,intsize)/*降序排序*/ { for(inti=0;i<size;i++) { for(intj=0;j<size-1;j++) { if(words[j].Count<words[j+1].Count) { words[j].exchange(words[j+1]); } } } } intmain(void) { charresult[500]; char*ptr; ifstreamfile("c://A_Tale_of_Two_Cities.txt");/*读取*/ if(!file) { cout<<"不能打开文件"; } while(!file.eof()) { file.getline(result,500); } file.close(); intj=0;/*大写转小写*/ while(result[j]!='/0'&&result[j+1]!='/0') { if(result[j]>='A'&&result[j]<='Z') { result[j]=result[j]-'A'+'a'; j++; } } cout<<result; char*sep=""; inti=0; ptr=strtok(result,"");/*利用strtok函数来分割result字符串中的单词*/ while(ptr!=NULL) { if(isword(p)!=false) { if(judge(p,n)!=false) { w .s=*p;/*赋值给数组*/ n++; } } ptr=strtok(NULL,""); } intt=0; ofstreamoutfile;/*输出文件到result1*/ outfile.open("Result1.txt") SortWordDown(w,count); while(w[t].s)/*输出统计结果*/ { if(strlen(w[t].s)>=4) { outfile<<w[t].s<<":"<<w[t].count<<'\n'; t++; } } return(0); }
结果如下:
总结:由于是团队协作,我们在之前作业三的基础上就有程序上的不同,看对方程序也是一个学习过程。最后整合了两个程序之后,又一起讨论完成了作业四的要求。
相关文章推荐
- C++ static静态成员变量和静态成员函数
- hash --C++
- C语言练习题
- kmp算法c++实现
- C语言中实现BOOL类型
- HDOJ 2024 C语言合法标识符
- c++犯过的错
- C++高层抽象之虚函数
- C指针总结
- 使用VC++绘制坐标系
- C语言学习第一天
- 用C++实现在键盘上输入任意个数
- 使用C语言写PostgreSQL函数
- 局域网象棋游戏(C++实现,使用Socket,界面使用Win32,CodeBlocks+GCC编译)
- 树形动规--没有上司的舞会--C++
- kruskal --- c++ (2)
- kruskal --- C++
- c++学习之:根据GetLastError()返回值获取错误信息
- C++类的继承
- 函数的重载定义及应用