資源描述:
《internet域名查詢系統(tǒng)的設(shè)計與實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、成績本科生課程設(shè)計任務(wù)書2010—2011學(xué)年夏季學(xué)期信息與電氣工程學(xué)院學(xué)院計算機科學(xué)與技術(shù)專業(yè)課程設(shè)計名稱:數(shù)據(jù)結(jié)構(gòu)設(shè)計題目:因特網(wǎng)域名查詢系統(tǒng)的設(shè)計與實現(xiàn)完成期限:自2011年6月27日至2011年7月1日共1周設(shè)計依據(jù)、要求及主要內(nèi)容(可另加附頁):1.問題描述輸入某站點域名,在Internet域名系統(tǒng)樹型結(jié)構(gòu)(如下圖1所示)中進行搜索,直至域名全部匹配成功或匹配失??;若成功則給出該站點IP地址,否則給出找不到該站點的信息。圖1Internet域名系統(tǒng)的樹型結(jié)構(gòu)2.基本要求首先要實現(xiàn)一個反映域名結(jié)構(gòu)的樹,例
2、如清華大學(xué)站點www.tsinghua.edu.cn在該樹從根到葉子的各層結(jié)點就應(yīng)該是root、cn、edu、tsinghua、www。葉子結(jié)點www另有一個數(shù)據(jù)域,存放清華大學(xué)站點的IP地址166.111.9.2。3.測試數(shù)據(jù)可以選取經(jīng)常用到的著名站點的域名和IP地址為例構(gòu)建域名結(jié)構(gòu)的樹,一般應(yīng)該有30個左右的站點域名。例如:當輸入“www.tsinghua.edu.cn”時,輸出應(yīng)該為“166.111.9.2”;而輸入“www.tsinghuo.edu.cn”時(輸入錯誤),輸出應(yīng)該為“找不到服務(wù)器或發(fā)生DN
3、S錯誤”。4.實現(xiàn)提示樹的存儲結(jié)構(gòu)采用二叉鏈表結(jié)構(gòu)。二叉鏈表的樹結(jié)構(gòu)是一種動態(tài)結(jié)構(gòu),除第一次生成的過程需要人工輸入數(shù)據(jù)外,以后每次進行搜索查詢時,應(yīng)該首先從文件中保存的數(shù)據(jù)自動生成樹結(jié)構(gòu)。為解決二叉鏈表與文件之間的轉(zhuǎn)換,可以通過先序遍歷的辦法保存和恢復(fù)二叉鏈表。例如一個二叉鏈表的文件保存形式如圖2所示:ABCDFGEH數(shù)據(jù)左標記右標記DATALGRGA11B01D11F00G00C10E01H00二叉樹文件保存形式圖2一個二叉鏈表的文件保存形式5.問題討論實際使用中,樹結(jié)構(gòu)使用機會比二叉樹還要多,一般情況下都采用
4、孩子兄弟鏈表作為樹的存儲結(jié)構(gòu),此時也可以將樹視作二叉樹,并將對樹進行的操作轉(zhuǎn)換成對二叉樹的相應(yīng)操作。6.課程設(shè)計要求提交的規(guī)范說明格式(1)問題描述;(2)需求分析;(3)概要設(shè)計;(4)詳細設(shè)計;(5)調(diào)試分析;(6)使用說明;(7)測試結(jié)果;(8)附錄(帶注釋的源程序)。參見“數(shù)據(jù)結(jié)構(gòu)課程設(shè)計概述.pdf”和“數(shù)據(jù)結(jié)構(gòu)課程設(shè)計示例.pdf”。指導(dǎo)教師(簽字):系主任(簽字):批準日期:2011年月日注:此任務(wù)書由課程設(shè)計指導(dǎo)教師填寫1.問題描述1)題目要求利用二叉樹來實現(xiàn)域名IP查找、添加、編輯功能。2)基本
5、要求輸入某站點域名,在Internet域名系統(tǒng)樹型結(jié)構(gòu)(如下圖1所示)中進行搜索,直至域名全部匹配成功或匹配失?。蝗舫晒t給出該站點IP地址,否則給出找不到該站點的信息。圖1Internet域名系統(tǒng)的樹型結(jié)構(gòu)3)測試數(shù)據(jù)以上圖為例,如果用戶輸入www.pku.edu.cn該域名,則查詢系統(tǒng)給出222.29.34.155。如果用戶輸入www.taobao.com改域名,則查詢系統(tǒng)給出不存在該域名的錯誤信息。用戶編輯已經(jīng)存在的域名和添加不存在的域名。2.需求分析1)本程序用以查詢數(shù)據(jù)庫中已經(jīng)存在的域名IP地址,并提供
6、添加和編輯域名IP信息功能。2)程序運行在DOS界面,提供數(shù)個有數(shù)字控制的選項。由用戶選擇選項后,再進行后續(xù)的輸入操作。如查詢,編輯,添加。3)用戶輸入完畢后,程序根據(jù)用戶的輸入,給出操作結(jié)果。不管成功還是失敗,都給出字符串信息。4)用戶輸入數(shù)據(jù)應(yīng)符合域名的規(guī)范,不然給出錯誤信息。3.概要設(shè)計為了實現(xiàn)相應(yīng)的程序功能,給出兩個與二叉樹貼近又符合域名系統(tǒng)的抽象數(shù)據(jù)類型。改進后的樹結(jié)點和樹的類型。1)樹結(jié)點的抽象數(shù)據(jù)結(jié)構(gòu)定義。ADTTreeNode{Data:一個域名樹的結(jié)點由兩個左右孩子的指針和字符數(shù)據(jù)指針組成。ch
7、ar*data;//數(shù)據(jù)格式www或.taobao或者0.0.0.0treeNode*left;treeNode*right;Operation:無}2)二叉域名樹的抽象數(shù)據(jù)結(jié)構(gòu)定義。ADTBintree{Data:域名數(shù)的數(shù)據(jù)有一個根結(jié)點和初始化標志位組成。boolinitalFlag;treeNode*root;//根結(jié)點,不附加內(nèi)容。左結(jié)點指向IP二叉樹Operation:Initialize初始條件:樹不存在輸入?yún)?shù):無實現(xiàn)功能:初始化一棵二叉樹輸出參數(shù):無操作結(jié)果:從數(shù)據(jù)文件構(gòu)造一個二叉域名樹,用根結(jié)點
8、左孩子指向該樹searchIP初始條件:樹已經(jīng)初始化輸入?yún)?shù):符合域名規(guī)格的網(wǎng)站地址實現(xiàn)功能:在二叉域名數(shù)中查找是否有用戶提供的網(wǎng)站的IP數(shù)據(jù)輸出數(shù)據(jù):IP數(shù)據(jù)或者失敗信息操作結(jié)果:二叉域名樹不變edit初始條件:樹已經(jīng)初始化輸入?yún)?shù):用戶提供的IP數(shù)據(jù),和該網(wǎng)站的地址實現(xiàn)功能:在二叉樹查找該網(wǎng)站地址,如果存在則修改其IP數(shù)據(jù),并把新數(shù)據(jù)寫到數(shù)據(jù)文件中。輸出參數(shù):成功信息