个人项目词频统计2

Posted 沈柏杉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人项目词频统计2相关的知识,希望对你有一定的参考价值。

SSH:[email protected]:shenbaishan/cipintongji_.git

 

 

 1 #pragma warning (disable:4996)
 2 #include <iostream>
 3 #include <map>
 4 #include <vector>
 5 #include <algorithm>
 6 #include <string.h>
 7 #include <time.h>
 8 
 9 using namespace std;
10 
11 unsigned long Total;
12 class String
13 {
14 public:
15     String(char *Word) :Frequency(1)
16     {
17 
18         Word_Point = new char[strlen(Word) + 1];
19         strcpy(Word_Point, Word);
20     }
21     char *Word_Point;
22     int Frequency;
23     bool operator<(String STR);
24     ~String(){}
25 };
26 
27 bool String::operator<(String STR){ return Frequency < STR.Frequency; }
28 
29 vector<String>  Sort_Word;
30 
31 void If_Repet(char *WordP)
32 {
33     vector<String>::iterator iter;
34     for (iter = Sort_Word.begin(); iter != Sort_Word.end(); iter++)
35     if (!strcmp(iter->Word_Point, WordP))
36     {
37         Total++;
38         iter->Frequency++;
39         return;
40     }
41     Sort_Word.push_back(String(WordP));
42 }
43 
44 void Catch_Letter(char *File_P)
45 {
46     char *Wor_Po = (char *)malloc(4);
47     FILE *Article = fopen(File_P, "r");
48     char *Letter_Point;
49     while (!feof(Article))
50     {
51         fscanf(Article, "%s", Wor_Po);
52         Letter_Point = Wor_Po;
53         while (*Letter_Point++)
54         {
55             if (*Letter_Point == , || *Letter_Point == .)
56                 *Letter_Point = 0;
57         }
58         If_Repet(Wor_Po);
59     }
60 }
61 
62 void Stat_Alone(char *Master_P)
63 {
64         Catch_Letter(Master_P);
65         sort(Sort_Word.begin(), Sort_Word.end());
66         cout << "total :" << Total << endl << endl;
67         for (vector<String>::iterator iter = Sort_Word.begin(); iter != Sort_Word.end(); iter++)
68             printf("Word : %-15s Frequency :%d\n", iter->Word_Point, iter->Frequency);
69         Total = 0;
70         Sort_Word.clear();
71 }
72 
73 void main(int argv ,char **argc)
74 {
75     time_t start = clock();
76     if (strcmp(argc[1], "folder"))    Stat_Alone(argc[1]);
77     else
78     {
79         char *Folder = (char *)malloc(40*sizeof(int));
80         FILE *Folder_P = fopen("folder.txt" ,"r");
81         while (!feof(Folder_P))
82         {
83             if (feof(Folder_P)) break;
84             
85             fscanf(Folder_P, "%s", Folder);
86             Stat_Alone(strcat(Folder, "\\article.txt"));
87         }
88     }
89     printf("Use time: %.0f ms" ,double(clock() - start)*1000/CLOCKS_PER_SEC);
90     getchar();
91 }

功能1

技术分享 

功能3

技术分享

功能4

技术分享

实现了部分功能。功能2还不行

以上是关于个人项目词频统计2的主要内容,如果未能解决你的问题,请参考以下文章

个人项目——词频统计

个人项目词频统计2

个人项目——词频统计

个人项目----词频统计WEB(部分功能)

个人项目--词频统计

个人作业——词频统计