一、词频统计
功能一:
- 创建一个txt文件,并输入相应内容。
- 在控制台输入命令。
- 读取文件,判断txt文件有多少单词,将单词和相应的出现次数显示出来。
- 最后,输出结果。
代码如下:
1 int main(int argc,char *argv[]) 2 { 3 system("cmd /c dir E:\folder\*.txt /a-d /b /s >E:\folder\output.txt");//获取文件路径 4 ifstream file1("E:\folder\output.txt"); 5 char cache[1024]; 6 int a = 0; 7 while (! file1.eof() )////判断文件是否为空是否读到结尾 8 { 9 file1.getline (cache,1024);//cache存的路径 10 int len = strlen(cache);//计算路径长度 11 int b = 0; 12 bool tmp = false; 13 // memset(filename,0,100); 14 for(int i = len - 1; i >= 0 ; i --) //获取文件名(倒序) 15 { 16 if(cache[i] == '.')///获取后缀前的文件名 17 { 18 for(int j = i-1; cache[j] != '\'; j --) 19 { 20 str[a].s[b] = cache[j];//把获取的字符串给str结构体 21 b ++; 22 } 23 } 24 } 25 a++; 26 }
运行结果如下:
功能二:
在功能1的基础上用字符串拼接文件名+“txt”后缀。
代码如下:
for(int i = 0; i < a-1 ; i ++) { swap(str[i].s); strcat(str[i].s,".txt");//正序的文件名 }
运行结果,如上。
功能三:
支持命令行输入英文作品文件的目录名,并批量统计。
vector<pr> vt;//创建一个vt数组 int num = 0; string s; string name; cin >> name;//输入 num = 0; mpp.erase(mpp.begin(),mpp.end());//清空mpp里的数据 vt.erase(vt.begin(),vt.end()); ifstream fin(name.c_str());//读取文件名 while(fin>>s)//处理单独文件 { int len=s.size(); if (ispunct(s[len-1])) { s.erase(len-1,1); } mpp[s]++; if(mpp[s] == 1) num ++; } for (map<string,int>::iterator curr = mpp.begin(); curr != mpp.end(); ++curr) { vt.push_back(make_pair(curr->first, curr->second)); } sort(vt.begin(), vt.end(), comp); // if(num == 1) printf("total 1 word "); else if(num != 0) printf("total %d words ",num); cout <<endl; for(int i = 0 ; i<(vt.size()>10?10:vt.size()); i++) { cout<<vt[i].first<<" " <<vt[i].second << endl; } return 0; }
文件名是221.txt(简爱)。
功能四:
从控制台输入英文单篇作品。
(未运行出)
git地址:https://coding.net/u/szjzsd/p/szj/git/tree/master/
二、psp分析表格
三、PSP饼状图
四、代码行数折线图
五、博客字数折线图
六、进度条