【正文】
性 待定。 公共方法 newDemonGUI():void 創(chuàng)建系統(tǒng)主界面。 SqList():void 當按下按鈕“順序表”時,該方法被調(diào)用。 LinkList():void 當按下按鈕“鏈表”時,該方法被調(diào)用。 orderTree():void 當按下按鈕“二叉樹遍歷”時,該方法被調(diào)用。 threTree():void 當按下按鈕“二叉樹線索化”時,該方法被調(diào)用。 huffmanCode():void 當按下按鈕“赫 夫曼樹 ”時,該方法被調(diào)用。 topoSort():void 當按下按鈕“拓撲排序”時,該方法被調(diào)用。 sort():void 當按下按鈕“內(nèi)部排序”時,該方法被調(diào)用。 2) 類 ListDialog 界面類 ListDialog 是用來演示順序表和鏈表所需的對話框,其界面如圖 所示。當按下主窗口 DemonGUI 中的按鈕“順序表”或“鏈表”時,該對話框彈出。當按下 畢業(yè)設(shè)計(論文)專用紙 第 頁 27 “順序表”時,“鏈表相關(guān)操作“不可用,如果選擇“插入”,相對應(yīng)的標簽改為“插入元素”和“插入位置”;如果選擇“刪除” ,把對應(yīng)的標簽改為“刪除位置” ,并把“插入元素”對應(yīng)的編輯框變得不可用。當按下“鏈表表”時,“順序表相關(guān)操作“不可用,如果選擇“插入”,相對應(yīng)的標簽改為“插入元素”和“插入位置”;如果選擇“刪除”,把對應(yīng)的標簽改為“刪除位置” ,并把“插入元素”對應(yīng)的編輯框變得不可用;如果選擇“創(chuàng)建”,只有“建立數(shù)據(jù)”可用,其他都 不 可用。 圖 界面 ListDialog 私有屬性 待定。 公共方法 newListDialog():void 創(chuàng)建用于填寫順序表的插入、刪除和鏈表創(chuàng)建、插入、刪除信息的窗口。 ins_sqList(): void 當按下“順序表”,選擇“插入”時,該方法被調(diào)用。 del_sqList(): void 當按下“順序表”,選擇“刪除”時,該方法被調(diào)用。 ins_linkList(): void 畢業(yè)設(shè)計(論文)專用紙 第 頁 28 當按下“鏈表”,選擇“插入”時,該方法被調(diào)用。 del_linkList(): void 當按下“鏈表”,選擇“刪除”時,該方法被調(diào)用。 crt_linkList():void 當按下“鏈表”,選擇“創(chuàng)建”時,該方法被調(diào)用。 3) 類 TreeDialog 界面類 TreeDialog 是用來演示 二叉樹的遍歷 、線 索化和拓撲排序所需的對話框,其界面如圖 所示。當按下主窗口 DemonGUI 中的按鈕“二叉樹遍歷”、“二叉樹線索化”或“拓撲排序”時,該對話框彈出。由于二叉樹的三種遍歷和三種線索化都差不多,因此,在這我就以中序遍歷和中序線索化為例。彈出的對話框根據(jù)所選的按鈕不同, form的標題也顯示不同,為“建立二叉樹”、“建立線索化二叉樹”或“輸入有向圖”。 圖 TreeDialog 私有屬性 待定。 公共方法 畢業(yè)設(shè)計(論文)專用紙 第 頁 29 newTreeDialog():void 用于創(chuàng)建二叉樹或線索化二叉樹的窗口。 in_ Order (): void 當按下“二叉樹遍歷”,選擇“確定”時,該方法被調(diào)用。 in_ Thre (): void 當按下“二叉樹線索化”,選擇“確定”時,該方法被調(diào)用。 TopoSort (): void 當按下“拓撲排序”,選擇“確定”時,該方法被調(diào)用。 4) 類 HCDialog 界面類 HCDialog 是用來演示 赫 夫曼樹 所需的對話框,其界面如圖 所示。當按下主窗口 DemonGUI 中的按鈕“ 赫 夫曼樹 ”時,該對話框彈出。 私有屬性 待定。 圖 HCDialog 公共方法 newHCDialog():void 用于創(chuàng)建赫 夫曼樹 的窗口。 huffmanCode():void 當按下按鈕“赫 夫曼樹 ”,選擇“確定”時,該方法被調(diào)用。 5) 類 SortDialog 界面類 HCDialog 是用來演示 內(nèi)部排序 所需的對話框,其界面如圖 所示。當按下主窗口 DemonGUI 中的按鈕“ 內(nèi)部排序 ”時,該對話框彈出。 畢業(yè)設(shè)計(論文)專用紙 第 頁 30 圖 SortDialog 私有屬性 待定。 公共方法 newSortDialog():void 用于創(chuàng)建內(nèi)部排序的窗口。 ShellSort():void 當按下按鈕“內(nèi)部排序”,選擇“希爾排序”時,該方 法被調(diào)用。 QuickSort(): void 當按下按鈕“內(nèi)部排序”,選擇“快速排序”時,該方法被調(diào)用。 6) 類 MainForm 界面類 MainForm是用于顯示各個算法的對話框。該對話框?qū)λ惴▌討B(tài)演示進行控制。詳細部分會在第 4 章說明。 私有屬性 待定。 公共方法 newMainForm():void 用于創(chuàng)建演示的窗口。 ShowCode(): void 當運行 MainForm時,該方法被調(diào)用。 ShowDemon(): void 畢業(yè)設(shè)計(論文)專用紙 第 頁 31 當運行 MainForm時,該方法被調(diào)用。 ShowBL(): void 當運 行 MainForm時,該方法被調(diào)用。 ShowThink(): void 當按下按鈕“設(shè)計思想“時,該方法被調(diào)用。 Return():void 當按下按鈕“返回“時,該方法被調(diào)用。 SetData() : void 當按下按鈕“數(shù)據(jù)“時,該方法被調(diào)用。 ReStart(): void 當按下按鈕“恢復(fù)“時,該方法被調(diào)用。 Run():void 當按下按鈕“執(zhí)行“時,該方法被調(diào)用。 Stopped():void 當按下按鈕“暫?!皶r,該方法被調(diào)用。 建立類圖 識別出系統(tǒng)中的類后,還要識別出類間的 關(guān)系,然后就可以建立類圖了。 ListDialog、TreeDialog、 HCDialog、 SortDialog 是 DemonGUI 的一部分,因此它們與類 DemonGUI之間是組合關(guān)系,同理, MainFrom與類 ListDialog、 TreeDialog、 HCDialog、 SortDialog之間也是組合關(guān)系。 sqList、 linkList、 Tree、 HuffmanCode、 TopoSort、 Sort 與類 MainFrom之間是依賴關(guān)系 。類 OrderTree、 ThreTree 繼承了類 bitree 類間的關(guān)系如圖 。 動態(tài)行為模型 系統(tǒng)的動態(tài)行為模型可以用交互作用圖、狀態(tài)圖和活動圖來描述?;顒訄D強調(diào)了從活動到活動的控制流,而交互圖則強調(diào)從對象到對象的控制流,本人采用時序圖來描述為完成某個特定功能發(fā)生在系統(tǒng)對象之間的信息交換。 描述本系統(tǒng)用例場景的時序圖如下: 畢業(yè)設(shè)計(論文)專用紙 第 頁 32 + n e w D e m o n G U I ( ) : v o i d+ S q L i s t ( ) : v o i d+ L i n k L i s t ( ) : v o i d+ o r d e r T r e e ( ) : v o i d+ t h r e T r e e ( ) : v o i d+ h u f f m a n C o d e ( ) : v o i d+ t o p o S o r t ( ) : v o i d+ s o r t ( ) : v o i dD e m o n G U I+ n e w L i s t D i a l o g ( ) : v o i d+ i n s _ s q L i s t ( ) : v o i d+ d e l _ s q L i s t ( ) : v o i d+ i n s _ l i n k L i s t ( ) : v o i d+ d e l _ l i n k L i s t ( ) : v o i d+ c r t _ l i n k L i s t ( ) : v o i dL i s t D i a l o g+ n e w T r e e D i a l o g ( ) : v o i d+ i n _ O r d e r ( ) : v o i d+ i n _ T h r e ( ) : v o i d+ T o p o S o r t ( ) : v o i dT r e e D i a l o g+ n e w H C D i a l o g ( ) : v o i d+ h u f f m a n C o d e ( ) : v o i dH C D i a l o g+ n e w S o r t D i a l o g ( ) : v o i d+ S h e l l S o r t ( ) : v o i d+ Q u i c k S o r t ( ) : v o i dS o r t D i a l o g+ n e w M a i n F o r m ( ) : v o i d+ S h o w C o d e ( ) : v o i d+ S h o w D e m o n ( ) : v o i d+ S h o w B L ( ) : v o i d+ S h o w T h i n k ( ) : v o i d+ R e t u r n ( ) : v o i d+ S e t D a t a ( ) : v o i d+ R e S t a r t ( ) : v o i d+ R u n ( ) : v o i d+ S t o p p e d ( ) : v o i dM a i n F o r m+ t r a n s f e r ( i n s t r : s t r i n g , i n amp。 L : s q L i s t ) : v o i d+ i n s _ s q L i s t ( i n amp。 L : s q L i s t , i n x : c h a r , i n i : i n t ) : v o i d+ d e l _ s q L i s t ( i n amp。 L : s q L i s t , i n i : i n t ) : v o i ds q L i s t+ c r t _ l i n k L i s t ( i n n : i n t , i n amp。 L : l i n k L i s t ) : v o i d+ i n s _ l i n k L i s t ( i n amp。 L : l i n k L i s t , i n x : c h a r , i n i : i n t ) : v o i d+ d e l _ l i n k L i s t ( i n amp。 L : l i n k L i s t , i n i : i n t ) : v o i dl i n k L i s t+ C r t _ T r e e ( i n b t : b i t r e e ) : v o i db i t r e e+ p r e _ O r d e r ( i n b t : b i t r e e ) : v o i d+ i n _ O r d e r ( i n b t : b i t r e e ) : v o i d+ P o s t _ O r d e r ( i n b t : b i t r e e ) : v o i dO r d e r T r e e+ p r e _ T h r e ( i n b t : b i t r e e ) : v o i d+ i n _ T h r e ( i n b t : b i t r e e ) : v o i d+ P o s t _ T h r e ( i n b t : b i t r e e ) : v o i dT h r e T r e e+ H u f f m a n C o d i n g ( i n amp。 H T : b i t r e e , i n amp。 H C : H u f f m a n C o d e , i n w : i n t , i n n : i n t ) : v o i dH u f f m a n C o d e+ T o p o l o g i c a l S o r t ( i n G : A L G R A P H ) : v o i dT o p o S o r tA L G R A P H+ S h e l l S o r t ( i n a [ ] : i n t , i n n : i n