2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  摘要</b></p><p>  《數(shù)據(jù)結(jié)構(gòu)》作為信息類專業(yè)的一門核心專業(yè)課,對《編譯原理》等后續(xù)課程的學(xué)習(xí)極其重要。</p><p>  傳統(tǒng)的《數(shù)據(jù)結(jié)構(gòu)》算法是基于以Turbo C為代表的DOS開發(fā)壞境,可視化效果很差。而這種壞境給學(xué)習(xí)者的理解和深入探討帶來很大的問題。本設(shè)計從對數(shù)據(jù)結(jié)構(gòu)圖的算法的深入研究開始,在Visual C++的

2、編程壞境下,致力于開發(fā)一套專門幫助學(xué)習(xí)者理解數(shù)據(jù)結(jié)構(gòu)算法的動態(tài)演示系統(tǒng)。該系統(tǒng)將可視性,交互性和可擴展性緊緊的結(jié)合在一起,能大大改善傳統(tǒng)教學(xué)的弊端,使復(fù)雜的難以理解的數(shù)據(jù)結(jié)構(gòu)算法通過教師的課堂演示和學(xué)習(xí)者的不斷自我交互式操作試驗變得通俗明朗,有效地提高教學(xué)的質(zhì)量和效果。</p><p>  關(guān)鍵字:動態(tài)演示系統(tǒng);Visual C++</p><p><b>  Abstract&

3、lt;/b></p><p>  The data structure as a core of information specialty courses, learning to follow-up such as the compiling principles of course extremely important. </p><p>  Traditional algo

4、rithm is based on the data structure to DOS development represented TurboC borders, very poor visual effects. And this bad border to the learner's understanding and in-depth discussions cause great problems. The desi

5、gn starts from the in-depth study on data structure algorithm, programming in Visual C++ under bad border, is committed to developing a set of specialized help learners understand data structure algorithm of dynamic demo

6、 system. The system of Visual, interactive combi</p><p>  Keywords: dynamic demo system; Visual C++</p><p>  第1章 系統(tǒng)開發(fā)平臺與環(huán)境</p><p><b>  1.1 選題背景</b></p><p> 

7、 1.1.1 課題來源</p><p>  《數(shù)據(jù)結(jié)構(gòu)》作為信息類專業(yè)的一門核心專業(yè)課,對《編譯原理》等后續(xù)課程的學(xué)習(xí)極其重要。但該課程涉及大量的概念、定義、模型和算法,尤其是圖的算法顯得很抽象和深奧。用傳統(tǒng)的“粉筆+黑板”形式很難將算法的執(zhí)行過程動態(tài)地演示出來,影響了教學(xué)效果。</p><p>  傳統(tǒng)的《數(shù)據(jù)結(jié)構(gòu)》算法是基于以TurboC為代表的DOS開發(fā)壞境,可視化效果很差。而這種壞

8、境給學(xué)習(xí)者的理解和深入探討帶來很大的問題。后來,隨著多媒體技術(shù)的發(fā)展,《數(shù)據(jù)結(jié)構(gòu)》的教學(xué)開始運用教學(xué)幻燈片的形式來講授,這些教學(xué)幻燈片大多數(shù)都是靜態(tài)的圖片或者是一些基本的算法。這種教學(xué)模式彌補了傳統(tǒng)的黑板板書的不足,較大地提高了教學(xué)質(zhì)量。不過這種教學(xué)模式在可視性和交互性方面都存在較大的不足。目前,還有一種教學(xué)模式是采用flash動畫演示并配加一定的文字說明的方式,這種方式可以在很大程度上揭示算法原理,唯一的遺憾就是這種動畫演示的內(nèi)容不是

9、很全面,而且在與學(xué)習(xí)者的交互性方面存在不足,不能讓學(xué)習(xí)者自己輸入相關(guān)的參數(shù)。</p><p>  因此有必要對圖的算法的動態(tài)演示進行研究,設(shè)計《數(shù)據(jù)結(jié)構(gòu)》算法演示系統(tǒng),,幫助學(xué)生更快地掌握算法的精髓與實質(zhì)。</p><p>  1.1.2 本課題的研究意義</p><p>  本設(shè)計從對數(shù)據(jù)結(jié)構(gòu)圖的算法的深入研究開始,在Visual C++的編程壞境下,致力于開發(fā)一

10、套專門幫助學(xué)習(xí)者理解數(shù)據(jù)結(jié)構(gòu)算法的動態(tài)演示系統(tǒng)。該系統(tǒng)將可視性,交互性和可擴展性緊緊的結(jié)合在一起,能大大改善傳統(tǒng)教學(xué)的弊端,使復(fù)雜的難以理解的數(shù)據(jù)結(jié)構(gòu)算法通過教師的課堂演示和學(xué)習(xí)者的不斷自我交互式操作試驗變得通俗明朗,有效地提高教學(xué)的質(zhì)量和效果。</p><p>  1.1.3 課題的關(guān)鍵技術(shù) </p><p>  本系統(tǒng)的核心技術(shù)為深度優(yōu)先搜索遍歷算法與圖的廣度優(yōu)先搜索遍歷算法的動態(tài)演示

11、技術(shù)研究及其實現(xiàn)。</p><p>  1.2 系統(tǒng)開發(fā)平臺Microsoft Visual Studio 2008</p><p>  微軟發(fā)布了.NET開發(fā)平臺,這是自1993年7月隨著Windows NT3.0出現(xiàn)的Win32 API后微軟軟件開發(fā)平臺的第一次大升級。比起Win16來,Win32提供了更多功能強大的API,但沒有對工具和技術(shù)進行引人注目的改變。與之不同的是,

12、.NET開發(fā)平臺在開發(fā)者用以創(chuàng)造應(yīng)用程序的工具和技術(shù)上做了根本的改變。 .NET開發(fā)平臺使得開發(fā)者創(chuàng)建運行在Internet Information Server (IIS)(互聯(lián)網(wǎng)信息服務(wù)器)Web服務(wù)器上的Web應(yīng)用程序更為容易,它也使創(chuàng)建穩(wěn)定、可靠而又安全的Windows桌面應(yīng)用程序更為容易。</p><p>  .NET開發(fā)平臺包括以下內(nèi)容: .NET Framework(架構(gòu)),包括

13、:Common Language Runtime(CLR)(通用語言運行環(huán)境),這是用于運行和加載應(yīng)用程序的軟件組件;新的類庫,分級組織了開發(fā)者可以在他們的應(yīng)用程序中用來顯示圖形用戶界面、訪問數(shù)據(jù)庫和文件以及在Web上通信的代碼集。 .NET開發(fā)者工具,包括:Visual Studio .NET Integrated Development Environment (IDE)(Visual Studio .NET集成開發(fā)環(huán)境

14、),用來開發(fā)和測試應(yīng)用程序;.NET編程語言(例如Visual Basic .NET和新的Visual C#),用來創(chuàng)建運行在CLR下并且使用類庫的應(yīng)用程序。 ·ASP .NET,一個取代以前的Active Server Pages (ASP)的特殊類庫,用來創(chuàng)建動態(tài)的Web內(nèi)容和Web服務(wù)器應(yīng)用程序,這些都將采用諸如HTML、XML和Simple Object Access Protocol(SOAP)(簡單對象訪

15、問協(xié)議)等Internet協(xié)議和數(shù)據(jù)格式。</p><p>  .NET開發(fā)平臺是一組用于建立Web服務(wù)器應(yīng)用程序和Windows桌面應(yīng)用程序的軟件組件,用該平臺創(chuàng)建的應(yīng)用程序在Common Language Runtime(CLR)(通用語言運行環(huán)境)(底層)的控制下運行。CLR是一個軟件引擎,用來加載應(yīng)用程序,確認它們可以沒有錯誤地執(zhí)行,進行相應(yīng)的安全許可驗證,執(zhí)行應(yīng)用程序,然后在運行完成后將它們清除。類庫集

16、提供了使應(yīng)用程序可以讀寫XML數(shù)據(jù)、在Internet上通信、訪問數(shù)據(jù)庫等的代碼。所有的類庫都建立在一個基礎(chǔ)的類庫之上,它提供管理使用最為頻繁的數(shù)據(jù)類型(例如數(shù)值或文本字符串)的功能,以及諸如文件輸入/輸出等底層功能[1]。</p><p>  Visual Studio .NET提供了一個用于在該平臺上創(chuàng)建應(yīng)用程序的圖形Integrated Development Environment(IDE)(集成開發(fā)環(huán)境

17、)。程序員可以使用一種或多種.NET編程語言,來編寫他們的代碼,例如微軟自己的Visual Basic .NET(VB.NET),Visual C++, Visual C#和JScrjpt .NET等。大量其它的.NET編程語言可以從第三方廠商獲得。</p><p>  Visual Studio 是微軟公司推出的開發(fā)環(huán)境。是目前最流行的 Windows 平臺應(yīng)用程序開發(fā)環(huán)境。目前已經(jīng)開發(fā)到 9.0 版本,也就是

18、 Visual Studio 2008。</p><p>  Visual Studio 可以用來創(chuàng)建 Windows 平臺下的 Windows 應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和 Office 插件。</p><p>  Visual Studio 97 是最早的 Visual Studio 版本。包含有面向 Windows 開發(fā)使用的 Visual Ba

19、sic 5.0、Visual C++ 5.0,面向 Java 開發(fā)的 Visual J++ 和面向數(shù)據(jù)庫開發(fā)的 Visual FoxPro,還包含有創(chuàng)建 DHTML (Dynamic HTML) 所需要的 Visual InterDev。其中,Visual Basic 和 Visual FoxPro 使用單獨的開發(fā)環(huán)境,其他的開發(fā)語言使用統(tǒng)一的開發(fā)環(huán)境。</p><p>  Visual Studio 2008

20、提供了高級開發(fā)工具、調(diào)試功能、數(shù)據(jù)庫功能和創(chuàng)新功能,幫助在各種平臺上快速創(chuàng)建當(dāng)前最先進的應(yīng)用程序。</p><p>  Visual Studio 2008 在三個方面為開發(fā)人員提供了關(guān)鍵改進:快速的應(yīng)用程序開發(fā)、高效的團隊協(xié)作、突破性的用戶體驗。</p><p>  Visual Studio 2008 包括各種增強功能,例如可視化設(shè)計器(使用 .NET Framework 3.5 加速

21、開發(fā))、對 Web 開發(fā)工具的大量改進,以及能夠加速開發(fā)和處理所有類型數(shù)據(jù)的語言增強功能。Visual Studio 2008 為開發(fā)人員提供了所有相關(guān)的工具和框架支持,幫助創(chuàng)建引人注目的、令人印象深刻并支持 AJAX 的 Web 應(yīng)用程序。</p><p>  開發(fā)人員能夠利用這些豐富的客戶端和服務(wù)器端框架輕松構(gòu)建以客戶為中心的 Web 應(yīng)用程序,這些應(yīng)用程序可以集成任何后端數(shù)據(jù)提供程序、在任何當(dāng)前瀏覽器內(nèi)運行

22、并完全訪問 ASP.NET 應(yīng)用程序服務(wù)和 Microsoft 平臺。</p><p>  快速的應(yīng)用程序開發(fā):為了幫助開發(fā)人員迅速創(chuàng)建先進的軟件,Visual Studio 2008 提供了改進的語言和數(shù)據(jù)功能,例如語言集成的查詢 (LINQ),各個編程人員可以利用這些功能更輕松地構(gòu)建解決方案以分析和處理信息?!isual Studio 2008 還使開發(fā)人員能夠從同一開發(fā)環(huán)境內(nèi)創(chuàng)建面向多個 .NET Fra

23、mework 版本的應(yīng)用程序。開發(fā)人員能夠構(gòu)建面向 .NET Framework 2.0、3.0 或 3.5 的應(yīng)用程序,意味他們可以在同一環(huán)境中支持各種各樣的項目。</p><p>  突破性的用戶體驗:Visual Studio 2008 為開發(fā)人員提供了在最新平臺上加速創(chuàng)建緊密聯(lián)系的應(yīng)用程序的新工具,這些平臺包括 Web、Windows Vista、Office 2007、SQL Server 2008 和

24、 Windows Server 2008。對于 Web,ASP.NET AJAX 及其他新技術(shù)使開發(fā)人員能夠迅速創(chuàng)建更高效、交互式更強和更個性化的新一代 Web 體驗。</p><p>  高效的團隊協(xié)作:Visual Studio 2008 提供了幫助開發(fā)團隊改進協(xié)作的擴展的和改進的服務(wù)項目,包括幫助將數(shù)據(jù)庫專業(yè)人員和圖形設(shè)計人員加入到開發(fā)流程的工具。</p><p>  使用Micro

25、soft .NET Framework 3.5:.NET Framework 提供了用于解決常見編程任務(wù)的構(gòu)建基塊(預(yù)制的軟件),從而能夠快速構(gòu)造具有出色的最終用戶體驗的緊密聯(lián)系的應(yīng)用程序。在 .NET Framework 模型業(yè)務(wù)流程上有效構(gòu)建的緊密聯(lián)系的應(yīng)用程序有利于在異類環(huán)境中實現(xiàn)系統(tǒng)集成。</p><p>  Visual Studio 和 .NET Framework 的結(jié)合使用減少了對公用管道代碼的需

26、要,從而縮短了開發(fā)時間并使開發(fā)人員能夠集中精力解決業(yè)務(wù)問題。</p><p>  .NET Framework 3.5 是在 .NET Framework 3.0 的基礎(chǔ)上構(gòu)建的更高版本。得到增強的功能領(lǐng)域包括基類庫、Windows workflow foundation、Windows Communication Foundation、Windows Presentation Foundation 和 Wind

27、ows CardSpace。</p><p>  因此本動態(tài)演示系統(tǒng)選擇Microsoft Visual Studio作為開發(fā)平臺是一個不錯的選擇。</p><p><b>  1.3 MSDN</b></p><p>  MSDN 的全稱是 Microsoft Developer Network。這是微軟公司面向軟件開發(fā)者的一種信息服務(wù)。MS

28、DN 實際上是一個以 Visual Studio 和 Windows 平臺為核心整合的開發(fā)虛擬社區(qū),包括技術(shù)文檔、在線電子教程、網(wǎng)絡(luò)虛擬實驗室、微軟產(chǎn)品下載(幾乎全部的操作系統(tǒng)、服務(wù)器程序、應(yīng)用程序和開發(fā)程序的正式版和測試版,還包括各種驅(qū)動程序開發(fā)包和軟件開發(fā)包)、Blog、BBS、MSDN WebCast、與 CMP 合作的 MSDN 雜志等等一系列服務(wù)。</p><p>  一般情況下,很多人誤認為 MSDN

29、 為聯(lián)機幫助文件和技術(shù)文獻的集合。但事實上,這兩者只占 MSDN 龐大計劃的一小部分。 其中產(chǎn)品下載、在線電子教程、MSDN 雜志和技術(shù)緊急電話支援是要付費的,其余基本免費。當(dāng)然, MSDN 雜志可以通過微軟公司的網(wǎng)站免費觀看或者下載。MSDN 涵蓋了所有的可以被開發(fā)擴充的平臺和應(yīng)用程序,因此如微軟公司的百科全書 Encarta,或者是各種游戲,是不包括在 MSDN 之內(nèi)的,因為這些產(chǎn)品直接面向最終用戶,沒有進行程序開發(fā)的必要。<

30、/p><p>  用戶接觸到的最多關(guān)于 MSDN 的信息可能是來自于 MSDN Library。MSDN Library 就是通常人們眼中的 MSDN,涵蓋了微軟全套可開發(fā)產(chǎn)品線的技術(shù)開發(fā)文檔和科技文獻(部分包括源代碼),也包括過刊的 MSDN 雜志節(jié)選和部分經(jīng)典書籍的節(jié)選章節(jié)。MSDN Library 有 1.8 GB 左右,可以通過在線或者 MSDN 訂閱(需付費)以脫機方式瀏覽?!?</p>&l

31、t;p>  每個時期,隨著不同版本 Visual Studio 發(fā)布的時候,都會有對應(yīng)的 MSDN Library 發(fā)布,而從最新版的 Visual Studio 發(fā)布之后,對應(yīng)舊版本 Visual Studio 的 MSDN Library 會慢慢停止發(fā)布, 僅隨該 Visual Studio 發(fā)布的 MSDN Library 以及后續(xù)的 MSDN Library 更新才可以被整合到最新版本的 Visual Studio 中。&

32、lt;/p><p>  1.4 MSDN訪問</p><p>  MSDN訂購版帶有一個可安裝的界面,并且Professional和Universal訂購版還帶有一批Microsoft產(chǎn)品軟件,比如Windows平臺版本和BackOfice應(yīng)用程序。沒有必要再向用戶闡述如何使用Microsoft產(chǎn)品軟件,但是還是要提供一些快速且有用的指導(dǎo),以弄明白界面的含義,并在MSDN訂購版所提供的似乎無窮

33、無盡的參考資料中遨游。對于使用過M S D N的用戶來說,圖3 - 2所示的界面是很熟悉的:它是MSDN參考資料的導(dǎo)航前臺界面。</p><p>  圖3-2 MSDN界面</p><p>  雖然界面很熟悉,并已經(jīng)是相當(dāng)直觀,但是如果還沒有掌握其特性和瀏覽工具,可能還是會在信息的汪洋大海中迷失方向的。通過掌握關(guān)于高效瀏覽的一些說明和提示,即可迅速提高其使用效率。</p>&

34、lt;p>  1.4.1瀏覽MSDN</p><p>  MSN最主要的特性之一(也許地是最主要的缺點)是資料太完整,包含的信息總量超過1.1GB,并且還在不斷增長。但是MSDN的創(chuàng)建者可能意識到了這一點,已經(jīng)采取步驟緩解這一問題。這些步驟之一就是允許開發(fā)人員有選擇地在MSDN的目錄中進行跳轉(zhuǎn)。MSDN的基本瀏覽很簡單,與在Windows資源管理器及其文件夾結(jié)構(gòu)中的瀏覽非常相似。MSDN沒有使用文件夾,它將

35、“書本”按照專題進行組織。點擊書本左邊的+號,可以將書本展開,顯示出目錄和嵌套的書本或者參考頁面,如圖3 - 3所示。如果在MSD N瀏覽器中沒有看到左邊的面板,請到View菜單再選擇Navigation Tabs菜單項,面板就會出現(xiàn)。</p><p>  圖3-3 MSDN瀏覽界面</p><p>  MSDN左邊面板中的四個選項卡是在MSDN目錄中跳轉(zhuǎn)的主要方式。這四個選項卡,與其上方

36、的Active Subset下拉菜單框協(xié)同工作,是用以在MSDN目錄中進行搜索的工具。在熟練掌握它們之后,這些瀏覽輔助工具將極大地豐富MSDN的使用經(jīng)驗。Active Subset下拉菜單框提供的是一種過濾器機制。從下拉框中選擇所感興趣的MSDN信息子集,四個導(dǎo)航選項卡(包括Contents選項卡)都將顯示的信息限制為所選子集中包含的信息。這就意味著在Searh選項卡中所做的任何搜索,以及在Index選項卡中的索引,都被其定義的結(jié)果值過

37、濾,并且或者與用戶所定義的子集相匹配,從而極大地限制了給定查詢所得結(jié)果的數(shù)量,讓用戶可以得到真正需要的信息。在Index選項卡中,符合查詢條件而不在所選子集內(nèi),將被顯示為淺色(但仍然可以選擇),在Search選項卡中,它們將根本不會被顯示。</p><p>  MSDN中有下列預(yù)定義的子集:</p><p>  Entire Collection Platform SDK,Tools an

38、d Languages</p><p>  MSDN,Books and Periodicals Platform SDK,User Interface Services</p><p>  MSDN,Content on Disk 2 only Platform SDK,Web Services</p><p>  MSDN,Content on Disk 3 o

39、nly Platform SDK,What's New?</p><p>  MSDN,Knowledge Base Platform SDK,Win32 API</p><p>  MSDN , O ffice Development Repository 2.0 Documentation</p><p>  MSDN , Technical Artic

40、les and Backgrounders Visual Basic Documentation</p><p>  Platform SDK,BackOffice Visual C++ Documentation</p><p>  Platform SDK, Base Services Visual C++,Platform SDK and EnterpriseDocs</p&g

41、t;<p>  Platform SDK,Component Services Visual C++,Platform SDK,and WinCEDocs</p><p>  Platform SDK,Data Access Services Visual FoxPro Documentation</p><p>  Platform SDK,Graphics and Mul

42、timedia Services Visual InterDev Documentation</p><p>  Platform SDK,Management Services Visual J++ Documentation</p><p>  Platform SDK,Messaging and Collaboration Services Visual SourceSafe Doc

43、umentation</p><p>  Platform SDK,Networking Services Platform Visual Studio Product </p><p>  讀者可以看到,過濾選項本質(zhì)上是M S D N使用的信息結(jié)構(gòu)的一個鏡像。但是,如果用戶希望看到這些子集的部分信息,又該怎么辦呢?例如,用戶對Platform SDK's Security、Net

44、workingServices和Management Services子集的某個關(guān)鍵字搜索以及Base Services子集的部分章節(jié)感興趣,該如何去做呢?其實相當(dāng)簡單—僅需定義自己的子集即可。</p><p>  選擇View菜單,然后選擇Define Subset菜單項,即可定義子集。用戶面對的是如圖3 - 4所示的窗口。 </p><p>  圖3-4 Define Subset窗口

45、</p><p>  定義子集是很簡單的,僅需按照如下步驟進行:</p><p>  1) 選擇希望放置到新子集的信息;可以選擇整個子集,或者在可用子集中選取“書本” /“目錄”。</p><p>  2) 點擊Add按鈕,將選取的信息放入新創(chuàng)建的子集。</p><p>  3) 在Save New Subset As文本框中鍵入名稱,為新創(chuàng)

46、建的子集命名。注意所定義的子集(包括用戶自己創(chuàng)建的)將以字母表順序排列。如果希望的話,也可以從MSDN安裝中刪除整個子集。僅需在Select Subset To Display下拉框中選擇希望刪除的子集,然后點擊旁邊的Delete按鈕即可。</p><p>  一旦定義了一個子集,它將和預(yù)定義的子集一樣在MSDN中可用。并且在四個導(dǎo)航選項卡中也會過濾可用信息,和預(yù)定義子集表現(xiàn)相同。</p><

47、p>  1.4.2 快速提示</p><p>  現(xiàn)在讀者知道如何瀏覽MSDN了,還有一些提示和訣竅,可以利用它們來盡可能高效地使用MSDN。</p><p>  ? 使用Locate按鈕定位也許是人的天性,需要知道現(xiàn)在身處何方。但遺憾的是,如果在右邊面板顯示參考頁面(也許是從搜索結(jié)果中跳轉(zhuǎn)過來的),而對于左邊面板的Contents選項卡,沒有在信息樹中同步地顯示參考頁面的位置,會很

48、讓人頭疼。即使用戶知道參考頁面所在的技術(shù)目錄,但最好還是能夠找出在目錄結(jié)構(gòu)中的位置。問題的解決很容易:僅需點擊導(dǎo)航工具條中的Locate按鈕,所有的參考將會同步。</p><p>  像瀏覽器那樣使用Back按鈕導(dǎo)航工具條中Back按鈕的功能和瀏覽器Back按鈕的一樣。如果需要先前瀏覽過的某個參考頁面信息,就可以使用Bac k按鈕返回該頁,而不用再重新經(jīng)歷一次搜索過程。</p><p> 

49、 定義用戶子集并且使用它們?nèi)绫菊麻_始時所述,當(dāng)前可用的信息量太多,有時讓人的工作無法進行。定義MSDN的子集,可以篩選出和工作相關(guān)的內(nèi)容,使得工作起來效率更高。</p><p>  在命名子集的開始使用下劃線在ActiveSubset下拉框里的子集是按照字母表進行排列的,而下拉框每次只能夠顯示少量子集(使得選中可用子集比較困難)。下劃線在字母表中位于字母之前,因此如果在所有自定義子集的名稱都以下劃線開始的話,它們

50、就會在Active Subset下拉框中處在可用子集的前面。另外,使用下劃線,用戶可以一眼就看出哪些子集是自定義的,而哪些自己是MSDN附帶的—這至少可以節(jié)約幾秒鐘,而這些幾秒鐘是可以累加的。</p><p>  1.5 系統(tǒng)開發(fā)語言Microsoft Visual C++</p><p>  Microsoft Visual C++是Microsoft公司推出的開發(fā)Win32環(huán)境程序,面

51、向?qū)ο蟮目梢暬删幊滔到y(tǒng)。它不但具有程序框架自動生成、靈活方便的類管理、代碼編寫和界面設(shè)計集成交互操作、可開發(fā)多種程序等優(yōu)點,而且通過簡單的設(shè)置就可使其生成的程序框架支持?jǐn)?shù)據(jù)庫接口、OLE2,WinSock網(wǎng)絡(luò)、3D控制界面。它以擁有“語法高亮”,IntelliSense(自動編譯功能)以及高級除錯功能而著稱。比如,它允許用戶進行遠程調(diào)試,單步執(zhí)行等。還有允許用戶在調(diào)試期間重新編譯被修改的代碼,而不必重新啟動正在調(diào)試的程序。其編譯及建

52、置系統(tǒng)以預(yù)編譯頭文件、最小重建功能及累加連結(jié)著稱。這些特征明顯縮短程式編輯、編譯及連結(jié)的時間花費,在大型軟件計劃上尤其顯著。</p><p><b>  1.5.1歷史版本</b></p><p>  1、Visual C++ 1.0</p><p>  集成了MFC 2.0,是Visual C++第一代版本,1992年推出,可同時支援16位處

53、理器與32位處理器版,可算是Microsoft C/C++ 7.0的更新版本。 </p><p>  2、Visual C++ 1.5</p><p>  集成了MFC 2.5,增加了“目標(biāo)文件鏈接嵌入 (OLE)2.0 和支持MFC的開放式數(shù)據(jù)庫鏈接(ODBC)。這個版本只有16位的,也是第一個以CD-ROM為軟件載體的版本。這個版本也沒有所謂“標(biāo)準(zhǔn)版”。它是最后一個支持16位軟件編程的

54、軟件,也是第一個支持基于x86機器的32位編程軟件。 </p><p>  3、Visual C++ 2.0</p><p>  集成了MFC 3.0,第一個只發(fā)行32位的版本。這個版本提前發(fā)行了,幾乎成了一個“丟失的版本”。這是因為那個時候 Windows 95(開發(fā)代碼為"Chicago")還沒有發(fā)行,而Windows NT又只占有很小的市場份額。該版本用戶可以通過

55、微軟公司的訂閱服務(wù)(MicrosoftSubscription Service)升級至2.1和2.2版本。微軟公司在這個版本中集成并升級了Visual C++1.5,作為2.0版本(Visual C++ 1.5升級后版本號:1.51)以及2.1版本(Visual C++1.5升級后版本號:1.52)的一部分。Visual C++ 2.x附帶了16位和32位版本的CDK,同時支持Win32s的開發(fā)。Visual C++ 2.2及其后續(xù)版本

56、不再升級Visual C++ 1.5(盡管它一直被集成至Visual C++ 4.x)。盡管出生的比Windows 95早,這個版本的發(fā)行日期還是非常接近Windows 95,可是當(dāng)Windows 95發(fā)行時, Visual C++ 4.0也已經(jīng)發(fā)行了。因此很多程序開發(fā)者直接從1.x過渡到4.0,把2.x跳過去了。 </p><p>  4、Visual C++ 4.0</p><p> 

57、 集成了MFC 4.0,這個版本是專門為Windows 95以及Windows NT設(shè)計的。用戶可以通過微軟公司的訂閱服務(wù)(Microsoft Subscription Service)升級至4.1和4.2版本(此版本不再支持Win32s開發(fā))。 </p><p>  5、Visual C++ 5.0</p><p>  集成了MFC 4.21,是4.2版以來比較大的一次升級。 </

58、p><p>  6、Visual C++ 6.0</p><p>  集成了MFC6.0,于1998發(fā)行。發(fā)行至今一直被廣泛地用于大大小小的項目開發(fā)。但是,這個版本在WindowsXP下運行會出現(xiàn)問題,尤其是在調(diào)試模式的情況下(例如:靜態(tài)變量的值并不會顯示)。 這個調(diào)試問題可以通過打一個叫“Visual C++ 6.0Processor Pack”的補丁來解決。奇怪的是,這個網(wǎng)頁強調(diào)用戶也必須

59、運行Windows 98、Windows NT4.0、或Windows 2000。 </p><p>  7、Visual C++ .NET 2002</p><p>  也即Visual C++ 7.0,于2002年發(fā)行,集成了 MFC 7.0,支持鏈接時代碼生成和調(diào)試執(zhí)行時檢查。這個版本還集成了Managed Extension for C++,以及一個全新的用戶界面(與Visual

60、Basic和Visual C#共用)。這也是為什么Visual C++ 6.0仍然被廣泛使用的一個主要原因。 </p><p>  8、Visual C++ .NET 2003</p><p>  也即 Visual C++ 7.1,集成了MFC 7.1,于2003年發(fā)行,是對Visual C++ .NET 2002的一次重大升級。 </p><p>  9、eMb

61、edded Visual C++</p><p>  用于Windows CE操作系統(tǒng)。Visual C++作為一個獨立的開發(fā)環(huán)境被Microsoft Visual Studio 2005所替代。 </p><p>  10、Visual C++ 2005</p><p>  也即Visual C++ 8.0,集成了MFC 8.0,于2005年11月發(fā)布。這個版本引

62、進了對C++/CLI語言和OpenMP的支持。 </p><p>  11、Visual C++ 2008</p><p>  也即Visual C++ 9.0,于2007年11月發(fā)布。這個版本支持.NET 3.5。 </p><p>  12、Visual C++ 2010</p><p>  Visual C++ 10.0,2009年發(fā)布

63、,此版本更加穩(wěn)定。VC++2010是目前最新的版本?! ?lt;/p><p>  Visual C++ 2008 ExpressVisual C++ 2008 Standard 標(biāo)準(zhǔn)版Visual C++ 2008 Professional 專業(yè)版Visual C++ 2008 Team System 團隊系統(tǒng)版其中Microsoft Visual C++ 2008 Express 可從MSDN的網(wǎng)站免費下載使用,并

64、且不限制商業(yè)使用</p><p><b>  1.5.2最新版本</b></p><p>  Visual Studio 2010 Professional 是供開發(fā)人員執(zhí)行基本開發(fā)任務(wù)的重要工具??珊喕诟鞣N平臺 (包 括 SharePoint 和云)上創(chuàng)建、調(diào)試和開發(fā)應(yīng)用程序的過程。Visual Studio 2010 Premium 是一個功能全面的工具集,可為

65、個人或團隊簡化應(yīng)用程序開發(fā)過程,支持交付可擴展的高質(zhì)量應(yīng)用程序。Visual Studio 2010 Ultimate 是一個綜合性的應(yīng)用程序生命周期管理工具套件,可供團隊用于確保從設(shè)計到部署的整個過程都能取得較高質(zhì)量的結(jié)果。Visual Studio Test Professional 2010是質(zhì)量保障團隊的專用工具集,可簡化測試規(guī)劃和手動測試執(zhí)行過程。Test Professional 與開發(fā)人員的 Visual Studio 軟

66、件配合運行,可在整個應(yīng)用程序開發(fā)生命周期內(nèi)實現(xiàn)開發(fā)人員和測試人員之間的高效協(xié)作。  </p><p>  第2章 基于VC的圖的遍歷算法的動態(tài)演示系統(tǒng)的設(shè)計過程</p><p>  2.1 系統(tǒng)的可行性</p><p>  對于一個軟件開發(fā)項目來說,首先進行可行性分析是值得的??尚行苑治鰧嵸|(zhì)是大大壓縮和簡化了設(shè)計過程,主要在較高層次上以較抽象的方式進行,其目的是在盡

67、可能短的時間內(nèi)以最小的代價確定該項目是否能夠開發(fā),是否值得開發(fā)??尚行苑治鍪紫纫獙栴}進行定義,初步確定問題的規(guī)模和目標(biāo);然后在高層次上分析現(xiàn)有系統(tǒng),確定現(xiàn)有系統(tǒng)的物理模型和邏輯模型;再根據(jù)有關(guān)問題,在高層次上設(shè)計銀決有關(guān)問題的新系統(tǒng)的若干種可能的解決方案;最后,對每一種方案研究它的可能性[7]。可行性研究主要從經(jīng)濟、技術(shù)、操作等諸方面來研究新系統(tǒng)每種解決方案的可行性,并作出明確的結(jié)論供用戶參考。</p><p>

68、;  2.1.1 技術(shù)可行性</p><p>  在動態(tài)演示系統(tǒng)中,用到的開發(fā)平臺是.NET。用到的編程語言是Microsoft Visual C++。Microsoft Visual C++是一種現(xiàn)代的面向?qū)ο蟮某绦蜷_發(fā)語言,它使得程序員能夠在新的微軟的.NET平臺上快速開發(fā)種類豐富的應(yīng)用程序。.NET平臺提供了大量的工具和服務(wù),能夠最大限度地發(fā)掘和使用計算和通信能力。在動態(tài)演示系統(tǒng)中,涉及到很多的對象實體。&

69、lt;/p><p>  2.1.2 基礎(chǔ)可行性</p><p>  本人在大學(xué)四年期間,接受了比較系統(tǒng)的關(guān)于數(shù)據(jù)結(jié)構(gòu)算法、visualC++的相關(guān)專業(yè)知識方面的教育,具有了很好的理論基礎(chǔ)。并且通過指導(dǎo)老師的認真指導(dǎo),本人腦海中以初步有了本系統(tǒng)的映像。</p><p>  本人此次設(shè)計的指導(dǎo)老師認真負責(zé),使得我能夠較早的開始準(zhǔn)備工作,所以本人有教寬裕的時間來完成此次設(shè)計。

70、同時本人能很好的應(yīng)用我系現(xiàn)有資源,系里為我們能夠順利完成畢業(yè)設(shè)計做了充分準(zhǔn)備,保證了我們能夠方便的使用系電腦機房進行相關(guān)的實驗測驗,使得我們有了很好的硬件保障。</p><p>  2.1.3 操作可行性</p><p>  鑒于本系統(tǒng)的特點,Windows友好的用戶界面和本系統(tǒng)良好的安全性設(shè)置,可以使系統(tǒng)操作員很好的掌握使用方法。在開發(fā)過程中,還盡量給操作員以方便,考慮到操作員的實際情況

71、大大提高工作效率。而且該系統(tǒng)簡單易操作,易維護,減少了不必要的麻煩。</p><p>  2.2 系統(tǒng)需求分析</p><p>  軟件的需求分析是從用戶的業(yè)務(wù)中提取出軟件系統(tǒng)能夠幫助用戶解決的業(yè)務(wù)問題,通過對用戶業(yè)務(wù)問題的分析,規(guī)劃出我們的軟件產(chǎn)品。這個步驟是對用戶業(yè)務(wù)需求的一個升華,是一個把用戶業(yè)務(wù)優(yōu)化,轉(zhuǎn)化為軟件產(chǎn)品,從而提升管理并產(chǎn)生質(zhì)的飛躍。這一步是否成功,直接關(guān)系到開發(fā)出來的軟

72、件產(chǎn)品能否得到用戶的認可,順利交付給客戶,客戶能否真正運用我們的產(chǎn)品來幫助他(她)解決業(yè)務(wù)或管理問題。按照軟件工程對軟件開發(fā)過程的描述,需求階段我們可以細分為需求調(diào)研和需求分析兩個階段。需求調(diào)研需要充分細致地了解客戶目標(biāo),用戶業(yè)務(wù)內(nèi)容、流程等。這是一個對需求的采集過程,是進行需求分析的基礎(chǔ)準(zhǔn)備[8]。需求是開發(fā)者和用戶交互的一個過程,任何一方的不投入都會導(dǎo)致項目的失敗。當(dāng)然,由于用戶不是專業(yè)人士,開發(fā)者有權(quán)利告訴用戶應(yīng)該采用何種態(tài)度來對

73、待項目的需求。</p><p>  2.2.1 用戶需求分析</p><p>  《數(shù)據(jù)結(jié)構(gòu)》作為信息類專業(yè)的一門核心專業(yè)課,對《編譯原理》等后續(xù)課程的學(xué)習(xí)極其重要。但該課程涉及大量的概念、定義、模型和算法,尤其是圖的算法顯得很抽象和深奧。用傳統(tǒng)的“粉筆+黑板”形式很難將算法的執(zhí)行過程動態(tài)地演示出來,影響了教學(xué)效果。因此有必要對圖的算法的動態(tài)演示進行研究,設(shè)計《數(shù)據(jù)結(jié)構(gòu)》算法演示系統(tǒng),,幫

74、助學(xué)生更快地掌握算法的精髓與實質(zhì)。</p><p>  傳統(tǒng)的《數(shù)據(jù)結(jié)構(gòu)》算法是基于以TurboC為代表的DOS開發(fā)壞境,可視化效果很差。而這種壞境給學(xué)習(xí)者的理解和深入探討帶來很大的問題。后來,隨著多媒體技術(shù)的發(fā)展,《數(shù)據(jù)結(jié)構(gòu)》的教學(xué)開始運用教學(xué)幻燈片的形式來講授,這些教學(xué)幻燈片大多數(shù)都是靜態(tài)的圖片或者是一些基本的算法。這種教學(xué)模式彌補了傳統(tǒng)的黑板板書的不足,較大地提高了教學(xué)質(zhì)量。不過這種教學(xué)模式在可視性和交互性

75、方面都存在較大的不足。目前,還有一種教學(xué)模式是采用flash動畫演示并配加一定的文字說明的方式,這種方式可以在很大程度上揭示算法原理,唯一的遺憾就是這種動畫演示的內(nèi)容不是很全面,而且在與學(xué)習(xí)者的交互性方面存在不足,不能讓學(xué)習(xí)者自己輸入相關(guān)的參數(shù)。因此,急需一款可視性,交互性極強的動態(tài)演示系統(tǒng),使得老師能過形象生動的向?qū)W生演示,大大改善傳統(tǒng)教學(xué)的弊端,使復(fù)雜的難以理解的數(shù)據(jù)結(jié)構(gòu)算法通過教師的課堂演示和學(xué)習(xí)者的不斷自我交互式操作試驗變得通俗

76、明朗,有效地提高教學(xué)的質(zhì)量和效果。</p><p>  2.3 開發(fā)工具及類庫的選擇</p><p>  根據(jù)系統(tǒng)需求確定開發(fā)平臺為Windows XP(SP2)、Visual Studio 2010。</p><p>  主要開發(fā)工具為 Microsoft Visual C++。</p><p>  Visual Studio 2008 提

77、供了高級開發(fā)工具、調(diào)試功能、數(shù)據(jù)庫功能和創(chuàng)新功能,幫助在各種平臺上快速創(chuàng)建當(dāng)前最先進的應(yīng)用程序。</p><p>  Visual Studio 2008 包括各種增強功能,例如可視化設(shè)計器(使用 .NET Framework 3.5 加速開發(fā))、對 Web 開發(fā)工具的大量改進,以及能夠加速開發(fā)和處理所有類型數(shù)據(jù)的語言增強功能。Visual Studio 2008 為開發(fā)人員提供了所有相關(guān)的工具和框架支持,幫助創(chuàng)

78、建引人注目的、令人印象深刻并支持 AJAX 的 Web 應(yīng)用程序。</p><p>  2.4 系統(tǒng)總體方案設(shè)計</p><p>  本系統(tǒng)共分為兩個對話框:初始化對話框、演示對話框。初始化對話框:用于對數(shù)據(jù)的初始化,創(chuàng)建結(jié)點、創(chuàng)建弧,然后顯示圖,重新排列結(jié)點位置,使之具有簡潔美觀。最后創(chuàng)建完成。初始化對話框也可以有退出,保證程序設(shè)計的合理性。和思維的嚴(yán)密性。</p><

79、;p>  演示對話框:該對話框有五部分,分別是:圖的搜索順序演示、程序調(diào)用的堆棧模擬、示例源程序代碼顯示、當(dāng)前變量值顯示、其它按鈕(用于控制對話框顯示)。按結(jié)構(gòu)化程序設(shè)計思想和實際的分析,分析得出圖2.1系統(tǒng)功能模塊圖:</p><p>  圖2.1 系統(tǒng)功能模塊圖</p><p><b>  第三章 系統(tǒng)實現(xiàn)</b></p><p>

80、  3.1 DFSearch.cpp和DFSearch.h的實現(xiàn)</p><p>  // DFSearch.cpp : Defines the class behaviors for the application.</p><p><b>  //</b></p><p>  #include "stdafx.h"<

81、;/p><p>  #include "DFSearch.h"</p><p>  #include "DFSearchDlg.h"</p><p>  #ifdef _DEBUG</p><p>  #define new DEBUG_NEW</p><p>  #undef TH

82、IS_FILE</p><p>  static char THIS_FILE[] = __FILE__;</p><p><b>  #endif</b></p><p>  CDFSearchApp</p><p>  BEGIN_MESSAGE_MAP(CDFSearchApp, CWinApp)</p>

83、;<p>  //{{AFX_MSG_MAP(CDFSearchApp)</p><p>  // NOTE - the ClassWizard will add and remove mapping macros here.</p><p>  // DO NOT EDIT what you see in these blocks of generated code!

84、</p><p>  //}}AFX_MSG</p><p>  ON_COMMAND(ID_HELP, CWinApp::OnHelp)</p><p>  END_MESSAGE_MAP()</p><p>  // CDFSearchApp construction</p><p>  CDFSearchApp:

85、:CDFSearchApp()</p><p><b>  {</b></p><p>  // TODO: add construction code here,</p><p>  // Place all significant initialization in InitInstance</p><p><

86、b>  }</b></p><p>  // The one and only CDFSearchApp object</p><p>  CDFSearchApp theApp;</p><p>  // CDFSearchApp initialization</p><p>  BOOL CDFSearchApp::In

87、itInstance()</p><p><b>  {</b></p><p>  // Standard initialization</p><p>  // If you are not using these features and wish to reduce the size</p><p>  //

88、of your final executable, you should remove from the following</p><p>  // the specific initialization routines you do not need.</p><p>  CDFSearchDlg dlg;</p><p>  m_pMainWnd = &a

89、mp;dlg;</p><p>  int nResponse = dlg.DoModal();</p><p>  if (nResponse == IDOK)</p><p><b>  {</b></p><p>  // TODO: Place code here to handle when the dialo

90、g is</p><p>  // dismissed with OK</p><p><b>  }</b></p><p>  else if (nResponse == IDCANCEL)</p><p><b>  {</b></p><p>  // TODO:

91、Place code here to handle when the dialog is</p><p>  // dismissed with Cancel</p><p><b>  }</b></p><p>  // Since the dialog has been closed, return FALSE so that we e

92、xit the</p><p>  // application, rather than start the application's message pump.</p><p>  return FALSE;</p><p><b>  }</b></p><p>  3.2 CreatGraphDlg.

93、cpp和CreatGraphDlg.h的實現(xiàn)</p><p>  // CreatGraphDlg.cpp : implementation file</p><p>  #include "stdafx.h"//標(biāo)準(zhǔn)AFX頭文件</p><p>  #include "DFSearch.h"</p><p

94、>  #include "CreatGraphDlg.h"</p><p>  #ifdef _DEBUG</p><p>  #define new DEBUG_NEW</p><p>  #undef THIS_FILE</p><p>  static char THIS_FILE[] = __FILE__;&

95、lt;/p><p><b>  #endif</b></p><p>  //這是表示,如果生成調(diào)試版本,要指示當(dāng)前文件的名稱。__FILE__是一個宏,在編譯器編譯過程中給它賦值為當(dāng)前正在編譯的文件名稱</p><p>  // CCreatGraphDlg dialog</p><p>  CCreatGraphDlg:

96、:CCreatGraphDlg(CWnd* pParent /*=NULL*/)</p><p>  : CDialog(CCreatGraphDlg::IDD, pParent)</p><p><b>  {</b></p><p>  //{{AFX_DATA_INIT(CCreatGraphDlg)</p><p&g

97、t;  // NOTE: the ClassWizard will add member initialization here</p><p>  //}}AFX_DATA_INIT</p><p><b>  }</b></p><p>  CCreatGraphDlg::~CCreatGraphDlg()</p><p

98、><b>  {</b></p><p>  delete m_pCreatWnd;</p><p><b>  }</b></p><p>  void CCreatGraphDlg::DoDataExchange(CDataExchange* pDX)</p><p><b> 

99、 {</b></p><p>  CDialog::DoDataExchange(pDX);</p><p>  //{{AFX_DATA_MAP(CCreatGraphDlg)</p><p>  // NOTE: the ClassWizard will add DDX and DDV calls here</p><p> 

100、 //}}AFX_DATA_MAP</p><p><b>  }</b></p><p>  //通過宏定義為類添加一個消息,處理函數(shù)對組成的數(shù)組</p><p>  BEGIN_MESSAGE_MAP(CCreatGraphDlg, CDialog)</p><p>  //{{AFX_MSG_MAP(CCreatG

101、raphDlg)</p><p>  ON_BN_CLICKED(ID_EDIT_POINT, OnEditPoint)</p><p>  ON_BN_CLICKED(ID_EDIT_EDGE, OnEditEdge)</p><p>  ON_BN_CLICKED(ID_SHOW_GRAPH, OnShowGraph)</p><p> 

102、 ON_BN_CLICKED(ID_OK, OnOk)</p><p>  //}}AFX_MSG_MAP</p><p>  END_MESSAGE_MAP()</p><p>  // CCreatGraphDlg message handlers</p><p>  BOOL CCreatGraphDlg::OnInitDialog()

103、 //調(diào)用這個成員函數(shù)是對WM_INITDIALOG消息作出的反應(yīng)。</p><p>  //這條消息是在對話框即將顯示之前,在Create,CreateIndirect或DoModal調(diào)用期間發(fā)出的。 </p><p><b>  {</b></p><p>  CDialog::OnInitDialog();</p><

104、p>  // TODO: Add extra initialization here</p><p>  RECT rect;</p><p>  m_pCreatWnd= new CMoveWnd(IDC_GRAPH_CREAT, m_G);</p><p>  m_pCreatWnd->Create(NULL,NULL,WS_CHILD|WS_VIS

105、IBLE,rect,this,0,NULL);</p><p>  return TRUE; // return TRUE unless you set the focus to a control</p><p>  // EXCEPTION: OCX Property Pages should return FALSE</p><p><b>  }

106、</b></p><p>  void CCreatGraphDlg::OnEditPoint() //編輯點函數(shù),用于在鼠標(biāo)在圖上單機,就自動創(chuàng)捷結(jié)點</p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here<

107、/p><p>  if(m_pCreatWnd->m_Status != 'V')</p><p><b>  {</b></p><p>  m_pCreatWnd->m_Status = 'V';</p><p>  m_pCreatWnd->Invalidate();&

108、lt;/p><p><b>  }</b></p><p><b>  }</b></p><p>  void CCreatGraphDlg::OnEditEdge() //編輯弧度函數(shù)</p><p><b>  {</b></p><p>  // T

109、ODO: Add your control notification handler code here</p><p>  if(m_pCreatWnd->m_Status != 'E')</p><p><b>  {</b></p><p>  m_pCreatWnd->m_Status = 'E

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論