zoukankan      html  css  js  c++  java
  • 软件工程——第二次作业

    一、词频统计

    功能一:

    • 创建一个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饼状图

     四、代码行数折线图

    五、博客字数折线图

     

    六、进度条

  • 相关阅读:
    浅析Java源码之LinkedList
    浅析Java源码之ArrayList
    Vue源码终笔-VNode更新与diff算法初探
    Vue源码后记-更多options参数(2)
    Vue源码后记-更多options参数(1)
    Vue源码后记-其余内置指令(3)
    Vue源码后记-其余内置指令(2)
    Vue源码后记-其余内置指令(1)
    Vue源码后记-vFor列表渲染(3)
    Linux/CentOS 7 timezone 修改
  • 原文地址:https://www.cnblogs.com/szjzsd/p/7547839.html
Copyright © 2011-2022 走看看