《一個(gè)完整的從語(yǔ)言寫的電子字典源碼》由會(huì)員分享,可在線閱讀,更多相關(guān)《一個(gè)完整的從語(yǔ)言寫的電子字典源碼(3頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、文檔供參考,可復(fù)制、編制,期待您的好評(píng)與關(guān)注!
C語(yǔ)言項(xiàng)目——查字典
【項(xiàng)目需求描述】
一、單詞查詢
給定文本文件“dict.txt”,該文件用于存儲(chǔ)詞庫(kù)。詞庫(kù)為“英-漢”,“漢-英”雙語(yǔ)詞典,每個(gè)單詞和其解釋的格式固定,如下所示:
#單詞
Trans:解釋1@解釋2@…解釋n
每個(gè)新單詞由“#”開頭,解釋之間使用“@”隔開。一個(gè)詞可能有多個(gè)解釋,解釋均存儲(chǔ)在一行里,行首固定以“Trans:”開頭。下面是一個(gè)典型的例子:
#abyssinian
Trans:a. 阿比西尼亞的@n. 阿比西尼亞人;依索比亞人
該詞有兩個(gè)解釋,一個(gè)是“a. 阿比西尼亞的”;另一個(gè)是“n.
2、阿比西尼亞人;依索比亞人”。
要求編寫程序?qū)⒃~庫(kù)文件讀取到內(nèi)存中,接受用戶輸入的單詞,在字典中查找單詞,并且將解釋輸出到屏幕上。用戶可以反復(fù)輸入,直到用戶輸入“exit”字典程序退出。
程序執(zhí)行格式如下所示:
./app –test2
-test2表示使用文本詞庫(kù)進(jìn)行單詞查找。
二、建立索引,并且使用索引進(jìn)行單詞查詢
要求建立二進(jìn)制索引,索引格式如下圖所示。將文本文件“dict.txt”文件轉(zhuǎn)換為上圖所示索引文件“dict.dat”,使用索引文件實(shí)現(xiàn)單詞查找。程序執(zhí)行格式如下:
./app –index
-index表示使用文本詞庫(kù)dict.txt建立二進(jìn)制索引詞庫(kù)dict.d
3、at
./app –test2
-test2表示使用二進(jìn)制索引詞庫(kù)進(jìn)行單詞查找。
三、支持用戶自添加新詞
用戶添加的新詞存放在指定文件中。如果待查單詞在詞庫(kù)中找不到,則使用用戶提供的詞庫(kù)。用戶的詞庫(kù)使用文本形式保存,便于用戶修改。程序執(zhí)行格式圖1-1所示。
./app 詞庫(kù)選擇選項(xiàng) -f 用戶詞庫(kù)文件名
詞庫(kù)選項(xiàng)為-test1,或者-test2,表示使用文本詞庫(kù)或者二進(jìn)制索引詞庫(kù)。-f為固定參數(shù),用來(lái)指定用戶詞庫(kù)文件名。
圖1-1
【項(xiàng)目要求】
q 盡量考慮程序執(zhí)行的效率,盡量減少開銷,提高程序速度
q 盡量考慮模塊化程序設(shè)計(jì)思想,能夠引入面向?qū)ο蟮脑O(shè)計(jì)模式和方法
4、
q 保證代碼的可讀性,緊湊的組織代碼
q 清晰設(shè)計(jì)思想和設(shè)計(jì)思路,代碼實(shí)現(xiàn)盡量簡(jiǎn)潔
q 可以完成相應(yīng)的拓展功能,例如用戶自添加單詞,建立索引以提高查找速度等
【考察知識(shí)點(diǎn)】
(1) 變量數(shù)據(jù)類型
(2) 數(shù)組
(3) 結(jié)構(gòu)體
(4) typedef關(guān)鍵字的使用
(5) 控制結(jié)構(gòu)
(6) 函數(shù)接口設(shè)計(jì)
(7) static關(guān)鍵字的使用
(8) 文件拆分與代碼組織
(9) 模塊化設(shè)計(jì)思想
(10) 簡(jiǎn)單的面向?qū)ο蟪绦蛟O(shè)計(jì)思想
(11) 指針與指針控制
(12) const關(guān)鍵字的使用
(13) C語(yǔ)言程序的命令行參數(shù)
(14) 多文件符號(hào)解析
(15) 頭文件包含
(16) 宏
(17) 條件編譯
(18) 字符串操作
(19) malloc函數(shù)
(20) 常用的字符串庫(kù)函數(shù)
(21) 文件操作
(22) 簡(jiǎn)單的出錯(cuò)處理
(23) 排序算法和二分查找算法
(24) 二進(jìn)制文件和文本文件的區(qū)別
(25) 鏈表操作
(26) makefile的使用
(27) 編程工具的使用(vi,gcc,gdb)
(28) 文檔組織和項(xiàng)目規(guī)劃
【未考察到的知識(shí)點(diǎn)】
(1) 變參函數(shù)
(2) 函數(shù)指針
(3) 泛型算法
(4) 復(fù)雜鏈表的鏈表操作
(5) 棧和隊(duì)列
(6) 二叉樹
218 / 3