2017软件工程第二次作业(二)

词频统计

需求分析: 

  1. 小文件输入——从控制台由用户输入到文件中,再对文件进行统计;
  2. 支持命令行输入英文作品的文件名;
  3. 在命令行输入存储有英文作品文件的目录名,进行批量统计;
  4. 从控制台读入英文单篇作品,再进行词频统计。

  本次编程所用语言为C++,

部分代码:

  功能一:

  重要代码片段如下:

    for(int i = 0; i < Cnt-1 ; i ++)
        {
        swap(zb[i].s);
        strcat(zb[i].s,".tzt");
    }

    vector<PAIR> vec;
    int num = 0;
    string s;
    string name;
    cin >> name;

            num = 0;
            bb.erase(bb.begin(),bb.end());
            vec.erase(vec.begin(),vec.end());

    ifstream fin(name.c_str());

    while(fin>>s)
    {
        int len=s.size();
        if (ispunct(s[len-1]))
        {
            s.erase(len-1,1);
        }
        bb[s]++;
        if(bb[s] == 1)
            num ++;
    }

    for (map<string,int>::iterator curr = bb.begin(); curr != bb.end(); ++curr)
    {
        vec.push_back(make_pair(curr->first, curr->second));
    }
    sort(vec.begin(), vec.end(), cmp);

  

  运行结果截图如下:

 

  功能二:

  本功能重要代码与功能一相同,故不重复贴出。

   运行结果截图如下:

 由于本人编程水平一般,所以功能三、功能四均未能成功实现,故不在此加以赘述,还请老师见谅。

项目PSP:

由于本人的编程水平一般以及对自己的认知不足,所以编程所消耗的时间远多于预计的时间

代码及版本控制:

https://git.coding.net/zbwd666/zbwd.git

原文地址:https://www.cnblogs.com/zbwd666/p/7548242.html