【文章內(nèi)容簡(jiǎn)介】
C++ )。盡管出生的比 Windows 95 早,這個(gè)版本的發(fā)行日期還是非常接近 Windows 95,可是當(dāng) Windows 95 發(fā)行時(shí), Visual C++ 也已經(jīng)發(fā)行了。因此很多程序開發(fā)者直接從 過(guò)渡到 ,把 跳過(guò)去了。 Visual C++ 集成了 MFC ,這個(gè)版本是專門 為 Windows 95 以及 Windows NT 設(shè)計(jì)的。用戶可以通過(guò)微軟公司的訂閱服務(wù)( Microsoft Subscription Service)升級(jí)至 和 版本(此版本不再支持 Win32s 開發(fā))。 Visual C++ 集成了 MFC ,是 版以來(lái)比較大的一次升級(jí)。 Visual C++ 集成了 ,于 1998 發(fā)行。發(fā)行至今一直被廣泛地用于大大小小的項(xiàng)目開發(fā)。但是,這個(gè)版本在 WindowsXP 下運(yùn)行會(huì)出現(xiàn)問(wèn)題,尤其是在調(diào)試模式的情況下(例如: 靜態(tài)變量的值并不會(huì)顯示)。 這個(gè)調(diào)試問(wèn)題可以通過(guò)打一個(gè)叫 “Visual C++ Pack”的 補(bǔ)丁 來(lái)解決。奇怪的是,這個(gè)網(wǎng)頁(yè)強(qiáng)調(diào)用戶也必須運(yùn)行 Windows 9 Windows 、或 Windows 2021。 Visual C++ .NET 2021 也即 Visual C++ ,于 2021 年發(fā)行,集成了 MFC ,支持鏈接時(shí)代碼生成和調(diào)試執(zhí)行時(shí)檢查。這 個(gè)版本還集成了 Managed Extension for C++,以及一個(gè)全新的用戶界面(與 Visual Basic 和 Visual C共用)。這也是為什么 Visual C++ 仍然被廣泛 使用的一個(gè)主要原因。 Visual C++ .NET 2021 也即 Visual C++ ,集成了 MFC ,于 2021 年發(fā)行,是對(duì) Visual C++ .NET 2021 的一次重大升級(jí)。 eMbedded Visual C++ 用于 Windows CE 操作系統(tǒng)。 Visual C++作為一個(gè)獨(dú)立的開發(fā)環(huán)境被Microsoft Visual Studio 2021 所替代。 Visual C++ 2021 也即 Visual C++ ,集成了 MFC ,于 2021 年 11 月發(fā)布。這個(gè)版本引進(jìn)了對(duì) C++/CLI 語(yǔ)言和 OpenMP 的支持。 1 Visual C++ 2021 也即 Visual C++ ,于 2021 年 11 月發(fā)布。這個(gè)版本支持 .NET 。 1 Visual C++ 2021 Visual C++ , 2021 年發(fā)布,此版本更加穩(wěn)定。 VC++2021 是目前最新的版本。 Visual C++ 2021 ExpressVisual C++ 2021 Standard 標(biāo)準(zhǔn)版 Visual C++ 2021 Professional 專業(yè)版 Visual C++ 2021 Team System 團(tuán)隊(duì)系統(tǒng)版其中Microsoft Visual C++ 2021 Express 可從 MSDN 的網(wǎng)站免費(fèi)下載使用,并且不限制商業(yè)使用 最新版本 Visual Studio 2021 Professional 是供開發(fā)人員執(zhí)行基本開發(fā)任務(wù)的重要工具??珊?jiǎn)化在各種平臺(tái) (包 括 SharePoint 和云)上創(chuàng)建、調(diào)試 和開發(fā) 應(yīng)用程序 的過(guò)程。 Visual Studio 2021 Premium 是一個(gè)功能全面的工具集,可為個(gè)人或團(tuán)隊(duì)簡(jiǎn)化 應(yīng)用程序開發(fā) 過(guò)程,支持交付可擴(kuò)展的高質(zhì)量應(yīng)用程序。 Visual Studio 2021 Ultimate 是一個(gè)綜合性的應(yīng)用程序生命周期管理工具套件,可供團(tuán)隊(duì)用于確保從設(shè)計(jì)到部署的 整個(gè)過(guò)程都能取得較高質(zhì)量的結(jié)果。 Visual Studio Test Professional 2021是質(zhì)量保障團(tuán)隊(duì)的專用工具集,可簡(jiǎn)化測(cè)試規(guī)劃和手動(dòng)測(cè)試執(zhí)行過(guò)程。 Test Professional 與開發(fā)人員的 Visual Studio 軟件配合運(yùn)行,可在整個(gè)應(yīng)用程序開發(fā)生命周期內(nèi)實(shí)現(xiàn)開發(fā)人員和測(cè)試人員之間的高效協(xié)作。 第 2 章 基于 VC 的圖的遍歷算法的動(dòng)態(tài)演示系統(tǒng)的設(shè)計(jì)過(guò)程 系統(tǒng)的可行性 對(duì)于一個(gè)軟件開發(fā)項(xiàng)目來(lái)說(shuō) ,首先進(jìn)行可行性分析是值得的??尚行苑治鰧?shí)質(zhì)是 大大壓縮和簡(jiǎn)化了設(shè)計(jì)過(guò)程 ,主要在較高層次上以較抽象的方式進(jìn)行 ,其目的是在盡可能短的時(shí)間內(nèi)以最小的代價(jià)確定該項(xiàng)目是否能夠開發(fā) ,是否值得開發(fā)??尚行苑治鍪紫纫獙?duì)問(wèn)題進(jìn)行定義 ,初步確定問(wèn)題的規(guī)模和目標(biāo) 。然后在高層次上分析現(xiàn)有系統(tǒng) ,確定現(xiàn)有系統(tǒng)的物理模型和邏輯模型 。再根據(jù)有關(guān)問(wèn)題 ,在高層次上設(shè)計(jì)銀決有關(guān)問(wèn)題的新系統(tǒng)的若干種可能的解決方案 。最后 ,對(duì)每一種方案研究它的可能性 [7]??尚行匝芯恐饕獜慕?jīng)濟(jì)、技術(shù)、操作等諸方面來(lái)研究新系統(tǒng)每種解決方案的可行性 ,并作出明確的結(jié)論供用戶參考。 技術(shù)可行性 在 動(dòng)態(tài)演示系 統(tǒng) 中 ,用到的開發(fā)平臺(tái)是 .NET。 用到的編程語(yǔ)言是Microsoft Visual C++。 Microsoft Visual C++是一種現(xiàn)代的面向?qū)ο蟮某绦蜷_發(fā)語(yǔ)言 ,它使得程序員能夠在新的微軟的 .NET 平臺(tái)上快速開發(fā)種類豐富的應(yīng)用程序 。 .NET 平臺(tái)提供了大量的工具和服務(wù) ,能夠最大限度地發(fā)掘和使用計(jì)算和通信能力。在動(dòng)態(tài)演示系統(tǒng)中 ,涉及到很多的對(duì)象實(shí)體。 基礎(chǔ) 可行性 本 人在大學(xué)四年期間,接受了比較系統(tǒng)的關(guān)于數(shù)據(jù)結(jié)構(gòu)算法、 visualC++的相關(guān)專業(yè)知識(shí)方面的教育,具有了很好的理論基礎(chǔ)。并且通過(guò)指導(dǎo)老 師的認(rèn)真指導(dǎo),本人腦海中以初步有了本系統(tǒng)的映像。 本人此次設(shè)計(jì)的指導(dǎo)老師認(rèn)真負(fù)責(zé),使得我能夠較早的開始準(zhǔn)備工作,所以本人有教寬裕的時(shí)間來(lái)完成此次設(shè)計(jì)。同時(shí)本人能很好的應(yīng)用我系現(xiàn)有資源,系里為我們能夠順利完成畢業(yè)設(shè)計(jì)做了充分準(zhǔn)備,保證了我們能夠方便的使用系電腦機(jī)房進(jìn)行相關(guān)的實(shí)驗(yàn)測(cè)驗(yàn),使得我們有了很好的硬件保障。 操作可行性 鑒于本系統(tǒng)的特點(diǎn), Windows 友好的用戶界面和本系統(tǒng)良好的安全性設(shè)置,可以使系統(tǒng)操作員很好的掌握使用方法。在開發(fā)過(guò)程中,還盡量給操作員以方便,考慮到操作員的實(shí)際情況大大提高工作效率。而且該系統(tǒng)簡(jiǎn)單易操作,易維護(hù), 減少了不必要的麻煩。 系統(tǒng)需求分析 軟件的需求分析是從用戶的業(yè)務(wù)中提取出軟件系統(tǒng)能夠幫助用戶解決的業(yè)務(wù)問(wèn)題,通過(guò)對(duì)用戶業(yè)務(wù)問(wèn)題的分析,規(guī)劃出我們的軟件產(chǎn)品。這個(gè)步驟是對(duì)用戶業(yè)務(wù)需求的一個(gè)升華,是一個(gè)把用戶業(yè)務(wù)優(yōu)化,轉(zhuǎn)化為軟件產(chǎn)品,從而提升管理并產(chǎn)生質(zhì)的飛躍。這一步是否成功,直接關(guān)系到開發(fā)出 來(lái)的軟件產(chǎn)品能否得到用戶的認(rèn)可,順利交付給客戶,客戶能否真正運(yùn)用我們的產(chǎn)品來(lái)幫助他(她)解決業(yè)務(wù)或管理問(wèn)題。按照軟件工程對(duì)軟件開發(fā)過(guò)程的描述,需求階段我們可以細(xì)分為需求調(diào)研和需求分析兩個(gè)階段。需求調(diào)研需要充分細(xì)致地了解客戶目標(biāo),用戶業(yè)務(wù)內(nèi)容、流程等。這是一個(gè)對(duì)需求的采集過(guò)程,是進(jìn)行需求分析的基礎(chǔ)準(zhǔn)備[8]。需求是開發(fā)者和用戶交互的一個(gè)過(guò)程,任何一方的不投入都會(huì)導(dǎo)致項(xiàng)目的失敗。當(dāng)然,由于用戶不是專業(yè)人士,開發(fā)者有權(quán)利告訴用戶應(yīng)該采用何種態(tài)度來(lái)對(duì)待項(xiàng)目的需求。 用戶需求分析 《數(shù)據(jù)結(jié)構(gòu)》作為信息類專 業(yè)的一門核心專業(yè)課,對(duì)《編譯原理》等后續(xù)課程的學(xué)習(xí)極其重要。但該課程涉及大量的概念、定義、模型和算法,尤其是圖的算法顯得很抽象和深?yuàn)W。用傳統(tǒng)的 “ 粉筆 +黑板 ” 形式很難將算法的執(zhí)行過(guò)程動(dòng)態(tài)地演示出來(lái),影響了教學(xué)效果。因此有必要對(duì)圖的算法的動(dòng)態(tài)演示進(jìn)行研究,設(shè)計(jì)《數(shù)據(jù)結(jié)構(gòu)》算法演示系統(tǒng),幫助學(xué)生更快地掌握算法的精髓與實(shí)質(zhì)。 傳統(tǒng)的《數(shù)據(jù)結(jié)構(gòu)》算法是基于以 TurboC 為代表的 DOS 開發(fā)壞境,可視化效果很差。而這種壞境給學(xué)習(xí)者的理解和深入探討帶來(lái)很大的問(wèn)題。后來(lái),隨著多媒體技術(shù)的發(fā)展,《數(shù)據(jù)結(jié)構(gòu)》的教學(xué)開始運(yùn)用教學(xué) 幻燈片的形式來(lái)講授,這些教學(xué)幻燈片大多數(shù)都是靜態(tài)的圖片或者是一些基本的算法。這種教學(xué)模式彌補(bǔ)了傳統(tǒng)的黑板板書的不足,較大地提高了教學(xué)質(zhì)量。不過(guò)這種教學(xué)模式在可視性和交互性方面都存在較大的不足。目前,還有一種教學(xué)模式是采用 flash 動(dòng)畫演示并配加一定的文字說(shuō)明的方式,這種方式可以在很大程度上揭示算法原理,唯一的遺憾就是這種動(dòng)畫演示的內(nèi)容不是很全面,而且在與學(xué)習(xí)者的交互性方面存在不足,不能讓學(xué)習(xí)者自己輸入相關(guān)的參數(shù)。因此,急需一款可視性,交互性極強(qiáng)的動(dòng)態(tài)演示系統(tǒng),使得老師能過(guò)形象生動(dòng)的向?qū)W生演示,大大改善傳統(tǒng)教 學(xué)的弊端,使復(fù)雜的難以理解的數(shù)據(jù)結(jié)構(gòu)算法通過(guò)教師的課堂演示和學(xué)習(xí)者的不斷 自我交互式操作試驗(yàn)變得通俗明朗,有效地提高教學(xué)的質(zhì)量和效果。 開發(fā)工具及類庫(kù)的選擇 根據(jù)系統(tǒng)需求確定開發(fā)平臺(tái)為 Windows XP( SP2)、 Visual Studio 2021。 主要開發(fā)工具為 Microsoft Visual C++。 Visual Studio 2021 提供了高級(jí)開發(fā)工具、調(diào)試功能、數(shù)據(jù)庫(kù)功能和創(chuàng)新功能,幫助在各種平臺(tái)上快速創(chuàng)建當(dāng)前最先進(jìn)的應(yīng)用程序。 Visual Studio 2021 包括各種增強(qiáng)功 能,例如可視化設(shè)計(jì)器(使用 .NET Framework 加速開發(fā))、對(duì) Web 開發(fā)工具的大量改進(jìn),以及能夠加速開發(fā)和處理所有類型數(shù)據(jù)的語(yǔ)言增強(qiáng)功能。 Visual Studio 2021 為開發(fā)人員提供了所有相關(guān)的工具和框架支持,幫助創(chuàng)建引人注目的、令人印象深刻并支持 AJAX 的 Web 應(yīng)用程序。 系統(tǒng)總體方案設(shè)計(jì) 本系統(tǒng)共分為兩個(gè)對(duì)話框:初始化對(duì)話框、演示對(duì)話框。初始化對(duì)話框:用于對(duì)數(shù)據(jù)的初始化,創(chuàng)建結(jié)點(diǎn)、創(chuàng)建弧,然后顯示圖,重新排列結(jié)點(diǎn)位置,使之具有簡(jiǎn)潔美觀。最后創(chuàng)建完成。初始化對(duì) 話框也可以有退出,保證程序設(shè)計(jì)的合理性。和思維的嚴(yán)密性。 演示對(duì)話框:該對(duì)話框有五部分,分別是:圖的搜索順序演示、程序調(diào)用的堆棧模擬、示例源程序代碼顯示、當(dāng)前變量值顯示、其它按鈕(用于控制對(duì)話框顯示)。按結(jié)構(gòu)化程序設(shè)計(jì)思想和實(shí)際的分析,分析得出圖 系統(tǒng)功能模塊圖: 圖 系統(tǒng)功能模塊圖 深度優(yōu)先搜索 初始化對(duì)話框 演示對(duì)話框 創(chuàng)建弧 顯示圖 完成 創(chuàng)建結(jié)點(diǎn) 自動(dòng)演示 單步演示 終止演示 退 出 退 出 第三章 系統(tǒng)實(shí)現(xiàn) 和 的實(shí)現(xiàn) // : Defines the class behaviors for the application. // include include include ifdef _DEBUG define new DEBUG_NEW undef THIS_FILE static char THIS_FILE[] = __FILE__。 endif CDFSearchApp BEGIN_MESSAGE_MAP(CDFSearchApp, CWinApp) //{{AFX_MSG_MAP(CDFSearchApp) // NOTE the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG ON_COMMAND(ID_HELP, CWinApp::OnHelp) END_MESSAGE_MAP() // CDFSearchApp construction CDFSearchApp::CDFSearchApp() { // TODO: add construction code here, // Place all significant initialization in InitInstance } // The one and only CDFSearchApp object CDFSearchApp theApp。 // CDFSearchApp initialization BOOL CDFSearchApp::InitInstance() { // Standard initialization // If you are not using these features and wish to reduce the size // of your final executa