【正文】
摘 要《數(shù)據(jù)結(jié)構(gòu)》作為信息類專業(yè)的一門(mén)核心專業(yè)課,對(duì)《編譯原理》等后續(xù)課程的學(xué)習(xí)極其重要。傳統(tǒng)的《數(shù)據(jù)結(jié)構(gòu)》算法是基于以Turbo C為代表的DOS開(kāi)發(fā)壞境,可視化效果很差。而這種壞境給學(xué)習(xí)者的理解和深入探討帶來(lái)很大的問(wèn)題。本設(shè)計(jì)從對(duì)數(shù)據(jù)結(jié)構(gòu)圖的算法的深入研究開(kāi)始,在Visual C++的編程壞境下,致力于開(kāi)發(fā)一套專門(mén)幫助學(xué)習(xí)者理解數(shù)據(jù)結(jié)構(gòu)算法的動(dòng)態(tài)演示系統(tǒng)。該系統(tǒng)將可視性,交互性和可擴(kuò)展性緊緊的結(jié)合在一起,能大大改善傳統(tǒng)教學(xué)的弊端,使復(fù)雜的難以理解的數(shù)據(jù)結(jié)構(gòu)算法通過(guò)教師的課堂演示和學(xué)習(xí)者的不斷自我交互式操作試驗(yàn)變得通俗明朗,有效地提高教學(xué)的質(zhì)量和效果。關(guān)鍵字:動(dòng)態(tài)演示系統(tǒng);Visual C++AbstractThe data structure as a core of information specialty courses, learning to followup such as the piling principles of course extremely important. Traditional algorithm is based on the data structure to DOS development represented TurboC borders, very poor visual effects. And this bad border to the learner39。s understanding and indepth discussions cause great problems. The design starts from the indepth study on data structure algorithm, programming in Visual C++ under bad border, is mitted to developing a set of specialized help learners understand data structure algorithm of dynamic demo system. The system of Visual, interactive bination of scalability and tightly together, can greatly improve the shortings of traditional teaching, so that plex, difficult to understand the data structure algorithms through teachers 39。 classroom presentations and continuous interactive operation test of learners being popular is clear, effectively improve the quality and effectiveness of teaching.Keywords: dynamic demo system。 Visual C++ 第1章 系統(tǒng)開(kāi)發(fā)平臺(tái)與環(huán)境 選題背景 課題來(lái)源《數(shù)據(jù)結(jié)構(gòu)》作為信息類專業(yè)的一門(mén)核心專業(yè)課,對(duì)《編譯原理》等后續(xù)課程的學(xué)習(xí)極其重要。但該課程涉及大量的概念、定義、模型和算法,尤其是圖的算法顯得很抽象和深?yuàn)W。用傳統(tǒng)的“粉筆+黑板”形式很難將算法的執(zhí)行過(guò)程動(dòng)態(tài)地演示出來(lái),影響了教學(xué)效果。傳統(tǒng)的《數(shù)據(jù)結(jié)構(gòu)》算法是基于以TurboC為代表的DOS開(kāi)發(fā)壞境,可視化效果很差。而這種壞境給學(xué)習(xí)者的理解和深入探討帶來(lái)很大的問(wèn)題。后來(lái),隨著多媒體技術(shù)的發(fā)展,《數(shù)據(jù)結(jié)構(gòu)》的教學(xué)開(kāi)始運(yùn)用教學(xué)幻燈片的形式來(lái)講授,這些教學(xué)幻燈片大多數(shù)都是靜態(tài)的圖片或者是一些基本的算法。這種教學(xué)模式彌補(bǔ)了傳統(tǒng)的黑板板書(shū)的不足,較大地提高了教學(xué)質(zhì)量。不過(guò)這種教學(xué)模式在可視性和交互性方面都存在較大的不足。目前,還有一種教學(xué)模式是采用flash動(dòng)畫(huà)演示并配加一定的文字說(shuō)明的方式,這種方式可以在很大程度上揭示算法原理,唯一的遺憾就是這種動(dòng)畫(huà)演示的內(nèi)容不是很全面,而且在與學(xué)習(xí)者的交互性方面存在不足,不能讓學(xué)習(xí)者自己輸入相關(guān)的參數(shù)。因此有必要對(duì)圖的算法的動(dòng)態(tài)演示進(jìn)行研究,設(shè)計(jì)《數(shù)據(jù)結(jié)構(gòu)》算法演示系統(tǒng),幫助學(xué)生更快地掌握算法的精髓與實(shí)質(zhì)。 本課題的研究意義本設(shè)計(jì)從對(duì)數(shù)據(jù)結(jié)構(gòu)圖的算法的深入研究開(kāi)始,在Visual C++的編程壞境下,致力于開(kāi)發(fā)一套專門(mén)幫助學(xué)習(xí)者理解數(shù)據(jù)結(jié)構(gòu)算法的動(dòng)態(tài)演示系統(tǒng)。該系統(tǒng)將可視性,交互性和可擴(kuò)展性緊緊的結(jié)合在一起,能大大改善傳統(tǒng)教學(xué)的弊端,使復(fù)雜的難以理解的數(shù)據(jù)結(jié)構(gòu)算法通過(guò)教師的課堂演示和學(xué)習(xí)者的不斷自我交互式操作試驗(yàn)變得通俗明朗,有效地提高教學(xué)的質(zhì)量和效果。 課題的關(guān)鍵技術(shù) 本系統(tǒng)的核心技術(shù)為深度優(yōu)先搜索遍歷算法與圖的廣度優(yōu)先搜索遍歷算法的動(dòng)態(tài)演示技術(shù)研究及其實(shí)現(xiàn)。 系統(tǒng)開(kāi)發(fā)平臺(tái)MicrosoftVisual Studio 2008 ,這是自1993年7月隨著Windows API后微軟軟件開(kāi)發(fā)平臺(tái)的第一次大升級(jí)。比起Win16來(lái),Win32提供了更多功能強(qiáng)大的API,但沒(méi)有對(duì)工具和技術(shù)進(jìn)行引人注目的改變。與之不同的是,.NET開(kāi)發(fā)平臺(tái)在開(kāi)發(fā)者用以創(chuàng)造應(yīng)用程序的工具和技術(shù)上做了根本的改變。 .NET開(kāi)發(fā)平臺(tái)使得開(kāi)發(fā)者創(chuàng)建運(yùn)行在Internet Information Server (IIS)(互聯(lián)網(wǎng)信息服務(wù)器)Web服務(wù)器上的Web應(yīng)用程序更為容易,它也使創(chuàng)建穩(wěn)定、可靠而又安全的Windows桌面應(yīng)用程序更為容易。 .NET開(kāi)發(fā)平臺(tái)包括以下內(nèi)容: .NET Framework(架構(gòu)),包括:Common Language Runtime(CLR)(通用語(yǔ)言運(yùn)行環(huán)境),這是用于運(yùn)行和加載應(yīng)用程序的軟件組件;新的類庫(kù),分級(jí)組織了開(kāi)發(fā)者可以在他們的應(yīng)用程序中用來(lái)顯示圖形用戶界面、訪問(wèn)數(shù)據(jù)庫(kù)和文件以及在Web上通信的代碼集。 .NET開(kāi)發(fā)者工具,包括:Visual Studio .NET Integrated Development Environment (IDE)(Visual Studio .NET集成開(kāi)發(fā)環(huán)境),用來(lái)開(kāi)發(fā)和測(cè)試應(yīng)用程序;.NET編程語(yǔ)言(例如Visual Basic .NET和新的Visual C),用來(lái)創(chuàng)建運(yùn)行在CLR下并且使用類庫(kù)的應(yīng)用程序。 ASP .NET,一個(gè)取代以前的Active Server Pages (ASP)的特殊類庫(kù),用來(lái)創(chuàng)建動(dòng)態(tài)的Web內(nèi)容和Web服務(wù)器應(yīng)用程序,這些都將采用諸如HTML、XML和Simple Object Access Protocol(SOAP)(簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)等Internet協(xié)議和數(shù)據(jù)格式。 .NET開(kāi)發(fā)平臺(tái)是一組用于建立Web服務(wù)器應(yīng)用程序和Windows桌面應(yīng)用程序的軟件組件,用該平臺(tái)創(chuàng)建的應(yīng)用程序在Common Language Runtime(CLR)(通用語(yǔ)言運(yùn)行環(huán)境)(底層)的控制下運(yùn)行。CLR是一個(gè)軟件引擎,用來(lái)加載應(yīng)用程序,確認(rèn)它們可以沒(méi)有錯(cuò)誤地執(zhí)行,進(jìn)行相應(yīng)的安全許可驗(yàn)證,執(zhí)行應(yīng)用程序,然后在運(yùn)行完成后將它們清除。類庫(kù)集提供了使應(yīng)用程序可以讀寫(xiě)XML數(shù)據(jù)、在Internet上通信、訪問(wèn)數(shù)據(jù)庫(kù)等的代碼。所有的類庫(kù)都建立在一個(gè)基礎(chǔ)的類庫(kù)之上,它提供管理使用最為頻繁的數(shù)據(jù)類型(例如數(shù)值或文本字符串)的功能,以及諸如文件輸入/輸出等底層功能[1]。Visual Studio .NET提供了一個(gè)用于在該平臺(tái)上創(chuàng)建應(yīng)用程序的圖形Integrated Development Environment(IDE)(集成開(kāi)發(fā)環(huán)境)。,來(lái)編寫(xiě)他們的代碼,例如微軟自己的Visual Basic .NET(),Visual C++, Visual C和JScrjpt .NET等。Visual Studio 是微軟公司推出的開(kāi)發(fā)環(huán)境。是目前最流行的 Windows 平臺(tái)應(yīng)用程序開(kāi)發(fā)環(huán)境。目前已經(jīng)開(kāi)發(fā)到 版本,也就是 Visual Studio 2008。Visual Studio 可以用來(lái)創(chuàng)建 Windows 平臺(tái)下的 Windows 應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來(lái)創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和 Office 插件。Visual Studio 97 是最早的 Visual Studio 版本。包含有面向 Windows 開(kāi)發(fā)使用的 Visual Basic 、Visual C++ ,面向 Java 開(kāi)發(fā)的 Visual J++ 和面向數(shù)據(jù)庫(kù)開(kāi)發(fā)的 Visual FoxPro,還包含有創(chuàng)建 DHTML (Dynamic HTML) 所需要的 Visual InterDev。其中,Visual Basic 和 Visual FoxPro 使用單獨(dú)的開(kāi)發(fā)環(huán)境,其他的開(kāi)發(fā)語(yǔ)言使用統(tǒng)一的開(kāi)發(fā)環(huán)境。Visual Studio 2008 提供了高級(jí)開(kāi)發(fā)工具、調(diào)試功能、數(shù)據(jù)庫(kù)功能和創(chuàng)新功能,幫助在各種平臺(tái)上快速創(chuàng)建當(dāng)前最先進(jìn)的應(yīng)用程序。Visual Studio 2008 在三個(gè)方面為開(kāi)發(fā)人員提供了關(guān)鍵改進(jìn):快速的應(yīng)用程序開(kāi)發(fā)、高效的團(tuán)隊(duì)協(xié)作、突破性的用戶體驗(yàn)。 Visual Studio 2008 包括各種增強(qiáng)功能,例如可視化設(shè)計(jì)器(使用 .NET Framework 加速開(kāi)發(fā))、對(duì) Web 開(kāi)發(fā)工具的大量改進(jìn),以及能夠加速開(kāi)發(fā)和處理所有類型數(shù)據(jù)的語(yǔ)言增強(qiáng)功能。Visual Studio 2008 為開(kāi)發(fā)人員提供了所有相關(guān)的工具和框架支持,幫助創(chuàng)建引人注目的、令人印象深刻并支持 AJAX 的 Web 應(yīng)用程序?! ¢_(kāi)發(fā)人員能夠利用這些豐富的客戶端和服務(wù)器端框架輕松構(gòu)建以客戶為中心的 Web 應(yīng)用程序,這些應(yīng)用程序可以集成任何后端數(shù)據(jù)提供程序、在任何當(dāng)前瀏覽器內(nèi)運(yùn)行并完全訪問(wèn) 應(yīng)用程序服務(wù)和 Microsoft 平臺(tái)。 快速的應(yīng)用程序開(kāi)發(fā):為了幫助開(kāi)發(fā)人員迅速創(chuàng)建先進(jìn)的軟件,Visual Studio 2008 提供了改進(jìn)的語(yǔ)言和數(shù)據(jù)功能,例如語(yǔ)言集成的查詢 (LINQ),各個(gè)編程人員可以利用這些功能更輕松地構(gòu)建解決方案以分析和處理信息?!isual Studio 2008 還使開(kāi)發(fā)人員能夠從同一開(kāi)發(fā)環(huán)境內(nèi)創(chuàng)建面向多個(gè) .NET Framework 版本的應(yīng)用程序。開(kāi)發(fā)人員能夠構(gòu)建面向 .NET Framework 、 或 的應(yīng)用程序,意味他們可以在同一環(huán)境中支持各種各樣的項(xiàng)目。 突破性的用戶體驗(yàn):Visual Studio 2008 為開(kāi)發(fā)人員提供了在最新平臺(tái)上加速創(chuàng)建緊密聯(lián)系的應(yīng)用程序的新工具,這些平臺(tái)包括 Web、Windows Vista、Office 200SQL Server 2008 和 Windows Server 2008。對(duì)于 Web, AJAX 及其他新技術(shù)使開(kāi)發(fā)人員能夠迅速創(chuàng)建更高效、交互式更強(qiáng)和更個(gè)性化的新一代 Web 體驗(yàn)?! 「咝У膱F(tuán)隊(duì)協(xié)作:Visual Studio 2008 提供了幫助開(kāi)發(fā)團(tuán)隊(duì)改進(jìn)協(xié)作的擴(kuò)展的和改進(jìn)的服務(wù)項(xiàng)目,包括幫助將數(shù)據(jù)庫(kù)專業(yè)人員和圖形設(shè)計(jì)人員加入到開(kāi)發(fā)流程的工具?! ∈褂肕icrosoft .NET Framework :.NET Framework 提供了用于解決常見(jiàn)編程任務(wù)的構(gòu)建基塊(預(yù)制的軟件),從而能夠快速構(gòu)造具有出色的最終用戶體驗(yàn)的緊密聯(lián)系的應(yīng)用程序。在 .NET Framework 模型業(yè)務(wù)流程上有效構(gòu)建的緊密聯(lián)系的應(yīng)用程序有利于在異類環(huán)境中實(shí)現(xiàn)系統(tǒng)集成?! isual Studio 和 .NET Framework 的結(jié)合使用減少了對(duì)公用管道代碼的需要,從而縮短了開(kāi)發(fā)時(shí)間并使開(kāi)發(fā)人員能夠集中精力解決業(yè)務(wù)問(wèn)題。.NET Framework 是在 .NET Framework 的基礎(chǔ)上構(gòu)建的更高版本。得到增強(qiáng)的功能領(lǐng)域包括基類庫(kù)、Windows workflow foundation、Windows Communication Foundation、Window