【正文】
CB文本輸入組件的特性,設(shè)計了如下界面: 圖338 圖搜索界面圖圖搜索的運行結(jié)果如圖330所示: 圖339 圖搜索運行結(jié)果 開 始生成頂點設(shè)定連線執(zhí)行搜索停 止 圖340 圖搜索流程圖如圖331所示流程,模塊運行后,單擊“生成頂點”按鈕,將在右下方出現(xiàn)提示:“請在繪圖窗口中點擊鼠標右鍵”以生成所畫圖的頂點,然后點擊“設(shè)定連線”,選擇要連線的兩個頂點序號,這里可以多次連線任意兩個頂點。接下來就可以點擊“執(zhí)行搜索”按鈕,系統(tǒng)提示輸入所要搜索的值。圖的最短路徑設(shè)計:求從源點到其余各點的最短路徑的算法的基本思想:依最短路徑的長度遞增的次序求得各條路徑。路徑長度最短的最短路徑的特點:在這條路徑上,必定只含一條弧,并且這條弧的權(quán)值最小。 下一條路徑長度次短的最短路徑的特點:它只可能有兩種情況:或者是直接從源點到該點(只含一條弧); 或者是,從源點經(jīng)過頂點v1,再到達該頂點(由兩條弧組成)。再下一條路徑長度次短的最短路徑的特點:它可能有三種情況:或者是,直接從源點到該點(只含一條弧); 或者是,從源點經(jīng)過頂點v1,再到達該頂點(由兩條弧組成);或者是,從源點經(jīng)過頂點v2,再到達該頂點。其余最短路徑的特點:它或者是直接從源點到該點(只含一條弧); 或者是,從源點經(jīng)過已求得最短路徑的頂點,再到達該頂點。根據(jù)以上求最短路徑的思想,設(shè)計了如圖332的界面: 圖341 最短路徑界面圖以下就是程序的運行結(jié)果,如圖333所示: 圖342 最短路徑運行結(jié)果開 始生成頂點設(shè)定邊線最佳路徑選擇按鈕繪 圖修 改清 除 圖343 圖最短路徑流程圖如圖334所示流程,模塊運行后,單擊“生成頂點”按鈕,再生成頂點后,單擊“設(shè)定邊線”,選擇要連線的兩個頂點序號,以及這兩個頂點連線的距離值,連線完畢,點擊“OK”按鈕,在點擊“最短路徑”按鈕,此時系統(tǒng)將彈出一個消息框來告訴你到目的頂點的最短路徑是多少。本模塊探討的是最短路徑的問題,解決這個問題能幫助節(jié)約時間成本。系統(tǒng)初步完成后,考慮到本系統(tǒng)的可操作性,我們又設(shè)計了幫助模塊,本模塊由關(guān)于和幫助兩部分組成,關(guān)于是設(shè)計一個Form1的對話框來顯示本系統(tǒng)的設(shè)計者和設(shè)計時間,是個很簡單的操作,如圖335所示,現(xiàn)介紹一下幫助模塊的基本功能和作用。進去幫助模塊后,將在最右邊出現(xiàn)幫助主題和幫助信息兩個對話框,在幫助主題里,把所有幫助信息按照樹型結(jié)構(gòu)列出,其中包括線性表、堆棧、隊列、樹、圖,點擊其中的任何一個,都會在幫助信息欄里出現(xiàn)相應(yīng)的文字幫助。關(guān)于的模塊: 圖344 關(guān)于界面圖幫助模塊如圖336所示: 圖14幫助界面圖 圖345 幫助界面圖 結(jié)束語通過幾個月的學習C/C++語言,以及使用C++Builder開發(fā)工具,并在老師和同學的幫助下完成了數(shù)據(jù)結(jié)構(gòu)算法演示系統(tǒng)的設(shè)計。數(shù)據(jù)結(jié)構(gòu)算法演示系統(tǒng)是一個動態(tài)演示數(shù)據(jù)結(jié)構(gòu)算法執(zhí)行過程的輔助教學系統(tǒng),它可適應(yīng)用戶對算法的輸入數(shù)據(jù)和過程執(zhí)行的控制的不同需求,在計算機的屏幕上顯示算法執(zhí)行過程中數(shù)據(jù)的邏輯結(jié)構(gòu)或存儲結(jié)構(gòu)的變化狀況或遞歸算法執(zhí)行過程中棧的變化狀況。整個系統(tǒng)使用菜單驅(qū)動方式,每個菜單包括若干選項。每個菜單項對應(yīng)一個動作或一個子菜單。系統(tǒng)一直處于選擇菜單項或執(zhí)行動作狀態(tài),直到選擇了退出動作為止,它分別演示了數(shù)組、堆棧、隊列、線形表、樹、圖等基本數(shù)據(jù)結(jié)構(gòu)的概念。系統(tǒng)中也存在這樣或那樣的不足之處:,其中包括一元多項式的表示及相加、表達式求值、數(shù)制轉(zhuǎn)換等;,都是一步操作,沒能實現(xiàn)單步操作,沒能更好的結(jié)合算法單步執(zhí)行程序??梢园堰@些相關(guān)的算法做成程序添加到本系統(tǒng)中來。這些都有待以后進一步完善。數(shù)據(jù)結(jié)構(gòu)算法演示系統(tǒng)具有操作便捷、形象生動等特點,對于深化對數(shù)據(jù)結(jié)構(gòu)算法的理解,提高計算機程序設(shè)計水平具有很好的促進作用,能有效地改善數(shù)據(jù)結(jié)構(gòu)算法教學的質(zhì)量和效率,在學習和生活中,具有較廣泛的應(yīng)用,值得做進一步的研究和推廣。本人也通過做這個系統(tǒng)從中加深了對數(shù)據(jù)結(jié)構(gòu)相關(guān)算法的理解。數(shù)據(jù)結(jié)構(gòu)是諸多計算機課程中尤其主要的一門課程,學好數(shù)據(jù)結(jié)構(gòu)對以后學習其他相關(guān)課程有很大的幫助,而開發(fā)的這個演示系統(tǒng)能更好幫助大家理解數(shù)據(jù)結(jié)構(gòu)中的一些算法。謝 辭經(jīng)過四個月的畢業(yè)設(shè)計,數(shù)據(jù)結(jié)構(gòu)算法演示系統(tǒng)已設(shè)計完畢。本系統(tǒng)能夠完成線性鏈表、堆棧、隊列,圖和樹等算法的演示功能。由于個人設(shè)計水平有限,所該系統(tǒng)還有許多不盡如人意的地方,比如用戶界面不夠美觀,出錯處理不夠等多方面問題。這些都待有進一步改善。但在本次畢業(yè)設(shè)計中,也使我收益非淺,熟練的掌握了如何使用C++Builder開發(fā)工具,加深了對C/C++語言知識的理解以及。對數(shù)據(jù)結(jié)構(gòu)的知識的理解上有進一步的突破,在程序的調(diào)試過程中,讓我感覺深刻的就是解決問,在畢業(yè)設(shè)計的這段期間,我要特別感謝我的指導老師。在畢業(yè)設(shè)計期間,老師淵博的學識,誨人不倦的精神,嚴謹治學的態(tài)度,以及對我們的嚴格要求都使我深深難忘,從中受益非淺。從她身上我學到了很多很多,這些都將指導我今后的學習。而她在我的畢業(yè)設(shè)計過程中給予了我熱情的幫助,從整個系統(tǒng)的需求分析、總體設(shè)計及某些細節(jié)之處到論文的撰寫都給予了具體指導。為我以后從事計算機的工作積累了許多經(jīng)驗。同時我還要感謝我的輔導老師,正是因為她的辛勤教導,才有我們今天的成果。最后我還要感謝我的同學,感謝你們畢業(yè)設(shè)計期間里對我的幫助。通過四個月的畢業(yè)設(shè)計,一個數(shù)據(jù)結(jié)構(gòu)算法演示系統(tǒng)已經(jīng)成型。但在某些地方肯定存在了許多的不足之處。希望大家能給我提出寶貴的意見。參考文獻[1] 余明興、 c++ builder 5實例精解[M].清華大學出版社,[2] ++ builder程序員學習數(shù)據(jù)結(jié)構(gòu)[M].人民郵電出版社,2003[3] ++ builder編程技巧、經(jīng)驗與實例[M].人民郵電出版社,[4] 葛一楠、李智慧、++ builder篇[M].國防工業(yè)出版社,[5] 嚴蔚敏、(C語言版) [M].清華大學出版社,[6] [M].中國水利水電出版社,[7] 徐孝凱. C++語言基礎(chǔ)教程[M].清華大學出版社,[8] 吳逸賢、 c++ builder 6程序設(shè)計[M].科技出版社,[9] ++ builder程序設(shè)計教程[M].冶金工業(yè)出版社,[10] 郭文夷、 c++ builder [M].西安電子科技大學出版社,[11]Horowitz E、Sahni S. Fundamentals of Data Structures. Pitmen Publishing Limites,1976 [12]Gotlied C C、Gotlied L R. Data Types and Structures. PrenticeHall Inc.,1978附錄附錄A 外文翻譯-原文部分DATA AND STRUCTURE1. DATA TYPES AND DATA STRUCTURESBefore defining the specifics of data types and data structures, let us first define a term that will be used throughout this text. A data value is a piece of data that we can consider, perhaps only momentarily, as a single entity. We might consider, for example, the integer value 593 as a single data value.The set {, —, } might be considered in its entirety a single data value. It might also be considered to be posed of three distinct ponent values that are somehow related. In this case, their relationships to each other are that they are members of the same set. If we depose a data value as we have done with the set value, we need term for the pieces that result. Each piece is a value of another data type in this case real. We will call these ponent values ponent elements, or simply elements.If a data value can be deposed into ponent parts, we call each part a ponent element.An atomic data value is a piece of data that we choose to consider as a single, no deposable entity. For example, the integer 62953 may be considered as a single integer value stored on this sheet of paper. We can depose it if we wish to do so. The integer 62953 could be seen as a collection of digits stored on the page in a lefttoright order. Each digit —6,2,9,5, and 3 —could either be considered to be atomic or be viewed as collections of dots of ink (suppose we are using a dotmatrix printer).If we choose to consider 62953 as a single, no deposable entity, we may do so. If we wish to depose it in any of a number of ways, we may do so. The decision to depose is strictly at our discretion.What is a data type? The essence of a type is that it attempts to identify qualities mon to a group of individuals or objects that distinguish it as an identifiable class or kind. If we provide a set of possible data values and a set of operations that act on the values, we can think of the bination as a data type Data Type(1).A set of values;(2).A set of operation on those valuesLet us look at two classes of data types. We will call any data type whose values we choose to consider atomic an atomic data type. Often, we choose to consider integers to be atomic. We are then only concerned with the single quantity that a value represents, not with the fact that an integer is a set of digits in some number system. Integer is a mon atomic data type found in most programming languages and in most puter architectures.We will call any data type whose values are posed of ponent elements that are related by some structure a structured data type, or da