个人项目词频统计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还不行

时间: 2024-11-06 12:44:00

个人项目词频统计2的相关文章

结对项目 - 词频统计Ⅱ

目的与要求 代码复审练习 结对练习 编写单元测试 基于上一个结对项目的结果,读取小文本文件A_Tale_of_Two_Cities.txt 或者 大文本文件Gone_with_the_wind.txt,统计某一指定单词在该文本文件中出现的频率. 命令行格式: 提示符> Myapp.exe -f filename.txt -w word (PS:C++ 程序,Java 程序输出方式类似) 解释: 选项 -f 表示打开某一文件 选项 -w 表示统计其后单词在打开的文件中的频率 详细内容 开发语言:J

结对项目 - 词频统计

目的与要求 代码复审练习 结对练习 编写单元测试 基于作业3的结果,读取一个较小的文本文件A_Tale_of_Two_Cities.txt,统计该文件中的单词的频率,并将统计结果输出到当前目录下的 Result1.txt 文件. (第一阶段初稿完成该要求) 命令行格式: 提示符> Myapp.exe -f filename.txt > Result.txt (PS:C++ 程序,Java 程序输出方式类似) filename.txt 为前面下载的文件名. 解释: 选项 -f 表示后面跟文件名

个人项目——词频统计

前言: 开发工具:Visual Studio 2013 开发语言:C++ 源代码管理工具:Github Github源代码网址:https://github.com/superyy/YY1/blob/master/%E8%AF%8D%E9%A2%91%E7%BB%9F%E8%AE%A1main.cpp 预计各功能所花时间:some hours 实际各功能所花时间:some hours 性能提高所花时间:some hours 要求 :实现一个控制台程序,给定一段英文字符串,统计其中各个英文单词(4

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

需求分析 1.使用web上传txt文件,对上传的txt进行词频统计. 2.将统计后的结果输出到web页面,力求界面优美. 3.在界面上展示所给url的文章词频统计,力求界面优美. 3.将每个单词同四.六级词库进行比对,统计所传txt文件中四.六级单词涵盖率. 4.在3的基础上,展示文章中前10%单词中的覆盖百分比,词频前50%单词.词频前80%单词的覆盖百分比. 由于能力有限,学习了很久,到目前为止之完成了第一个功能,并对结果进行了输出,界面部分还有待学习. 代码实现 创建了两个JSP界面,up

作业4:结对项目—— 词频统计

1. 要求 基于作业3的结果,读取一个较小的文本文件A_Tale_of_Two_Cities.txt,统计该文件中的单词的频率,并将统计结果输出到当前目录下的 Result1.txt 文件. (第一阶段初 稿完成该要求). 命令行格式: 提示符> Myapp.exe -f filename.txt > Result.txt (PS:C++ 程序,Java 程序输出方式类似) filename.txt 为前面下载的文件名. 解释: 1.选项 -f 表示后面跟文件名 2.输出格式规定(参考作业3中

个人项目 - 词频统计

目标与要求 使用开发工具 使用源代码管理工具 详细要求: 1. 实现一个控制台程序,给定一段英文字符串,统计其中各个英文单词(4字符以上含4字符)的出现频率. 附加要求:读入一段文本文件,统计该文本文件中单词的频率. 2. 性能分析: +对C++代码运行VS的性能分析工具,找出性能问题并进行优化. +对Java程序运行性能分析工具 NetBeans IDE 6.0,找出性能问题并进行优化. 详细内容 开发语言:C++ 开发工具:Codeblocks 准备工作: 思路 (1)由用户选择是自主输入一

结对项目— 词频统计(语言C++)

结对对象:季天梦 博客地址:http://www.cnblogs.com/jitianmeng/ github链接:https://github.com/liuyutianlyt/EX_4.md 比例:1:1  要求 [必做 1] 基于作业3的结果,读取一个较小的文本文件A_Tale_of_Two_Cities.txt,统计该文件中的单词的频率,并将统计结果输出到当前目录下的 Result1.txt 文件. (第一阶段初稿完成该要求) 命令行格式: 提示符> Myapp.exe -f filen

结对项目— 词频统计2(语言C++)

结对对象:季天梦 博客地址:http://www.cnblogs.com/jitianmeng/ github链接:https://github.com/liuyutianlyt/EX_4.md 比例:1:1   要求 [必做 2] 读取小文本文件A_Tale_of_Two_Cities.txt 或者 大文本文件Gone_with_the_wind.txt,统计某一指定单词在该文本文件中出现的频率. 命令行格式: 提示符> Myapp.exe -f filename.txt -w word (P

第一次软工作业 个人项目 词频统计

1.预计完成时间: 在一开始的时候,我并不认为这项作业的完成难度有多大.因为觉得这个程序主要的部分就是三块码,读入当前目录下的所有内容,统计单词和排序,但是我对于C++和C#两种语言都不熟悉,所以准备先用两天来熟悉语言(后来发现这个决定是错误的..至少 不应该用这么长的时间).在程序的具体模块中,我划分了四个模块: 主函数:处理整个流程,包括读入目录中的所有内容和对于所执行模式的判断,预计用时1小时. 分割函数:将文件中的单词分割出来.由于有三种模式,预计用时3小时. 计数函数:统计频率,作为统

作业4:结对项目——词频统计

1. 目标 代码复审练习 结对练习 编写单元测试 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)在打