東華oj物件導向統計單詞

2021-10-14 08:52:04 字數 1641 閱讀 7033

18 統計單詞

問題描述 :

實驗目的:string、vector、類的綜合應用。

實驗內容:

從鍵盤輸入一篇文章,統計其中單詞出現的次數(不區分大小寫),並輸出出現次數排名第一的單詞及其次數。注意:可能有多個單詞並列第一,需要全部輸出。輸出時,如果有多個單詞排名並列,則按其在文章**現的先後順序輸出,先出現的先輸出。

說明:為簡單起見,單詞的含義是空白字元分隔開的連續字串。比如「i love china!」這句話包含三個單詞,第三個單詞是「china!」(包括其中的感嘆號),再如「hi !」,這句話包含兩個單詞,第二個單詞僅為乙個感嘆號。

int main()

vectorvwc;

string str;

int i;

while(cin>>str)

displayresult(vwc);

return 0;

其中:

wordcount類:儲存單詞及其出現次數

tolower函式:傳入乙個字串,將其中大寫英文本母轉換為小寫、其餘字元保持不變,返回轉換後的結果。

countword函式:傳入乙個vector和乙個單詞,在vector中查詢該單詞是否已存在(注意:vector中的元素為wordcount物件,該物件有乙個屬性為單詞字串),如果已存在,則將其出現次數加1,否則在vector中新增乙個元素(wordcount物件),該元素儲存這個新的單詞及其出現次數(此時為1)。

displayresult函式:傳入乙個vector,輸出其**現次數最高的單詞及其次數。

請實現以上定義的wordcount類及三個函式。

輸入說明 :

輸入一篇文章,其中包含可見字元及空白字元(可能有換行)。

輸出說明 :

每個單詞佔一行,如果有n個單詞,則輸出n行,

每行首先輸出單詞(以小寫字母形式輸出),然後輸出乙個空格,再輸出單詞的出現次數。

單詞輸出的順序按照在文章**現的先後順序。

輸入範例:

abc abc, abc.

abc!

abc, def

def輸出範例:

abc, 2

def 2

#include

#include

#include

using

namespace std;

string tolower

(string &a)

return b;

}class

wordcount};

//非static型別變數不能類外初始化也不能類內定義時初始化//

void

countword

(vector

&c,string d)

//涉及更改stl的必須引用//}if

(!flag)

return;}

void

displayresult

(vector

&c)for

(int i=

0;isize()

;i++)}

intmain()

displayresult

(vwc)

;return0;

}

東華OJ基礎題90 選票統計

問題描述 學生會主席投票選舉工作正在舉行。本次投票將採用電腦統計選票的方式,當投票選舉正式開始後,同學們將排隊一 一走到電腦前,投上自己神聖的一票 在電腦前輸入乙個姓名,然後輸入回車表示確認。投票結束後顯示得票最高的同學姓名,該同學將當選為新一屆學生會主席。請程式設計統計投票。輸入說明 輸入包含多行...

東華OJ 基礎題 64統計字母

問題描述 輸入一串字串,以 結束,不分大小寫,統計其中每種英文本元出現的次數。輸入說明 你的程式需要從標準輸入裝置 通常為鍵盤 中讀入多組測試資料。每組輸入資料由一行組成,其中只包括大小寫的英文本母和 且以 結尾,每行字元數不超過100。兩組資料之間沒有多餘的空行。在行首和行尾沒有多餘的空格。輸出說...

東華OJ高階題68 最長的單詞

68 最長的單詞 問題描述 明明剛開始學習英語的時候,對英語有濃厚的興趣,但是隨著時間的推移,英語單詞量的增加,明明越來越覺得背單詞是一件相當痛苦的事情。於是他想出各種各樣的方法來增加背單詞的樂趣。這次他想出的方法是把所有要背的英語單詞排成一行,找出其中最長的乙個單詞來先背,然後劃去這個單詞,在剩下...