軟工實踐第二次做業

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 >

 

完整的博客下週把其餘內容塊補上再從新發吧!

相關文章
相關標籤/搜索