版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 文檔資料管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b> 摘 要</b></p><p> 本系統(tǒng)使用MFC提供的文檔視圖結(jié)構(gòu)為主體框架,用XML文擋進(jìn)行數(shù)據(jù)的儲(chǔ)存,實(shí)現(xiàn)對(duì)各種資料的管理。第一部分是實(shí)現(xiàn)對(duì)用戶(hù)界面操作的響應(yīng),這部分主要是使用MFC提供的不同的窗口類(lèi),即框架窗口,視圖窗口,對(duì)話(huà)窗口以及控件來(lái)實(shí)現(xiàn)用戶(hù)操作界面的主體框架的實(shí)現(xiàn)。
2、第二部分為處理具體事務(wù)的模塊,實(shí)現(xiàn)用戶(hù)對(duì)資料的管理和使用。第三部分是用XML編寫(xiě)儲(chǔ)存結(jié)構(gòu),這部分主要是設(shè)計(jì)XML樹(shù)和對(duì)其存儲(chǔ)和讀取的具體實(shí)現(xiàn)。</p><p> 利用本系統(tǒng)可以管理自己的各種資料(文本的和電子的), 對(duì)每一份資料均有命名,對(duì)所有的資料進(jìn)行歸類(lèi),指明各資料的存放位置,可以給每一份資料指明關(guān)鍵字,便于用戶(hù)查找資料。若是電子資料(如電腦上的文件),可以通過(guò)鼠標(biāo)點(diǎn)擊直接打開(kāi)文件。整個(gè)系統(tǒng)實(shí)現(xiàn)了最初設(shè)計(jì)的
3、各種功能,并能夠快速方便的幫助用戶(hù)查找到需要的資料信息,整個(gè)操作界面簡(jiǎn)潔和實(shí)用。</p><p> 關(guān)鍵詞: MFC;XML;框架;窗口</p><p> The Design and Implementation of the Documents Management System</p><p><b> Abstract</b>&l
4、t;/p><p> The Documents Management System can manage various materials. It is implemented by the Document-View framework provided by the MFC. In order to hold the materials data, a XML document is used. The sy
5、stem is composed by the user interface、the logic processing and the XML operation. The first part responds to the operation of the user. This part is implemented by the various kinds of windows in the MFC, such as a fram
6、e window, a view window, the dialog windows, and many control windows. The second</p><p> Users can manage their own materials conveniently by this system. In the system, every material has many attributes
7、such as a name what we can call it, a path indicates where it is, an author who writes it, a catalogs field specifies how many catalogs it belongs to, and some keywords for searching it. If the material is a document in
8、the computer, users can view it directly by double clicking the document. The system is enabled all the functions at design and quickly and conveniently search the </p><p> Key words: MFC;XML;Frame;Window&l
9、t;/p><p><b> 目 錄</b></p><p><b> 論文總頁(yè)數(shù):20頁(yè)</b></p><p><b> 1引 言1</b></p><p> 2 設(shè)計(jì)理論依據(jù)1</p><p> 2.1 MFC簡(jiǎn)介1</p>
10、<p> 2.2 XML介紹2</p><p> 3文檔資料管理系統(tǒng)簡(jiǎn)介4</p><p> 3.1 系統(tǒng)開(kāi)發(fā)背景4</p><p> 3.2系統(tǒng)開(kāi)發(fā)環(huán)境5</p><p> 3.2.1 系統(tǒng)軟件環(huán)境5</p><p> 3.2.2工具簡(jiǎn)介5</p><p>
11、;<b> 3.3系統(tǒng)概述5</b></p><p> 4文檔資料管理系統(tǒng)的設(shè)計(jì)6</p><p> 4.1系統(tǒng)需求分析及功能設(shè)計(jì)6</p><p> 4.2 XML存儲(chǔ)結(jié)構(gòu)的設(shè)計(jì)7</p><p> 4.3用戶(hù)界面和事物處理12</p><p> 4.3.1用戶(hù)界面12&
12、lt;/p><p> 4.3.2事務(wù)處理13</p><p><b> 5軟件測(cè)試15</b></p><p><b> 結(jié) 論18</b></p><p><b> 參考文獻(xiàn)18</b></p><p><b> 致
13、 謝19</b></p><p><b> 聲 明20</b></p><p> 商業(yè)源代碼,全套計(jì)算機(jī)畢業(yè)設(shè)計(jì)免費(fèi)下載 http://www.ibaidusoft.com</p><p> 更多全套設(shè)計(jì)聯(lián)系QQ:1042897696</p><p> 最新設(shè)計(jì)大全 http://www.b
14、ylw168.com/sf/20100915/3539.html</p><p><b> 1引 言</b></p><p> 當(dāng)今世界是飛速發(fā)展的信息時(shí)代,在各行各業(yè)中離不開(kāi)信息處理,這正是計(jì)算機(jī)被廣泛用于管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。但是在眾多的資料中,如何規(guī)范,準(zhǔn)確,快速,全面的管理自己的資料,如書(shū)籍,電子資料等,并且方便自己
15、查閱。使用計(jì)算機(jī)進(jìn)行信息管理控制,不僅提高了工作效率,而且大大提高了其安全性。本系統(tǒng)就是為了管理好自己的各種有用資料信息而設(shè)計(jì)的。</p><p> 面對(duì)各種繁多的資料,很多人是沒(méi)有進(jìn)行合理的分類(lèi)整理和建立一個(gè)資料管理系統(tǒng)來(lái)管理它們,有時(shí)候在手頭研究需要一些資料的時(shí)候往往是靠記憶來(lái)尋找,但是這樣做會(huì)浪費(fèi)很多時(shí)間和精力。由于數(shù)據(jù)繁多容易丟失,且不易查找??偟膩?lái)說(shuō)缺乏系統(tǒng),規(guī)范的信息處理手段。盡管我們有計(jì)算機(jī),但是
16、尚未用于信息管理,沒(méi)有發(fā)揮它的效益,資料閑置比較突出,就是管理信息開(kāi)發(fā)的基本環(huán)境?;诖祟?lèi)問(wèn)題,我認(rèn)為有必要建立一個(gè)資料管理系統(tǒng),使資料管理工作規(guī)范化,程序化,避免資料管理隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢(xún)和修改資料情況。</p><p> 本次畢業(yè)設(shè)計(jì)是在老師指導(dǎo)下自己獨(dú)立完整的進(jìn)行軟件的設(shè)計(jì),程序編寫(xiě),調(diào)試等工作。通過(guò)自己對(duì)整個(gè)流程的設(shè)計(jì)和實(shí)現(xiàn),能夠完成最初提出的要求,也對(duì)一些功
17、能進(jìn)行了擴(kuò)展和加深。利用文檔資料管理系統(tǒng)能夠比較完善的管理自己的資料,也能比較快速的找到自己以前看過(guò)或是記錄下的資料,使用起來(lái)也很方便,快速。</p><p><b> 2 設(shè)計(jì)理論依據(jù)</b></p><p><b> 2.1 MFC簡(jiǎn)介</b></p><p> MFC微軟基礎(chǔ)類(lèi)(Microsoft Founda
18、tion Classes),實(shí)際上是微軟提供的,用于在C++環(huán)境下編寫(xiě)應(yīng)用程序的一個(gè)框架和引擎。MFC就是掛在它之上的一個(gè)輸助軟件開(kāi)發(fā)包,MFC作為與VC++血肉相連的部分(注意C++和VC++的區(qū)別:C++是一種程序設(shè)計(jì)語(yǔ)言,是一種大家都承認(rèn)的軟件編制的通用規(guī)范,而VC++只是一個(gè)編譯器,或者說(shuō)是一種編譯器+源程序編輯器的IDE,WS,PlatForm),MFC同BC++集成的VCL一樣是一個(gè)非外掛式的軟件包,類(lèi)庫(kù),只不過(guò)MFC類(lèi)是微
19、軟為VC++專(zhuān)配的. </p><p> MFC是Win API與C++的結(jié)合,API,即微軟提供的Winos下應(yīng)用程序的編程語(yǔ)言接口,是一種軟件編程的規(guī)范,但不是一種程序開(kāi)發(fā)語(yǔ)言本身。MFC不只是一個(gè)功能單純的界面開(kāi)發(fā)系統(tǒng),它提供的類(lèi)絕大部分用來(lái)進(jìn)行界面開(kāi)發(fā),關(guān)聯(lián)一個(gè)窗口的動(dòng)作,但它提供的類(lèi)中有好多類(lèi)不與一個(gè)窗口關(guān)聯(lián),即類(lèi)的作用不是一個(gè)界面類(lèi),不實(shí)現(xiàn)對(duì)一個(gè)窗口對(duì)象的控制(如創(chuàng)建,銷(xiāo)毀)</p>
20、<p> MFC中的各種類(lèi)結(jié)合起來(lái)構(gòu)成了一個(gè)應(yīng)用程序框架,它的目的就是讓程序員在此基礎(chǔ)上來(lái)建立Windows下的應(yīng)用程序。MFC框架定義了應(yīng)用程序的輪廓,并提供了用戶(hù)接口的標(biāo)準(zhǔn)實(shí)現(xiàn)方法,程序員所要做的就是通過(guò)預(yù)定義的接口把具體應(yīng)用程序特有的東西填入這個(gè)輪廓。Microsoft Visual C++提供了相應(yīng)的工具來(lái)完成這個(gè)工作:AppWizard可以用來(lái)生成初步的框架文件(代碼和資源等);資源編輯器用于幫助直觀地設(shè)計(jì)用戶(hù)接口
21、;Class Wizard用來(lái)協(xié)助添加代碼到框架文件;最后,編譯,則通過(guò)類(lèi)庫(kù)實(shí)現(xiàn)了應(yīng)用程序特定的邏輯。</p><p><b> 2.2 XML介紹</b></p><p> XML是Extensible Markup Language的縮寫(xiě),即可擴(kuò)展標(biāo)記語(yǔ)言是一種您可以用來(lái)創(chuàng)建自己標(biāo)記的標(biāo)記語(yǔ)言。它由萬(wàn)維網(wǎng)協(xié)會(huì)(W3C)創(chuàng)建,用來(lái)克服 HTML(即超文本標(biāo)記語(yǔ)言
22、(Hypertext Markup Language),它是所有網(wǎng)頁(yè)的基礎(chǔ))的局限。和 HTML 一樣;XML 基于 SGML ― 標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言(Standard Generalized Markup Language)XML實(shí)際上是Web上表示結(jié)構(gòu)化信息的一種標(biāo)準(zhǔn)文本格式,它沒(méi)有復(fù)雜的語(yǔ)法和包羅萬(wàn)象的數(shù)據(jù)定義。XML同HTML一樣,都來(lái)自SGML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言)。SGML是一種在Web發(fā)明之前就早已存在的用標(biāo)記來(lái)描述文檔資料的
23、通用語(yǔ)言。但SGML十分龐大且難于學(xué)習(xí)和使用。鑒于此,人們提出了HTML語(yǔ)言。但近年來(lái),隨著Web應(yīng)用的不斷深入,HTML在需求廣泛的應(yīng)用中已顯得捉襟見(jiàn)肘,有人建議直接使用SGML作為Web語(yǔ)言。但SGML太龐大了,學(xué)用兩難尚且不說(shuō),就是全面實(shí)現(xiàn)SGML的瀏覽器也非常困難。于是Web標(biāo)準(zhǔn)化組織W3C建議使用一種精簡(jiǎn)的SGML版本——XML。XML與SGML一樣,是一個(gè)</p><p> XML作為引人注目的核心
24、技術(shù)應(yīng)用于BtoB、Web服務(wù)、.NET等許多系統(tǒng)中。XML可以作為電子數(shù)據(jù)交換的統(tǒng)一格式,用XML可以對(duì)數(shù)據(jù)關(guān)系進(jìn)行定義形成特有的標(biāo)準(zhǔn),因此各行各業(yè)都在建立自己的行業(yè)化標(biāo)準(zhǔn),以應(yīng)用于網(wǎng)絡(luò)上處理電子商務(wù),把后臺(tái)系統(tǒng)通過(guò)Web站點(diǎn)表現(xiàn)出來(lái)。XML還可以作為數(shù)據(jù)倉(cāng)儲(chǔ),一個(gè)XML文件就是一個(gè)小的數(shù)據(jù)庫(kù),通過(guò)對(duì)數(shù)據(jù)關(guān)系的定義形成各種關(guān)系、屬性的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)交換、上下文檢索、多媒體傳輸。XML具有其他方法所不具備的數(shù)據(jù)描述特點(diǎn)XML是以文本形式
25、來(lái)描述的一種文件格式 由于XML是以文本形式描述的,所以適合于各種平臺(tái)環(huán)境的數(shù)據(jù)交換。同樣由于使用文本來(lái)描述內(nèi)容,可以越過(guò)不同平臺(tái)的障礙進(jìn)行正常的數(shù)據(jù)交換。但是,文本形式也會(huì)因?yàn)槲淖执a的不同造成不能閱讀的問(wèn)題,在這一點(diǎn)上XML有著非常完美的解決方案。 XML使用有意義的標(biāo)記(Tag) 在XML中文件是由一個(gè)個(gè)稱(chēng)之為元素(Element)的部件構(gòu)成。使用標(biāo)記(Tag)來(lái)描述元素。由于使用了標(biāo)記的描述方法,可以保持原數(shù)據(jù)的意思和構(gòu)造在互聯(lián)
26、網(wǎng)上進(jìn)行數(shù)據(jù)交換,進(jìn)而可以保持不同系統(tǒng)之間數(shù)據(jù)交換的靈活性。 </p><p> 可以說(shuō),XML是“定義語(yǔ)言的語(yǔ)言”,也即是一種元語(yǔ)言。由于XML具有元語(yǔ)言的功能,所以可以成為描述電子商務(wù)數(shù)據(jù)、多媒體演示數(shù)據(jù)、數(shù)學(xué)公式等各種各樣數(shù)據(jù)應(yīng)用語(yǔ)言的基礎(chǔ)語(yǔ)言。下面提供幾個(gè)以XML為基礎(chǔ)生成的數(shù)據(jù)描述語(yǔ)言(本文亦稱(chēng)為XML應(yīng)用語(yǔ)言)的應(yīng)用例子,即出版媒體:Open eBook(電子書(shū)籍)、NewsML(新聞媒體);科學(xué):
27、MathML(數(shù)學(xué)表達(dá)式)、CML(化學(xué));電子商務(wù):cXML(電子商務(wù))、FpML(金融);多媒體:SMIL(多媒體演示)、BML(衛(wèi)星數(shù)據(jù)傳送)。 </p><p> XML是描述內(nèi)容的數(shù)據(jù)格式,在使用XML數(shù)據(jù)時(shí),還需要XML數(shù)據(jù)的顯示、打印、數(shù)據(jù)結(jié)構(gòu)的變更等許多相關(guān)技術(shù)。如果這些相關(guān)技術(shù)也都標(biāo)準(zhǔn)化的話(huà),即使在不同平臺(tái)開(kāi)發(fā)應(yīng)用程序也都可以用相同的方法,使開(kāi)發(fā)難度降低。 處理XML數(shù)據(jù)時(shí),一定要使用XML
28、Processor(也就是XML Parser),把XML數(shù)據(jù)結(jié)構(gòu)的檢查等交給XML Parser去做。應(yīng)用程序?qū)邮盏絏MLProcessor傳遞來(lái)的XML樹(shù)進(jìn)行處理,向用戶(hù)提供服務(wù)。此時(shí),不管是電子商務(wù),還是知識(shí)管理,都是定義XML數(shù)據(jù)結(jié)構(gòu)的技術(shù)、顯示打印XML數(shù)據(jù)的技術(shù)、XML數(shù)據(jù)結(jié)構(gòu)變更技術(shù)、XML數(shù)據(jù)聯(lián)接整合技術(shù)、用程序操作XML樹(shù)的API和其它應(yīng)用技術(shù)的組合。</p><p> 在XML中用戶(hù)可以自
29、由的定義標(biāo)記名以及與標(biāo)記相關(guān)的元素及元素層次,這是XML的主要特征。但是,如果定義的都是只有自己才能理解的標(biāo)記,就無(wú)法與其他人進(jìn)行交換數(shù)據(jù)。為了在企業(yè)團(tuán)體之間進(jìn)行XML格式的數(shù)據(jù)的交換,XML數(shù)據(jù)的結(jié)構(gòu)、元素的名稱(chēng)、元素的數(shù)據(jù)類(lèi)型以及元素的親子關(guān)系都需要仔細(xì)考慮,一定要設(shè)計(jì)成人和系統(tǒng)能夠理解的語(yǔ)言。這樣設(shè)計(jì)的XML數(shù)據(jù)結(jié)構(gòu)在XML領(lǐng)域稱(chēng)為Schema,描述Schema的語(yǔ)言稱(chēng)為Schema語(yǔ)言。DTD是最普通XML的Schema語(yǔ)言是D
30、TD(Document Type Definition:文檔類(lèi)型定義)。DTD是遠(yuǎn)在SGML時(shí)期就一直使用的Schema語(yǔ)言,1998年制訂XML語(yǔ)法時(shí),沿用了描述Schema的DTD。XML Schema中有下述DTD中不具備的特征:多個(gè)Schema復(fù)合使用XML名字空間;用XML語(yǔ)法描述;可以詳細(xì)定義元素的內(nèi)容及屬性值的數(shù)據(jù)類(lèi)型。由于在XML Schema中的數(shù)據(jù)結(jié)構(gòu)也都是用XML數(shù)據(jù)來(lái)表現(xiàn)的,與DTD相比數(shù)據(jù)量增大很多。但是,XM
31、L Schema的表現(xiàn)力要遠(yuǎn)比DTD強(qiáng)得多,不僅支持字符串、10進(jìn)制數(shù)、浮動(dòng)小數(shù)點(diǎn)、日期等,還支持m</p><p> XML作為數(shù)據(jù)描述語(yǔ)言是非常優(yōu)秀的,但是并不是所有的電子數(shù)據(jù)都是轉(zhuǎn)換到XML是最有效的。例如XML的文本表現(xiàn)手法、標(biāo)記的符號(hào)化等會(huì)導(dǎo)致XML數(shù)據(jù)比二進(jìn)制表現(xiàn)方法數(shù)據(jù)量增加,尤其當(dāng)數(shù)據(jù)量很大時(shí),會(huì)成為很大的問(wèn)題。也就是說(shuō),XML的導(dǎo)入要根據(jù)具體需求,比較其優(yōu)缺點(diǎn),在充分發(fā)揮XML優(yōu)點(diǎn)的領(lǐng)域進(jìn)行。
32、盡管XML具備了作為通用數(shù)據(jù)描述語(yǔ)言的優(yōu)秀特征,但是XML不是編程語(yǔ)言,說(shuō)到底它是一種數(shù)據(jù)描述的技術(shù)。因此XML文件的顯示、文件結(jié)構(gòu)的變更、應(yīng)用程序的操作等XML相關(guān)技術(shù)也是非常重要的。</p><p> 隨著計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展深入XML技術(shù)的應(yīng)用也將不斷擴(kuò)大。該技術(shù)不僅在傳統(tǒng)的銀行之間數(shù)據(jù)交換、證券公司對(duì)上市公司情況的數(shù)據(jù)統(tǒng)計(jì)、圖書(shū)館對(duì)圖書(shū)的查詢(xún)檢索、企事業(yè)文件檔案管理等領(lǐng)域的應(yīng)用更加迫切,在電子商務(wù)
33、、搜索引擎軟件、自動(dòng)智能翻譯、文檔發(fā)聲軟件等領(lǐng)域也將得到更大的發(fā)展,特別是近期發(fā)展起來(lái)的移動(dòng)通訊網(wǎng)絡(luò)服務(wù)的發(fā)展,將使各種各樣的信息經(jīng)過(guò)格式轉(zhuǎn)換到達(dá)PDA、甚至到達(dá)手持電話(huà)機(jī),將來(lái)我們可以通過(guò)網(wǎng)絡(luò)數(shù)據(jù)格式轉(zhuǎn)換服務(wù)使小小的手機(jī)可以閱讀到大千世界的豐富信息。</p><p> 3文檔資料管理系統(tǒng)簡(jiǎn)介</p><p> 3.1 系統(tǒng)開(kāi)發(fā)背景</p><p> 本文檔資
34、料管理系統(tǒng)是為個(gè)人管理自己的各種資料的一個(gè)基于Windows XP系統(tǒng)的一個(gè)應(yīng)用軟件.現(xiàn)在也有很多的資料管理系統(tǒng),其中都是一個(gè)運(yùn)用界面和邏輯接口嵌入一個(gè)數(shù)據(jù)庫(kù),這樣在編寫(xiě)軟件的時(shí)候也很方便和快速。但是對(duì)于編程人員來(lái)說(shuō),利用別的工具來(lái)實(shí)現(xiàn)自己的東西總是不好的事,尤其對(duì)于我們這種經(jīng)驗(yàn)不足的人來(lái)說(shuō),尤其是不好的事情。因此我就想自己編寫(xiě)一個(gè)儲(chǔ)存結(jié)構(gòu)來(lái)代替數(shù)據(jù)庫(kù)。因?yàn)樵谝郧皩W(xué)習(xí)過(guò)XML知道用它可以實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)功能,于是決定利用它編寫(xiě)文件存儲(chǔ)結(jié)構(gòu)
35、來(lái)實(shí)現(xiàn)本系統(tǒng)的數(shù)據(jù)存儲(chǔ)。</p><p> 現(xiàn)在人們有了電腦,對(duì)于存儲(chǔ)自己需要的資料有了一個(gè)好的地方,但是如何能夠有效的把日益增多的這些各種資料管理起來(lái),能夠方便需要的時(shí)候取出來(lái),這是一個(gè)難題;對(duì)于一些以前看過(guò)的書(shū),如何在以后突然需要的時(shí)候,快速的找到它的擺放位子?這些都是開(kāi)發(fā)本資料管理系統(tǒng)的一個(gè)原因。為了管理個(gè)人的資料例如:電子資料,紙版資料等不同的資料并對(duì)所有的資料進(jìn)行歸類(lèi),如劃分為VC++資料,windo
36、ws類(lèi)資料,健康類(lèi)資料等。當(dāng)這些資料經(jīng)過(guò)科學(xué)的分類(lèi),并把各種不同屬性的資料各類(lèi)管理起來(lái),這樣就實(shí)現(xiàn)了對(duì)資料的有效管理,也方便了用戶(hù)在需要的時(shí)候很快能夠找到想要的資料,節(jié)約了很多人力物力和精力。</p><p><b> 3.2系統(tǒng)開(kāi)發(fā)環(huán)境</b></p><p> 3.2.1 系統(tǒng)軟件環(huán)境</p><p> 本系統(tǒng)采用的軟件工具有:<
37、;/p><p> 操作系統(tǒng): Windows XP</p><p> 開(kāi)發(fā)環(huán)境:VC++6.0</p><p><b> 3.2.2工具簡(jiǎn)介</b></p><p> VC++6.0在提供可視化的編程方法的同時(shí),也適用于編寫(xiě)直接對(duì)系統(tǒng)進(jìn)行底層操作的程序,其生成代碼的質(zhì)量要優(yōu)于很多其他的開(kāi)發(fā)工具。VC++6.0所提供的
38、基本類(lèi)庫(kù)MFC,對(duì)Windows所用的Win32應(yīng)用程序接口進(jìn)行了十分徹底的封裝,這使得開(kāi)發(fā)人員可以使用完全面向?qū)ο蟮姆椒▉?lái)進(jìn)行Windows編程,從而大大節(jié)省了應(yīng)用程序的開(kāi)發(fā)周期,降低了開(kāi)發(fā)成本。而且,其強(qiáng)大的調(diào)試功能也為大型復(fù)雜軟件的開(kāi)發(fā)提供了有效的排錯(cuò)手段。</p><p> 隨著多媒體技術(shù)和圖形圖像技術(shù)的不斷發(fā)展,可視化技術(shù)得到了廣泛的重視,愈來(lái)愈多的人開(kāi)始研究并應(yīng)用可視化技術(shù)。所謂可視化技術(shù),一般是指
39、軟件開(kāi)發(fā)階段的可視化和對(duì)計(jì)算機(jī)圖形技術(shù)和方法的應(yīng)用。VC++是一個(gè)很好的可視化編程工具,使用VC++環(huán)境來(lái)開(kāi)發(fā)基于Windows的應(yīng)用程序,其界面更友好,便于程序員操作。開(kāi)發(fā)環(huán)境是程序員同VC++的交互界面,通過(guò)它程序員可以訪問(wèn)C++源代碼編輯器、資源編輯器,使用內(nèi)部調(diào)試器,還可以創(chuàng)建項(xiàng)目文件</p><p><b> 3.3系統(tǒng)概述</b></p><p> 軟
40、件主要提供的功能包括:資源管理方面——添加資源,刪除資源;資源瀏覽——按照目錄,按照搜索。因此把軟件大體分成三個(gè)部分進(jìn)行實(shí)現(xiàn):第一部分: 用戶(hù)界面。包括整個(gè)程序的框架,以及用戶(hù)操作的接口設(shè)計(jì)等即就是實(shí)現(xiàn)用戶(hù)界面的部分.第二部分:用于處理事務(wù)的模塊.包括用戶(hù)添加,刪除,修改資源,用戶(hù)通過(guò)目錄瀏覽,通過(guò)搜索找尋,通過(guò)自己的收藏夾進(jìn)行資源管理等業(yè)務(wù)邏輯的實(shí)現(xiàn)。第三部分: 用于進(jìn)行數(shù)據(jù)物理存儲(chǔ)的模塊。使用XML文檔進(jìn)行數(shù)據(jù)的存儲(chǔ),所以在實(shí)現(xiàn)的過(guò)
41、程中,XML的操作成為了這個(gè)模塊的主要工作。</p><p> 文檔資料管理系統(tǒng)是為個(gè)人管理自己的各種資料的軟件,首先將資料分為電子資料和非電子資料;電子資料主要包括自己電腦上面儲(chǔ)存的例如:電子文檔,電子書(shū)籍,影像資料等各種電子資料。非電子資料包括書(shū)籍,影碟,光碟等實(shí)物資料;對(duì)每一份資料均有命名,可以使用書(shū)名來(lái)指代這本書(shū),也對(duì)每一份資料加了關(guān)鍵字和注釋?zhuān)阌诤竺嫘枰獣r(shí)候準(zhǔn)確的找到需要的資料。對(duì)所有的資料進(jìn)行歸類(lèi)
42、,如劃分為VC++資料,windows類(lèi)資料,影像類(lèi)資料等;指明資料的存放位置,若是電子資料(如電腦上的文件),可以通過(guò)鼠標(biāo)點(diǎn)擊直接打開(kāi)文件,對(duì)于非電子資料和非本機(jī)子上的資料,在注釋內(nèi)注明其放置的位子,便于快速找到自己需要的資料;系統(tǒng)也有增加,刪除,修改等工具條:增加是在有新資料需要用本系統(tǒng)管理的時(shí)候,可以通過(guò)它來(lái)增加。刪除是對(duì)無(wú)用的資料進(jìn)行刪除。修改是需要對(duì)已有的資料增加一些說(shuō)明的。另外也有目錄,搜索和收藏夾等功能。系統(tǒng)也在最下面的窗
43、口有一個(gè)對(duì)選中的資料有一個(gè)類(lèi)似統(tǒng)計(jì)的顯示,便于使用者,更加方便的使用本系統(tǒng)。</p><p> 4文檔資料管理系統(tǒng)的設(shè)計(jì)</p><p> 4.1系統(tǒng)需求分析及功能設(shè)計(jì)</p><p> 隨著信息時(shí)代的來(lái)臨,電腦用戶(hù)的資料日益增多,而這些資料可能有著不同的特點(diǎn)。比如,它可能是一本書(shū),也可能是一張光碟,也可能是個(gè)電子文檔。如果稍有疏忽,資料的存放位置失去了某些特
44、征,例如,某些電子文檔你可能放到了一個(gè)目錄下,而另外一個(gè)文檔你卻放到了其它的目錄下。當(dāng)你需要的時(shí)候,將難于準(zhǔn)確迅速的找到,更談不上有效的查詢(xún)和管理了。總之,資料屬性的多元化和數(shù)量的增多給管理這些資料帶來(lái)了很多不便。</p><p> 文檔資料管理系統(tǒng)的設(shè)計(jì)目標(biāo)正是為了解決這些問(wèn)題。它將滿(mǎn)足用戶(hù)對(duì)資源的管理:增加,刪除,修改,搜索及查看資源。具體說(shuō)來(lái),該系統(tǒng)將具備下面的功能:</p><p&g
45、t; (1)增加資源——用戶(hù)能夠添加一個(gè)資源,該資源可以是電子資源(比如PC上某個(gè)目錄下的一張圖片)或者是非電子資源(例如書(shū)桌上的本書(shū))。添加該資源后,用戶(hù)將可以通過(guò)該系統(tǒng)直接管理和使用該資源。</p><p> ?。?)刪除資源——用戶(hù)能夠?qū)⑾到y(tǒng)中的某個(gè)資源刪除掉,從而放棄系統(tǒng)對(duì)該資源的管理。</p><p> (3)修改資源——當(dāng)某個(gè)資源的屬性發(fā)生變化的時(shí)候(例如存放位置發(fā)生變化)
46、,用戶(hù)能夠選中某個(gè)資源,對(duì)其屬性進(jìn)行修改,以反映這種變化。</p><p> ?。?)搜索資源——用戶(hù)能夠通過(guò)提供資源的某個(gè)特征屬性進(jìn)行查找,獲得相關(guān)的資源。</p><p> (5)查看資源——如果所選擇資源為電子文檔,用戶(hù)將能在系統(tǒng)中直接查看該資源。</p><p> 圖1 整體框架設(shè)計(jì)圖</p><p> 資源應(yīng)該具有以下屬性:資
47、源的作者,資源名稱(chēng),資源的位置(若是電子資源,則是資源在電腦上的文件位置),資源添加日期,資源所屬目錄情況(一個(gè)資源可以屬于多個(gè)目錄),關(guān)鍵字(用于搜索), 資源的注釋等。</p><p> 下面就系統(tǒng)中對(duì)以上屬性的定義:</p><p> struct RESITEM</p><p><b> {</b></p><
48、p> int id; // 資源在文檔中的唯一標(biāo)志</p><p> string name; //資源名稱(chēng)</p><p> string author; //資源的作者</p><p> string path; //資源的位置(若是電子資源,則是資源在電腦上的文件位置) </p><p> bool bEbo
49、ok;//是否是電子資源</p><p> string date; //資源添加日期</p><p> string keywords; //關(guān)鍵字,用于搜索</p><p> int catalogs; //資源所屬目錄情況(一個(gè)資源可以屬于多個(gè)目錄)</p><p> double bytes; //資源大?。ㄖ粚?duì)電子資源
50、有效) </p><p> string note; //資源的注釋</p><p><b> };</b></p><p> 4.2 XML存儲(chǔ)結(jié)構(gòu)的設(shè)計(jì)</p><p> 本系統(tǒng)的用XML編寫(xiě)存儲(chǔ)結(jié)構(gòu),參照一般的XML編寫(xiě)方法包含以下幾個(gè)</p><p> 類(lèi):XmlContaine
51、r(XmlTree),XmlFile,XmlLeaf,XmlNode,XmlParser。</p><p> 表1 XmlFile設(shè)計(jì)表</p><p> 表2 Xmlparser設(shè)計(jì)表</p><p> 說(shuō)明:正是通過(guò)這兩個(gè)類(lèi)的協(xié)作,實(shí)現(xiàn)了XML文檔的讀寫(xiě)和轉(zhuǎn)換。例如:</p><p> XmlFile file;</p>
52、;<p> if(!file.load("Settings\\items.xml"))</p><p><b> {</b></p><p> AfxMessageBox("打開(kāi)數(shù)據(jù)文件items.xml失敗");</p><p><b> return;</b>
53、;</p><p><b> }</b></p><p> XmlTree* pTree = XmlParser::doc2tree(file.getdoc());</p><p> if(!pTree)</p><p><b> {</b></p><p> Af
54、xMessageBox("轉(zhuǎn)換數(shù)據(jù)文件items.xml失敗");</p><p><b> return;</b></p><p><b> }</b></p><p> 上面的代碼段首先使用XmlFile的實(shí)例load了一個(gè)XML文檔,然后使用XmlParser::doc2tree創(chuàng)建了一
55、個(gè)XmlTree,從而為內(nèi)存中使用XML提供了基礎(chǔ)。</p><p> 下面說(shuō)明一下對(duì)XML的處理方案。使用樹(shù)型結(jié)構(gòu)表達(dá)XML文檔,可以比較方便的進(jìn)行相應(yīng)的讀寫(xiě)刪改操作。因?yàn)閄ML本身就是一個(gè)數(shù)型的結(jié)構(gòu)。例如:</p><p><b> <DATA></b></p><p><b> <item><
56、/b></p><p> <name>tttttt</name></p><p> <catalogs>13</catalogs></p><p> <path>d</path></p><p><b> </item></b&g
57、t;</p><p><b> <item></b></p><p> <name>xx</name></p><p> <catalogs>7</catalogs></p><p> <path>xx</path></p&
58、gt;<p><b> </item></b></p><p><b> </DATA></b></p><p> 以上是一段程序中用到的XML文檔結(jié)構(gòu)。注意到整個(gè)文檔以<DATA>開(kāi)始,以</DATA>結(jié)尾,表示之間的都是存儲(chǔ)的數(shù)據(jù)(實(shí)際上就是資源的屬性數(shù)據(jù))。中間共有兩個(gè)it
59、em,而每個(gè)item又各有幾個(gè)屬性(如<name>,<catalogs>等)。所以可以用一顆樹(shù)來(lái)表示:</p><p> 圖2 Xml樹(shù)型結(jié)構(gòu)圖</p><p> 注意到上面的樹(shù)中有些節(jié)點(diǎn)只有Name沒(méi)有Value,而有些卻都有。雖然它們都是節(jié)點(diǎn),但類(lèi)型上還是有區(qū)別的。故,采用三個(gè)類(lèi)表達(dá)這種信息:XmlNode,XmlLeaf,XmlContainer。<
60、/p><p> 首先定義一個(gè)接口類(lèi)XmlNode,該類(lèi)表達(dá)抽象的XML節(jié)點(diǎn)。然后使用XmlLeaf類(lèi)和XmlContainer類(lèi)來(lái)實(shí)現(xiàn)XmlNode,XmlLeaf表示葉節(jié)點(diǎn)(有Name和Value雙重屬性的節(jié)點(diǎn),但自己沒(méi)有子節(jié)點(diǎn)),XmlContainer表示容器節(jié)點(diǎn)(只有Name屬性的節(jié)點(diǎn),而且自己可以有子節(jié)點(diǎn))。下面是它們的定義:</p><p> class XmlNode<
61、/p><p><b> {</b></p><p><b> public:</b></p><p> XmlNode(){name = "node";parent = NULL;}</p><p> virtual ~XmlNode(){};</p><
62、;p> virtual bool isleaf()=0; //是否葉節(jié)點(diǎn)</p><p> virtual bool iscontainer()=0;//是否容器節(jié)點(diǎn)</p><p> virtual XmlNode* getparent(){return parent;}; //返回父節(jié)點(diǎn)</p><p> virtual bool setpare
63、nt(XmlNode* _parent){ parent=_parent; return true;}; //設(shè)置父節(jié)點(diǎn)</p><p> virtual const string& getname(){return name;}; //返回節(jié)點(diǎn)名稱(chēng)</p><p> virtual bool setname(const string& _name){name=_n
64、ame; return true;}; //設(shè)置節(jié)點(diǎn)名稱(chēng)</p><p> protected:</p><p> XmlNode* parent;</p><p> string name;</p><p><b> }; </b></p><p> class XmlContain
65、er : public XmlNode</p><p><b> {</b></p><p><b> public:</b></p><p> XmlContainer(){pos = -1; name="container";};</p><p> XmlContai
66、ner(const string& _name){name=_name; pos = -1;};</p><p> ~XmlContainer(){release();};</p><p> bool isleaf(){ return false;};</p><p> bool iscontainer(){return true;};</p&
67、gt;<p> bool addchild(XmlNode* _node); //新增一個(gè)子節(jié)點(diǎn)</p><p> bool remove(XmlNode* pNode); //刪除一個(gè)子節(jié)點(diǎn)</p><p> XmlNode* firstchild(); //返回第一個(gè)子節(jié)點(diǎn)</p><p> XmlNode* nextchild(); /
68、/返回下一個(gè)字節(jié)點(diǎn)</p><p> XmlNode* getchild(int nIndex); //返回第nIndex個(gè)子節(jié)點(diǎn)</p><p> XmlNode* search(const string& name); //找到第一個(gè)以name為名的子孫節(jié)點(diǎn)</p><p> XmlNode* search(const string& na
69、me, const string& value); //找到第一個(gè)以name為名,以value為值的葉節(jié)點(diǎn)</p><p> void trav(ostream& out); //遍歷并輸出到out中</p><p> void print(int lev);</p><p> protected:</p><p>
70、void release();</p><p><b> int pos;</b></p><p> vector<XmlNode*> children;</p><p><b> };</b></p><p> typedef XmlContainer XmlTree;<
71、/p><p> class XmlLeaf : public XmlNode</p><p><b> {public:</b></p><p> XmlLeaf(){name="leaf";};</p><p> XmlLeaf(const string& _name) {name=_n
72、ame;};</p><p> XmlLeaf(const string& _name, const string& _value) {name=_name; value=_value;};</p><p> ~XmlLeaf(){};</p><p> bool isleaf(){ return true;}; //是葉節(jié)點(diǎn),返回true
73、</p><p> bool iscontainer(){return false;}; //不是容器節(jié)點(diǎn),返回false</p><p> const string& getvalue(){return value;}; //獲取值</p><p> bool setvalue(const string& _value){value=_va
74、lue; return true;};//設(shè)置值</p><p> protected:</p><p> string value;</p><p><b> };</b></p><p> 下圖為數(shù)據(jù)流的轉(zhuǎn)化圖:</p><p> 圖3 Xml 數(shù)據(jù)流轉(zhuǎn)換圖</p>&
75、lt;p> 在讀取文件數(shù)據(jù)的時(shí)候使用XmlFile從磁盤(pán)讀取文件數(shù)據(jù),并轉(zhuǎn)化為一個(gè)String 對(duì)象,然后使用XmlParser轉(zhuǎn)化為一個(gè)XmlTree對(duì)象,這樣就可以很方便的操作數(shù)據(jù)。當(dāng)存儲(chǔ)數(shù)據(jù)的時(shí)候,使用XmlParser把一個(gè)XmlTree對(duì)象轉(zhuǎn)化為一個(gè)String 對(duì)象,然后通過(guò)XmlFile類(lèi)將這個(gè)String 對(duì)象保存到磁盤(pán)文件中。上述過(guò)程就實(shí)現(xiàn)了系統(tǒng)數(shù)據(jù)流的轉(zhuǎn)化,也在次基礎(chǔ)上變于整個(gè)系統(tǒng)調(diào)用XML來(lái)實(shí)現(xiàn)具體的功能。
76、</p><p> 4.3用戶(hù)界面和事物處理</p><p><b> 4.3.1用戶(hù)界面</b></p><p> 本系統(tǒng)的用戶(hù)界面是一個(gè),類(lèi)似VC的界面,左邊、底下有兩個(gè)可浮動(dòng)、可變大小的控制窗口。具體實(shí)現(xiàn)的為:首先創(chuàng)建窗口的定義如下:先為CMainFrame增加成員變量:</p><p> class CM
77、ainFrame : public CFrameWnd</p><p> { protected:CMainFrame();</p><p> DECLARE_DYNCREATE(CMainFrame)</p><p><b> public:</b></p><p> CDlgInfo m_dlg
78、Info; //用于顯示信息,位于程序最下方</p><p> CCoolTabCtrl m_TabCtrl;</p><p> CCoolBarm_wndMyBar1; //我們將它作為左邊的窗口</p><p> CCoolBarm_wndMyBar2; //我們將它作為右邊的窗口</p><p> 創(chuàng)建ControlB
79、ar即控制條和“刪除”,“修改”,“修改”按鈕: </p><p> if (!m_wndMyBar1.Create(_T("我的控制條"), this, CSize(230,260)</p><p> ,TRUE,123)){……};if (!m_wndMyBar2.Create(_T("我的控制條2"), this,CSize(200,1
80、00),TRUE,124)){……}</p><p> m_wndToolBar.SetButtonText(0," 增加 ");</p><p> m_wndToolBar.SetButtonText(1," 刪除 ");</p><p> m_wndToolBar.SetButtonText(2," 修改
81、");</p><p> 創(chuàng)建TAB Control,并把它加入到ControlBar中。需要注意的是:同一個(gè)ControlBar只能加入一個(gè)"一級(jí)子窗口"</p><p> m_TabCtrl.Create(TCS_DOWN|WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),&m_wndMyBar1,125);</p&g
82、t;<p> m_TabCtrl.AddPage(RUNTIME_CLASS(CCatalogDlg),IDD_DLG_CATALOG, "目 錄", IDI_ICON_CATALOG);</p><p> m_TabCtrl.AddPage(RUNTIME_CLASS(CSearchDlg),IDD_DLG_SEARCH, "搜 索", IDI_ICON
83、_SEARCH);</p><p> m_TabCtrl.AddPage(RUNTIME_CLASS(CFavDlg), IDD_DLG_FAV, "收藏夾", IDI_ICON_FAC);</p><p><b> ??靠刂疲?lt;/b></p><p> m_wndMyBar1.SetBarStyle(m_wndMyB
84、ar1.GetBarStyle() |CBRS_TOOLTIPS | CBRS_FLYBY| CBRS_SIZE_DYNAMIC);</p><p> m_wndMyBar2.SetBarStyle(m_wndMyBar2.GetBarStyle() |CBRS_TOOLTIPS |</p><p> CBRS_FLYBY | CBRS_SIZE_DYNAMIC);</p>
85、<p> m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);</p><p> m_wndMyBar1.EnableDocking(CBRS_ALIGN_ANY);</p><p> m_wndMyBar2.EnableDocking(CBRS_ALIGN_ANY);</p><p> EnableDocki
86、ng(CBRS_ALIGN_ANY);</p><p> DockControlBar(&m_wndToolBar);</p><p> DockControlBar(&m_wndMyBar1, AFX_IDW_DOCKBAR_LEFT);//??孔筮?lt;/p><p> DockControlBar(&m_wndMyBar2, AFX_
87、IDW_DOCKBAR_BOTTOM);//停靠右邊</p><p> m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);</p><p> EnableDocking(CBRS_ALIGN_ANY);</p><p> DockControlBar(&m_wndToolBar);</p><p&
88、gt; 此時(shí)我們已經(jīng)生成了兩個(gè)控制條窗口,但窗口中還沒(méi)有任何東西。在創(chuàng)建這些控件時(shí)將控制條窗口指針作為父窗口指針賦值給這些控件。在上面敘訴中,創(chuàng)建了“添加”“刪除”,“修改”按鈕。其他按鈕,控件在class CCoolTabCtrl : public CWnd類(lèi)中聲明和定義,在使用中調(diào)用。由于它們涉及到對(duì)具體事件的處理,在下面部分分類(lèi)說(shuō)明。其中對(duì)于風(fēng)格的使用,論文中沒(méi)有特別說(shuō)明,在使用中可以看出來(lái)。</p><p&
89、gt;<b> 4.3.2事務(wù)處理</b></p><p> 事務(wù)處理這個(gè)模塊就是對(duì)具體的按鈕,控件的設(shè)置和響應(yīng),通過(guò)對(duì)它們函數(shù)的定義和調(diào)用實(shí)現(xiàn)具體的功能,主要實(shí)現(xiàn)的就是添加,刪除,搜索,和一些具體功能的實(shí)現(xiàn)。下面就是對(duì)具體事務(wù)的介紹。</p><p> 添加資源:通過(guò)點(diǎn)擊工具條的增加按鈕彈出添加資源對(duì)話(huà)框,用戶(hù)對(duì)資源屬性進(jìn)行逐一設(shè)置,并在點(diǎn)擊確定后保存。該功能
90、的流程圖如下圖所示:</p><p> 圖4 添加功能流程圖</p><p> 響應(yīng)添加功能的類(lèi)為class CAddResDlg,其中具體實(shí)現(xiàn)為:void CResManView::OnBtnAddres()響應(yīng)點(diǎn)擊添加按鈕,用戶(hù)在彈出窗口按照具體資源添加其具體屬性,填寫(xiě)完畢,點(diǎn)擊“確定”按鈕,void CAddResDlg::OnOK()是確定按鈕的響應(yīng)函數(shù),然后BOOL CAdd
91、ResDlg::ValidItem()判定資源的屬性填寫(xiě)是否合法,合法就添加該資源即調(diào)用XmlFile file實(shí)現(xiàn)把數(shù)據(jù)寫(xiě)入文件中,從而實(shí)現(xiàn)添加功能。在添加中也用了int CAddResDlg::GetCatalogs()來(lái)獲取資源的所屬目錄,這只是針對(duì)本機(jī)上的電子文檔。通過(guò)上述過(guò)程和具體函數(shù)實(shí)現(xiàn)了添加的功能。</p><p> 在列表視圖中選中某個(gè)資源的時(shí)候,在下面的窗口中會(huì)有關(guān)于該資源的具性的信息顯示出來(lái)
92、,class CDlgInfo : public CDialog。</p><p> 在列表視圖中雙擊某個(gè)資源的時(shí)候,若該資源是電子資源,那么它將被打開(kāi)。void CResManView::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)</p><p> 刪除資源:在視圖列表中選中要?jiǎng)h除的項(xiàng)目,點(diǎn)擊工具條中的刪除,就會(huì)彈出一個(gè)詢(xún)問(wèn)對(duì)話(huà)框,若點(diǎn)擊“確定
93、”,將刪除所選擇的項(xiàng)目。并且支持同時(shí)刪除多個(gè)資源。刪除功能的流程圖如下圖所示</p><p> 圖5 刪除功能流程圖</p><p> 實(shí)現(xiàn)刪除的具體過(guò)程為:當(dāng)用戶(hù)想要?jiǎng)h除一個(gè)或是多個(gè)資源的時(shí)候,首先選定要?jiǎng)h除的項(xiàng),然后點(diǎn)擊“刪除”按鈕,響應(yīng)該按鈕的函數(shù)為void CResManView::</p><p> OnUpdateBtnDelres(CcmdUI*
94、 pCmdUI).實(shí)現(xiàn)刪除的具體函數(shù)voidCResManView::</p><p> OnBtnDelres(),最后調(diào)用XmlFile file實(shí)現(xiàn)在XML文件存儲(chǔ)結(jié)構(gòu)中刪除該資源,從而實(shí)現(xiàn)了刪除的功能。</p><p><b> 搜索功能:</b></p><p> 圖6 搜索功能流程圖</p><p>
95、 該功能實(shí)現(xiàn)的過(guò)程:按照搜索瀏覽資源:通過(guò)使用關(guān)鍵字,用戶(hù)可以搜索出自己感興趣的資源。如果使用高級(jí)選項(xiàng),還可以指定資源的添加日期的范圍,也可以在資源作者和資源注釋等屬性中進(jìn)行查找。實(shí)現(xiàn)的函數(shù)為:void CSearchDlg::</p><p> OnBtnSearch()</p><p> 商業(yè)源代碼,全套計(jì)算機(jī)畢業(yè)設(shè)計(jì)免費(fèi)下載 http://www.ibaidusoft.com&l
96、t;/p><p> 更多全套設(shè)計(jì)聯(lián)系QQ:1042897696</p><p> 最新設(shè)計(jì)大全 http://www.bylw168.com/sf/20100915/3539.html</p><p><b> 5軟件測(cè)試</b></p><p> 整個(gè)測(cè)試過(guò)程是一個(gè),“測(cè)試——修改——再測(cè)試——再修改”的過(guò)程,直到
97、整個(gè)系統(tǒng)能正常運(yùn)行,所有功能都能正常實(shí)現(xiàn)。在測(cè)試過(guò)程中,出現(xiàn)過(guò)一些不符合標(biāo)準(zhǔn)的情況,經(jīng)過(guò)修改,都基本與設(shè)計(jì)書(shū)的標(biāo)準(zhǔn)符合,能夠完成正常的功能。下面就是對(duì)本系統(tǒng)的各種功能的測(cè)試:</p><p><b> 增加功能的測(cè)試:</b></p><p> 圖7 添加功能測(cè)試顯示圖</p><p> 用戶(hù)點(diǎn)擊增加按鈕,彈出上圖的對(duì)話(huà)框,用戶(hù)輸入資源的
98、信息,點(diǎn)擊確定按鈕,如果添加成功在系統(tǒng)文件的settings文件夾的items.xml文件中會(huì)有如下記錄:</p><p><b> item></b></p><p> <id>13</id></p><p> <name>vc資料教程</name></p><p
99、> <author></author></p><p> <ebook>1</ebook></p><p> <catalogs>10</catalogs></p><p> <path>E:\vc資料教程</path></p><p&g
100、t; <keywords>vc 教程</keywords></p><p> <bytes>-1</bytes></p><p> <date>2007-05-31 17:05:04</date></p><p> <note>vc資料教程 光碟</note>
101、;</p><p><b> </item></b></p><p><b> 這就說(shuō)明添加成功。</b></p><p> 刪除功能的測(cè)試:如下圖所示:</p><p> 圖8 刪除功能測(cè)試截圖</p><p> 實(shí)現(xiàn)刪除的具體過(guò)程為:當(dāng)用戶(hù)想要?jiǎng)h除一
102、個(gè)或是多個(gè)資源的時(shí)候,首先選定要?jiǎng)h除的項(xiàng),然后點(diǎn)擊“刪除”按鈕,響應(yīng)該按鈕的函數(shù)為void CResManView::</p><p> OnUpdateBtnDelres(CcmdUI* pCmdUI).實(shí)現(xiàn)刪除的具體函數(shù)voidCResManView::</p><p> OnBtnDelres(),最后調(diào)用XmlFile file實(shí)現(xiàn)在XML文件存儲(chǔ)結(jié)構(gòu)中刪除該資源,從而實(shí)現(xiàn)了刪
103、除的功能。</p><p> 刪除成功的話(huà)在系統(tǒng)文件的settings文件夾的items.xml文件中就沒(méi)有該資源的記錄。</p><p> 搜索功能的測(cè)試:如下圖所示:</p><p> 圖9 搜索功能測(cè)試截圖</p><p> 該功能實(shí)現(xiàn)的過(guò)程:按照搜索瀏覽資源:通過(guò)使用關(guān)鍵字,用戶(hù)可以搜索出自己感興趣的資源。如果使用高級(jí)選項(xiàng),還
104、可以指定資源的添加日期的范圍,也可以在資源作者和資源注釋等屬性中進(jìn)行查找。按照搜索條件可以實(shí)現(xiàn)快速尋找自己需要的資料,成功后會(huì)在右邊的顯示框中顯示符合搜索條件的資料資源,并在下面有一個(gè)統(tǒng)計(jì)的顯示。</p><p> 由于經(jīng)驗(yàn)欠缺或其它某些原因,本次完成的軟件不可能是完美無(wú)缺的。測(cè)試只能盡量避免錯(cuò)誤的產(chǎn)生和消除已經(jīng)產(chǎn)生的錯(cuò)誤,使程序中的錯(cuò)誤密度達(dá)到盡可能低的程度,減少錯(cuò)誤的引入,但是不可能完全杜絕軟件中的錯(cuò)誤。經(jīng)
105、過(guò)測(cè)試,能實(shí)現(xiàn)各功能。</p><p><b> 結(jié) 論</b></p><p> 完成了系統(tǒng)的基本功能,基本滿(mǎn)足用戶(hù)需求,能夠通過(guò)本系統(tǒng)能夠比較方便的管理自己的資料,也可以快速準(zhǔn)確的找到需要的資料。自己編寫(xiě)了XML文件存儲(chǔ)結(jié)構(gòu),并利用它作為本系統(tǒng)的數(shù)據(jù)轉(zhuǎn)化工具。本系統(tǒng)操作方便,系統(tǒng)性能良好,具有快速,可擴(kuò)展性。</p><p>
106、當(dāng)然,由于我們經(jīng)驗(yàn)欠缺或者是其他方面的一些原因,這次的項(xiàng)目開(kāi)發(fā)也存在一些不足,如程序員邏輯比較混亂,一些簡(jiǎn)單的問(wèn)題要通過(guò)一堆無(wú)用代碼才能實(shí)現(xiàn),不能以簡(jiǎn)潔有效的方式解決。由于是一個(gè)人獨(dú)立的完成一個(gè)項(xiàng)目。從設(shè)計(jì)到開(kāi)發(fā),再到調(diào)試都是自己的思路,其中不免有考慮不周,實(shí)現(xiàn)不完善之處。修改和收藏夾功能還沒(méi)有實(shí)現(xiàn)。另外XML編寫(xiě)的時(shí)候也沒(méi)有使用標(biāo)準(zhǔn)的XML編寫(xiě)方法,雖然其能夠完成本系統(tǒng)的要求,但是也不免有些瑕疵。由于是用XML文件存儲(chǔ)結(jié)構(gòu),不是用單獨(dú)
107、的數(shù)據(jù)庫(kù),因此在使用系統(tǒng)的時(shí)候,數(shù)據(jù)都在內(nèi)存中,因此對(duì)于內(nèi)存消耗比較大,但是在存入文件后,此問(wèn)題消失。我想,在以后的項(xiàng)目開(kāi)發(fā)過(guò)程中,我們會(huì)逐漸解決這些不足之處。 </p><p><b> 參考文獻(xiàn)</b></p><p> [1] 鄭阿奇,丁有和,鄭進(jìn).Visual C++實(shí)用教程[M].北京:電子工業(yè)出版社,2000.</p><p>
108、 [2] [美]David Simon,周瑜萍.Visual C++6編程寶典[M].北京:電子工業(yè)出版社,2005.</p><p> [3] 姚領(lǐng)田.精通MFC程序設(shè)計(jì)[M].北京:人民郵電出版社,2006.</p><p> [4] Sandra,E.Eddy.XML精要:語(yǔ)法詳解與編程指南[M].北京:清華大學(xué)出版社,2001.</p><p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- vc++文檔資料管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)---文檔管理系統(tǒng)的實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)-資料管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 簡(jiǎn)易網(wǎng)絡(luò)文檔資料管理系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)【開(kāi)題報(bào)告】
- 畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)-----管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 倉(cāng)庫(kù)管理系統(tǒng)文檔畢業(yè)設(shè)計(jì)
- 基于web的畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 管理系統(tǒng)畢業(yè)設(shè)計(jì)--藥店管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 本科畢業(yè)設(shè)計(jì)文檔管理系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---倉(cāng)庫(kù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)---考勤管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)---學(xué)生管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 賓館管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--酒店管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 超市管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)】
- 倉(cāng)庫(kù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
評(píng)論
0/150
提交評(píng)論