码迷,mamicode.com
首页 > 其他好文 > 详细

软件工程——第二次作业

时间:2017-09-19 11:21:16      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:.net   class   git   get   while   ges   name   进度条   cin   

一、词频统计

功能一:

  • 创建一个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\n");
    else if(num != 0)
        printf("total %d words\n",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/aa/git/tree/master

二、psp分析表格

 

技术分享

三、PSP饼状图

技术分享

 

 四、代码行数折线图

技术分享

五、博客字数折线图

 技术分享

六、进度条

技术分享

 

软件工程——第二次作业

标签:.net   class   git   get   while   ges   name   进度条   cin   

原文地址:http://www.cnblogs.com/szjzsd/p/7547839.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!