此作業的要求參見[
codding專案位址
github位址
詞頻統計 spec
功能實現
首先要寫乙個詞頻統計功能,方便進行多次呼叫,詞頻統計功能關鍵點主要是去除多餘字元,將單詞改為小寫,使用合適的資料結構(這裡使用hashtable)統計和排序。
hashtable 乙個雜湊表,可以快速進行插入查詢刪除操作,但是不能進行排序,需要改成普通陣列排序。
public static void countwords(string text)//統計單詞功能其次寫出根據題目要求寫出分流操作 功能關鍵點:讀取命令列引數,讀取檔案內容。else
}outputinfo(ht);
}public static void outputinfo(hashtable ht)//輸出資訊
}
static void main(string args)最後補全各個功能。功能關鍵點:遍歷目錄列表,檔名查詢,控制台輸入,重定向輸入。else
else if (args.length > 1 && args[0] == "-s")//自定義檔案模式
}else if (args.length == 1 && args[0] != "-s")//已有檔案查詢模式
else
else if (file.exists(args[0] + ".txt"))
else scanfile(args[0]);}}
}}
public static void scandir(string dir)//掃瞄目錄功能演示}public static void scanfile(string file)//搜尋檔案
else if (file.exists(fullname1))
else continue;
}}public static void writetext()//文字輸入模式
public static void readconsoleinput()//標準輸入模式
else
else
}word = "";
}a = console.read();
}outputinfo(ht);
}
功能1 小檔案輸入。
功能2 支援命令列輸入英文作品的檔名,請老五親自錄入。
功能3 支援命令列輸入儲存有英文作品檔案的目錄名,批量統計。
功能4 從控制台讀入英文單篇作品,
遇到的一些問題:
作業中給的測試例項中統計是不準確的。比如下面這個例子
測試例子中會出現多個英文單詞,最後導致統計數量偏少,應該加強特殊字元過濾。現在我的程式已經修復可以正常統計。
附加題
統計5字母單詞出現次數最多的十個 格式 wf -n 單詞字母數量 -t 顯示出現的單詞數量 -s 檔案
統計6字母單詞出現次數最多的二十個
統計6字母單詞出現次數最多的一百個
關鍵點:自定義入口,判斷字串數量
自定義入口功能
int n = 0;判斷字串數量加一句s.length==ennum就可以了int t = 0;
string file = "";
for (int i = 0; i < args.length; i++)
if (args[i] == "-n")
if (args[i] == "-t")
if (args[i] == "-s")
}if (t == 0) t = 10;
if (n > 0 && t > 0 && file != "") else
psp
(8分)
(5分。雖然只有5分,但此題如果做錯,因為教師得不到你的**,所以會導致「功能實現」為負分。)
**要求在 coding.net 做版本控制。要求push&pull時使用git客戶端,不允許使用web頁面
專案位址
測試
「從控制台讀入英文單篇作品」中的英文作品,包括不限於[中的測試用例。大量英文原版(無版權,不是盜版)的測試用例在[可以找到。
PTA 詞頻統計
請編寫程式,對一段英文文字,統計其中所有不同單詞的個數,以及詞頻最大的前10 的單詞。所謂 單詞 是指由不超過80個單詞字元組成的連續字串,但長度超過15的單詞將只擷取保留前15個單詞字元。而合法的 單詞字元 為大小寫字母 數字和下劃線,其它字元均認為是單詞分隔符。輸入給出一段非空文字,最後以符號 ...
詞頻統計(上機)
include include include define error 1 define ok 0 const int word length 250 定義單個單詞最大長度 typedef int status 定義儲存單詞及其出現次數的結構體 typedef struct nodewordnod...
hamlet詞頻統計
part2 code 10.1calhamlet.py def gettext txt open hamlet.txt r read 將文字中的英文本母全部轉為小寫字母 txt txt.lower return txt hamlettxt gettext words hamlettxt.split ...