【文章內(nèi)容簡(jiǎn)介】
dows 95發(fā)行時(shí), Visual C++ 。 Visual C++ 集成了MFC ,這個(gè)版本是專門為Windows 95以及Windows NT設(shè)計(jì)的。用戶可以通過(guò)微軟公司的訂閱服務(wù)(Microsoft Subscription Service)(此版本不再支持Win32s開(kāi)發(fā))。 Visual C++ 集成了MFC 。 Visual C++ ,于1998發(fā)行。發(fā)行至今一直被廣泛地用于大大小小的項(xiàng)目開(kāi)發(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 9Windows 、或Windows 2000。 Visual C++ .NET 2002 也即Visual C++ ,于2002年發(fā)行,集成了 MFC ,支持鏈接時(shí)代碼生成和調(diào)試執(zhí)行時(shí)檢查。這個(gè)版本還集成了Managed Extension for C++,以及一個(gè)全新的用戶界面(與Visual Basic和Visual C共用)。這也是為什么Visual C++ 。 Visual C++ .NET 2003 也即 Visual C++ ,集成了MFC ,于2003年發(fā)行,是對(duì)Visual C++ .NET 2002的一次重大升級(jí)。 eMbedded Visual C++ 用于Windows CE操作系統(tǒng)。Visual C++作為一個(gè)獨(dú)立的開(kāi)發(fā)環(huán)境被Microsoft Visual Studio 2005所替代。 Visual C++ 2005 也即Visual C++ ,集成了MFC ,于2005年11月發(fā)布。這個(gè)版本引進(jìn)了對(duì)C++/CLI語(yǔ)言和OpenMP的支持。 1Visual C++ 2008 也即Visual C++ ,于2007年11月發(fā)布。 。 1Visual C++ 2010Visual C++ ,2009年發(fā)布,此版本更加穩(wěn)定。VC++2010是目前最新的版本?! isual C++ 2008 ExpressVisual C++ 2008 Standard 標(biāo)準(zhǔn)版Visual C++ 2008 Professional 專業(yè)版Visual C++ 2008 Team System 團(tuán)隊(duì)系統(tǒng)版其中Microsoft Visual C++ 2008 Express 可從MSDN的網(wǎng)站免費(fèi)下載使用,并且不限制商業(yè)使用Visual Studio 2010 Professional 是供開(kāi)發(fā)人員執(zhí)行基本開(kāi)發(fā)任務(wù)的重要工具。可簡(jiǎn)化在各種平臺(tái) (包 括 SharePoint 和云)上創(chuàng)建、調(diào)試和開(kāi)發(fā)應(yīng)用程序的過(guò)程。Visual Studio 2010 Premium 是一個(gè)功能全面的工具集,可為個(gè)人或團(tuán)隊(duì)簡(jiǎn)化應(yīng)用程序開(kāi)發(fā)過(guò)程,支持交付可擴(kuò)展的高質(zhì)量應(yīng)用程序。Visual Studio 2010 Ultimate 是一個(gè)綜合性的應(yīng)用程序生命周期管理工具套件,可供團(tuán)隊(duì)用于確保從設(shè)計(jì)到部署的整個(gè)過(guò)程都能取得較高質(zhì)量的結(jié)果。Visual Studio Test Professional 2010是質(zhì)量保障團(tuán)隊(duì)的專用工具集,可簡(jiǎn)化測(cè)試規(guī)劃和手動(dòng)測(cè)試執(zhí)行過(guò)程。Test Professional 與開(kāi)發(fā)人員的 Visual Studio 軟件配合運(yùn)行,可在整個(gè)應(yīng)用程序開(kāi)發(fā)生命周期內(nèi)實(shí)現(xiàn)開(kāi)發(fā)人員和測(cè)試人員之間的高效協(xié)作。 第2章 基于VC的圖的遍歷算法的動(dòng)態(tài)演示系統(tǒng)的設(shè)計(jì)過(guò)程 系統(tǒng)的可行性對(duì)于一個(gè)軟件開(kāi)發(fā)項(xiàng)目來(lái)說(shuō),首先進(jìn)行可行性分析是值得的??尚行苑治鰧?shí)質(zhì)是大大壓縮和簡(jiǎn)化了設(shè)計(jì)過(guò)程,主要在較高層次上以較抽象的方式進(jìn)行,其目的是在盡可能短的時(shí)間內(nèi)以最小的代價(jià)確定該項(xiàng)目是否能夠開(kāi)發(fā),是否值得開(kāi)發(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)中,。用到的編程語(yǔ)言是Microsoft Visual C++。Microsoft Visual C++是一種現(xiàn)代的面向?qū)ο蟮某绦蜷_(kāi)發(fā)語(yǔ)言,。.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é),使得我能夠較早的開(kāi)始準(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)操作員很好的掌握使用方法。在開(kāi)發(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)系到開(kāi)發(fā)出來(lái)的軟件產(chǎn)品能否得到用戶的認(rèn)可,順利交付給客戶,客戶能否真正運(yùn)用我們的產(chǎn)品來(lái)幫助他(她)解決業(yè)務(wù)或管理問(wèn)題。按照軟件工程對(duì)軟件開(kāi)發(fā)過(guò)程的描述,需求階段我們可以細(xì)分為需求調(diào)研和需求分析兩個(gè)階段。需求調(diào)研需要充分細(xì)致地了解客戶目標(biāo),用戶業(yè)務(wù)內(nèi)容、流程等。這是一個(gè)對(duì)需求的采集過(guò)程,是進(jìn)行需求分析的基礎(chǔ)準(zhǔn)備[8]。需求是開(kāi)發(fā)者和用戶交互的一個(gè)過(guò)程,任何一方的不投入都會(huì)導(dǎo)致項(xiàng)目的失敗。當(dāng)然,由于用戶不是專業(yè)人士,開(kāi)發(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開(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)畫演示并配加一定的文字說(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ì)量和效果。 開(kāi)發(fā)工具及類庫(kù)的選擇根據(jù)系統(tǒng)需求確定開(kāi)發(fā)平臺(tái)為Windows XP(SP2)、Visual Studio 2010。主要開(kāi)發(fā)工具為 Microsoft Visual C++。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 包括各種增強(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)用程序。 系統(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í)際的分析,:退 出退 出深度優(yōu)先搜索初始化對(duì)話框演示對(duì)話框創(chuàng)建弧顯示圖完成創(chuàng)建結(jié)點(diǎn)自動(dòng)演示單步演示終止演示 系統(tǒng)功能模塊圖第三章 系統(tǒng)實(shí)現(xiàn) // : Defines the class behaviors for the application.//include include include ifdef _DEBUGdefine new DEBUG_NEWundef THIS_FILEstatic char THIS_FILE[] = __FILE__。 endif CDFSearchAppBEGIN_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 constructionCDFSearchApp::CDFSearchApp(){ // TODO: add construction code here, // Place all significant initialization in InitInstance}// The one and only CDFSearchApp objectCDFSearchApp theApp。// CDFSearchApp initializationBOOL CDFSearchApp::InitInstance(){ // Standard initialization // If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following // the specific initialization routines you do not need. CDFSearchDlg dlg。 m_pMainWnd = amp。dlg。 int nResponse = ()。 if (nResponse == IDOK) { // TODO: Place code here to hand