软工实践第二次做业

GItHub地址node

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 100
· Estimate · 估计这个任务须要多少时间 510 648
Development 开发 100 200
· Analysis · 需求分析 (包括学习新技术) 20 25
· Design Spec · 生成设计文档 0 0
· Design Review · 设计复审 20 5
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 10 5
· Design · 具体设计 15 30
· Coding · 具体编码 80 80
· Code Review · 代码复审 5 50
· Test · 测试(自我测试,修改代码,提交修改) 5 5
Reporting 报告 30 60
· Test Repor · 测试报告 50 50
· Size Measurement · 计算工做量 5 8
· Postmortem & Process Improvement Plan · 过后总结, 并提出过程改进计划 30 30

 

 

主函数里包含计算字符数、单词数、行数以及前十的单词。ios

int main()
{
    double t = clock();
    ofstream os("result.txt", ios::out);
    if (!os)
    {
        cerr << "Cannot write file result.txt!" << endl;
        exit(1);
    }
    get_characters(os);
    get_words(10, os);
    get_lines(os);
    priority_words(os);
    os.close();
    cout<<"< Elapsed Time: "<<(clock()-t)/CLOCKS_PER_SEC<<" >"<<endl;
    return 0;
}

 

用桶来记录字符串出现的次数,再用结构体使用迭代器将桶内的字符串和出现次数提取出来,写一个排序函数,将字符串按优先级排序(出现次数高的、一样频率字典序在前的优先级高)。最后提取前十个优先级最高的。git

其余的字符统计之类的,只要采用函数进行封装,从文档内读取并计数便可。github

struct node{
        string sss;
        int num;
        //int value;
    }q[10005];
    map<string, int>word;
    FILE *fp, *os, *infile;
    char ch = 'a';
    ll characters = 0, lines = 0, words = 0;

 

void get_characters(ofstream &os)
//获得字符数,用字符逐个输入

void get_words(const int &cnt, ofstream &os)
//以字符串读入,遇到分隔符再记录是不是单词,单词用桶装

void get_lines(ofstream &os)
//以字符读入,定义一个字符变量动态记录上一读入的字符,若连续出现两个'\n'则行数不变。

void priority_words(ofstream &os)
//采用结构体排序,输出前十

//排序算法
bool cmp(node t1, node t2)
    {
        if(t1.num!=t2.num)
        return t1.num > t2.num;
        int len1 = t1.sss.length();
        int len2 = t2.sss.length();
        int i;
        for(i = 0; i < len1 && i < len2; i++)
        {
            if(t1.sss[i] != t2.sss[i])
            {
                return t1.sss[i] < t2.sss[i];
                break;
            }
        }
        if(i == len1)
        return true;
        if(i == len2)
        return false;
    }
sort(q, q+v, cmp);

 

 

唉,请让我发一条有声评论:“好难过,这不是我要的结果”。算法

在我所想到的全部bug攻克后,代码轰轰烈烈的出炉。而后,而后,请唱出git是什么鬼!函数

就这样,在最后的几个小时里,我百度,我翻文件,可是,.git我都找不到。最后找到的时候看了下时间,咳咳~~~学习

找到的时候我在干吗呢?在这里跟你们分享个人心情。为何呢,由于已经没有时间了。测试

 

我只能说,多么痛的领悟,原来代码已经是个人所有,曾经作时的每一步,都好辛苦,唔~~~编码

 

留下此篇博客,当我从此之教训,之后做业发布的第一天,我就要开始作!开始作!开始作!这样的经历使我心痛!!!spa

请一样有如此感悟的同窗联系我吧!我们约学习啊!不作完不睡觉那种。

 

测试用例:

aaaaa

aaaaa1
aaaaa

aaaa \t bbbb


aabb1,123aacc123aacc123aacc,aabb1

 

结果:

 

耗时:

< Elapsed Time: 0.007 >

 

完整的博客下周把其余内容块补上再从新发吧!

相关文章
相关标签/搜索