版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年現(xiàn)代農(nóng)業(yè)尿素肥料研發(fā)與應(yīng)用合作協(xié)議3篇
- 2024塑鋼門(mén)窗型材行業(yè)人才培訓(xùn)與交流合同3篇
- 2024年度房屋買(mǎi)賣(mài)中介服務(wù)與社區(qū)養(yǎng)老合作合同3篇
- 2024年標(biāo)準(zhǔn)工程分包合同模板版B版
- 2024年樓梯維修工程合同范本
- 2024年度影視娛樂(lè)產(chǎn)品銷(xiāo)售合同英文范本3篇
- 涂鴉班秋季課程設(shè)計(jì)
- c學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 2024年精裝修二手房轉(zhuǎn)讓及裝修合同示范文本3篇
- 2024外派海員聘用合同:船舶管理與協(xié)調(diào)員工范本3篇
- ce自我聲明模板
- 克與千克說(shuō)課課件
- 國(guó)開(kāi)電大行管本科《政府經(jīng)濟(jì)學(xué)》期末考試總題庫(kù)2024版
- 生產(chǎn)與運(yùn)作管理第三版課后習(xí)題含答案版
- 高頻考點(diǎn)之評(píng)價(jià)與文本互證考題專練-2024年高考語(yǔ)文二輪復(fù)習(xí)三點(diǎn)突破講解專練
- 《高鐵酸鉀的制備》課件
- 上海財(cái)經(jīng)大學(xué)《801經(jīng)濟(jì)學(xué)》歷年考研真題及詳解
- 城市交通樞紐運(yùn)營(yíng)故障應(yīng)急預(yù)案
- 料場(chǎng)加工施工方案
- 專題06課內(nèi)閱讀(解析版)-2021-2022年(兩年真題)全國(guó)三年級(jí)上學(xué)期語(yǔ)文期末試卷分類匯編
- 矯治器與矯治技術(shù)-常用活動(dòng)矯治器(口腔正畸學(xué)課件)
評(píng)論
0/150
提交評(píng)論