數(shù)據(jù)結(jié)構(gòu) C++ 簡(jiǎn)單英漢字典 實(shí)驗(yàn)報(bào)告_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu) C++ 簡(jiǎn)單英漢字典 實(shí)驗(yàn)報(bào)告_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu) C++ 簡(jiǎn)單英漢字典 實(shí)驗(yàn)報(bào)告_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu) C++ 簡(jiǎn)單英漢字典 實(shí)驗(yàn)報(bào)告_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu) C++ 簡(jiǎn)單英漢字典 實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí)驗(yàn)報(bào)告:簡(jiǎn)單英漢字典2011-12-22實(shí)現(xiàn)目標(biāo)及要求:1)利用散列表實(shí)現(xiàn)英漢字典;2) 實(shí)現(xiàn)散列表類,要求實(shí)現(xiàn)一種散列表:散列函數(shù)選取建議:將單詞轉(zhuǎn)成整數(shù),再用除留余數(shù)法獲得散列地址。沖突解決方法可采用開(kāi)散列法。3)實(shí)現(xiàn)字典類,字典數(shù)據(jù)存放在內(nèi)存,字典類中有兩個(gè)重要數(shù)據(jù)成員:字典數(shù)組:存放字典數(shù)據(jù)的數(shù)組(或線性表)。散列表對(duì)象:作為字典數(shù)據(jù)索引的散列表。散列表元素結(jié)構(gòu)包含單詞和對(duì)應(yīng)字典數(shù)據(jù)在字典數(shù)組中的下標(biāo),可通過(guò)散列表直接獲得單詞在字典數(shù)組的下標(biāo)。4) 利用上面兩個(gè)類實(shí)現(xiàn)英漢字典。5)界面要求:鍵盤(pán)輸入單詞,屏幕輸出解釋:界面菜單項(xiàng):1.添加新詞2.刪除單詞3.查字典查字典界面:請(qǐng)輸入英

2、文單詞:China中文翻譯:中國(guó)實(shí)驗(yàn)環(huán)境與工具:使用Microsoft Visual Studio 2010 在Windows7 64位環(huán)境下進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)思路:分如下N步:1. 先實(shí)現(xiàn)鏈結(jié)點(diǎn)類的結(jié)構(gòu)。2. 實(shí)現(xiàn)字典類的結(jié)構(gòu)。3. 實(shí)現(xiàn)詞條類的結(jié)構(gòu)。4. 實(shí)現(xiàn)詞條的散列表分類方法。5. 整合功能。主要的數(shù)據(jù)結(jié)構(gòu)如下:/Hash_head.h#include#include#includeusing namespace std;const int defaultDicSize=10;const int defaultTableSize=10;class ChainNodepublic:Entry

3、 EntryLink;ChainNode *link;templateclass Dictionarypublic:Dictionary(E e);Dictionary()delete ht;bool search(string,string &);bool search(string,string &,ChainNode *&);bool insert(E);bool insert(string,string);bool remove(string);void dicPos(E e);void outputDic();private:ChainNode *ht;int dicSize;/總詞

4、條數(shù)int tableSize;/每個(gè)索引容量;templateDictionary:Dictionary(E e)/計(jì)算詞條數(shù),作為字典最大長(zhǎng)度dicSize=0;while(edicSize.chinese!=)dicSize+;/初始化字典ht=new ChainNodedicSize;for(int i=0;idicSize;i+)hti.link=NULL;hti.EntryLink=Entry();templatevoid Dictionary:dicPos(E e)int i;ChainNode *p;for(i=0;idicSize;i+)insert(ei);template

5、bool Dictionary:insert(E ent)int k;ChainNode *p1,*p2;tableSize=5;k=ent.firstLetter()%tableSize;p1=&htk;if(p1-link!=NULL)p1=p1-link;while(p1-link!=NULL)p1=p1-link;p2=new ChainNode;p2-EntryLink=ent;p2-link=NULL;p1-link=p2;return 0;templatebool Dictionary:insert(string str1,string str2)Entry *e=new Ent

6、ry (str1,str2);insert(*e);return 1;templatevoid Dictionary:outputDic()int i;ChainNode *p1;for(i=0;itableSize;i+)/cout*endl;/coutiendl;/cout*link!=NULL)p1=p1-link;p1-EntryLink.output();/cout*endl;templatebool Dictionary:remove(string str)string result;ChainNode *ptr;if(search(str,result,ptr)=1)ptr-li

7、nk=ptr-link-link;return 1;elsereturn 0; templatebool Dictionary:search(string str,string &result)ChainNode *ptr;return search(str,result,ptr);templatebool Dictionary:search(string str,string &result,ChainNode *&ptr)int k;ChainNode *p1,*p2;Entry strEnt(str);k=strEnt.firstLetter()%dicSize;p1=&htk;if(p

8、1-link!=NULL)doptr=p1;p1=p1-link;if(p1-EntryLink.word=strEnt.word)result=p1-EntryLink.chinese;return 1;while(p1-link!=NULL);return 0;elsereturn 0;/Entry_head.h#include#include#includeusing namespace std;templateclass Entrypublic:K word;K chinese;public:Entry(K,K);Entry();Entry(K);void output();int f

9、irstLetter();templateEntry:Entry(K w,K c)word=w;chinese=c;templateEntry:Entry()word=;chinese=;templateEntry:Entry(K w)word=w;chinese=;templatevoid Entry:output()cout英文:wordendl;cout中文:chineseendlendl;templateint Entry:firstLetter()char *strv = strdup (word.c_str();/stringcharreturn int(strv0);主要代碼結(jié)構(gòu)

10、:/Hash_main.cpp#include#include#includeEntry_head.h#includeHash_head.husing namespace std;const int deafaultSize=10+1;int main()cout*endl;cout* *endl;cout* 大貓哥 *endl;cout* Make By LJDe.de *endl;cout* E-mail:LJDede *endl;cout* *endl;cout*endl;Entry edeafaultSize=Entry(eliminate,消除),Entry(accommodatio

11、n ,招待設(shè)備),Entry(convince ,使確信),Entry(conscience ,良心),Entry(lantern ,燈籠),Entry(procession ,隊(duì)伍),Entry(quit,離開(kāi)),Entry(pudding ,布丁),Entry(reaction ,反應(yīng)),Entry(shrink ,收縮),Entry();Dictionary Entry dic(e);int deed;string str1,str2;Entry *eLit;dic.dicPos(e);docoutendl*endl;cout1.查看已有的字典詞條。endl;cout2.添加新的詞條到字

12、典。endl;cout3.刪除已有詞條。endl;cout4.查字典。endl;cout5.清屏。endl;cout6.退出程序。endl;cout*endl;coutdeed;cout你選擇的操作是:deedendl;switch(deed)case 1:coutendl*endl;dic.outputDic();break;case 2:coutendl*endl;coutstr1;coutendl;coutstr2;coutendl;dic.insert(str1,str2);cout你輸入的詞條為:endlendl;eLit=new Entry (str1,str2);eLit-output();break;case 3:coutendl*endl;coutstr1;if(dic.remove(str1)cout刪除成功!endl;elsecout刪除失敗,目標(biāo)詞條不存在endl;break;case 4:coutendl*endl;coutstr1;dic.search(str1,str2);cout你要查詢的詞條為:endl;eLit=new Entry (str1,str2);eLit-output();break;case 5:coutendl*endl;system(cls);break;default:break;while(de

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論