基于MFC的個(gè)人管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)_第1頁(yè)
基于MFC的個(gè)人管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)_第2頁(yè)
基于MFC的個(gè)人管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)_第3頁(yè)
基于MFC的個(gè)人管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)_第4頁(yè)
基于MFC的個(gè)人管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于MFC的個(gè)人治理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)第一章、緒論考入自己理想的大學(xué)是每個(gè)學(xué)子的夢(mèng)想,然而進(jìn)入了大學(xué),生活如何安排,未來(lái)如何面對(duì)成為了歷屆每個(gè)剛剛進(jìn)入大學(xué)學(xué)生共同面對(duì)的問(wèn)題.很多學(xué)生在相對(duì)于高中更為寬松的治理中迷失了自我,失去了積極向上的動(dòng)力,學(xué)習(xí)沒(méi)有方案、生活作息紊亂、個(gè)人財(cái)務(wù)治理不合理,這一切一切的一切可能毀掉的不僅僅是本可以豐富多彩的大學(xué)生活,更為嚴(yán)重的是可能毀掉一個(gè)辛苦考入大學(xué)的大學(xué)生的一生.為此,我們利用基于MFC面向?qū)ο笙嚓P(guān)技術(shù)編寫了一個(gè)個(gè)人治理系統(tǒng),并為之命名為“個(gè)人助理,希望通過(guò)這個(gè)小軟件可以讓剛剛?cè)雽W(xué)以及在自己大學(xué)生活中迷茫的大學(xué)生找到自己生活的方向,重新制定自己人生目標(biāo),使自

2、己的學(xué)習(xí)生活方案更加合理、完善.第二章、軟件開(kāi)發(fā)平臺(tái)及編程模式在系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)中,軟件開(kāi)發(fā)平臺(tái)及編程模式是關(guān)鍵,下面介紹一下我們小組所使用的開(kāi)發(fā)平臺(tái):MicrosoftVisualC+及編程模式.2.1開(kāi)發(fā)平臺(tái)的選擇在Windows環(huán)境下,目前比擬流行的可視化開(kāi)發(fā)工具主要有:VisualC+、VisualBasic、C+Builder、Delphi、PowerBuilder及JBuilder等.而本軟件采用MicrosoftVisualC+6.0作為開(kāi)發(fā)工具,并使用MFCApplicationFramework作為本軟件的根本架構(gòu).采用C+來(lái)進(jìn)行編程的主要原因是,與Java和C#等現(xiàn)代編程語(yǔ)

3、言相比,C+在程序運(yùn)行的效率、內(nèi)存使用的可控性和編程的靈活性上具有優(yōu)勢(shì).C+代碼被編譯成匯編語(yǔ)言,可以直接在處理器上運(yùn)行,效率很高.而Java被編譯成字節(jié)碼,C#被編譯成中間語(yǔ)言,都是不能在處理器上執(zhí)行的,必須經(jīng)過(guò)Java虛擬機(jī)或.NET通用語(yǔ)言運(yùn)行時(shí)的JIT編譯之后才能執(zhí)行,因此效率較低.故從運(yùn)行效率的角度看,采用C+進(jìn)行編程比擬適宜.對(duì)龐大的數(shù)據(jù)進(jìn)行處理時(shí)需要使用大量的內(nèi)存,而計(jì)算機(jī)的物理內(nèi)存容量往往是有限的,因此需要有效地限制內(nèi)存的使用.C+直接限制內(nèi)存的分配和釋放,這雖繁瑣,且加大了編程的負(fù)擔(dān),但卻能有效地限制內(nèi)存的使用.Java和C#引進(jìn)了垃圾收集機(jī)制,將開(kāi)發(fā)人員從內(nèi)存治理的繁雜任務(wù)

4、中解放出來(lái),不再需要直接限制內(nèi)存的分配和釋放.所以,從內(nèi)存的使用效率來(lái)看,采用C+進(jìn)行編程更適宜.C+中大量使用指針,使得編程的靈活性很高,這雖然增加了程序出錯(cuò)的可能性,但是便于程序員施展編程技巧來(lái)提升程序的效率.Java完全取消了指針,C#極大地限制了指針的使用,這都限制了程序員施展技巧.因此,使用C+進(jìn)行圖像處理編程具有更大的靈活性.而在以C+為核心語(yǔ)言的可視化編程工具中,MicrosoftVisualC+6.0以其自身許多優(yōu)異的特性而獲得了最為廣泛的應(yīng)用.鑒于以上原因,本設(shè)計(jì)使用MicrosoftVisualC+6.0作為軟件的開(kāi)發(fā)平臺(tái).2.2MicrosoftVisualC+及編程模式

5、簡(jiǎn)介1. VisualC+可視化編程VisualC+的資源編輯器能以所見(jiàn)即所得Whatyouseeiswhatyouget的形式直接編輯程序的用戶界面,為所有資源分配ID標(biāo)識(shí)號(hào).ClassWizard能把對(duì)話框模板與生成的類定義或與已有的類代碼連接起來(lái),為菜單項(xiàng)、限制等資源生成空的處理函數(shù)模板,創(chuàng)立消息映射條目,并將資源ID與處理函數(shù)連接起來(lái).通過(guò)使用AppWizard,程序員的編程工作便簡(jiǎn)化為用資源編輯器直觀的設(shè)計(jì)界面,完善對(duì)話框類代碼,在空的處理函數(shù)模板處填寫響應(yīng)用戶操作的代碼,這是一種比擬完善的可視化編程方法.2. MFCMicrosoftFoundationClasses應(yīng)用程序框架應(yīng)

6、用程序框架的一種定義是:提供一般應(yīng)用程序需要的全部面向?qū)ο筌浖M件的集成集合.C+流行的一個(gè)原因是它可以用類庫(kù)擴(kuò)充.類庫(kù)是可在應(yīng)用程序中使用的有關(guān)C+類的集合.應(yīng)用程序框架是類庫(kù)的超集.一般的類庫(kù)只是一種孤立的類的集合,用來(lái)嵌入在任何程序中,但是,應(yīng)用程序框架卻定義了程序的結(jié)構(gòu).自從MFC庫(kù)發(fā)布以來(lái),MFC已經(jīng)成為主要的Windows類庫(kù).使用MFC類庫(kù)構(gòu)建應(yīng)用程序具有以下優(yōu)點(diǎn):MFC庫(kù)是C+的MicrosoftWindowsAPI.應(yīng)用程序框架生成的應(yīng)用程序使用了標(biāo)準(zhǔn)的結(jié)構(gòu),具有標(biāo)準(zhǔn)化的用戶接口,這對(duì)具有標(biāo)準(zhǔn)用戶界面的Win32程序來(lái)說(shuō),可以極大的減輕程序員的負(fù)擔(dān),以提升程序設(shè)計(jì)的效率.使用

7、應(yīng)用程序框架的應(yīng)用程序不僅小,而且運(yùn)行速度快,具有很大的靈活性.MFC封裝了Win32SDK中的幾乎所有函數(shù),能實(shí)現(xiàn)Win32系統(tǒng)的任何功能.VisualC+工具降低了編碼的復(fù)雜性.MFC庫(kù)應(yīng)用程序框架有豐富的特性,如:WindowsAPI的C+接口、通用的非Windows所特有的類、“共用根對(duì)象類層次結(jié)構(gòu)、流線式多文檔界面MDI應(yīng)用程序支持等.強(qiáng)大的功能除封裝了大局部的Win32SDK函數(shù)外,MFC還提供了應(yīng)用程序本身的數(shù)據(jù)和操作及ActiveX、OLE、Internet、WinSock、DAO(DataAccessObjects)、ODBC(OpenDataBaseConnectivity

8、)等操作類.MFC框架的核心是文檔/視圖結(jié)構(gòu)(Document-ViewArchitecture),這是一個(gè)很好用的功能.簡(jiǎn)單的說(shuō),文檔/視圖結(jié)構(gòu)就是將數(shù)據(jù)和對(duì)數(shù)據(jù)的觀察或數(shù)據(jù)的表現(xiàn)(顯示)相別離.文檔僅處理數(shù)據(jù)的實(shí)際讀、寫操作,視圖那么是顯示和處理數(shù)據(jù)的窗口,視圖可以操作文檔中的數(shù)據(jù).3.消息映射在使用VisualC+進(jìn)行Win32程序設(shè)計(jì)時(shí),消息映射是一個(gè)非常重要的概念.Windows應(yīng)用程序是消息驅(qū)動(dòng)的,應(yīng)用程序不能直接得到用戶所做的操作,如鼠標(biāo)按鍵、鍵盤輸入和窗口移動(dòng)等.這些操作由操作系統(tǒng)治理,操作系統(tǒng)檢測(cè)到操作事件后,便向相關(guān)的應(yīng)用程序發(fā)送消息,應(yīng)用程序響應(yīng)這些消息來(lái)完成用戶的操作.

9、(1)消息Windows中的消息是操作系統(tǒng)與應(yīng)用程序之間、應(yīng)用程序與應(yīng)用程序之間、應(yīng)用程序各對(duì)象之間相互限制與傳遞信息的方式.消息主要有以下3類.Windows系統(tǒng)消息:Windows系統(tǒng)向窗口發(fā)送的消息,由窗口(Window)或視圖(View)進(jìn)行響應(yīng)處理.這類消息包括除WM_COMMAND消息之外的名稱以WM_開(kāi)始的其他消息.限制通知消息:限制或子窗口傳給父窗口的WM_COMMAND通知的消息.命令消息:在響應(yīng)用戶接口操作時(shí),將產(chǎn)生WM_COMMAND命令消息.其參數(shù)指定了用戶接口的標(biāo)識(shí)號(hào),如菜單項(xiàng)和按鈕等ID號(hào).(2)消息映射過(guò)程在使用AppWizard創(chuàng)立應(yīng)用程序時(shí),MFC應(yīng)用程序框架

10、設(shè)置了相應(yīng)的消息處理函數(shù)來(lái)響應(yīng)消息,以完成相應(yīng)的操作.消息處理函數(shù)是某些類(通常是窗口類)的成員函數(shù)和程序員在其中編寫響應(yīng)消息時(shí)應(yīng)進(jìn)行操作的代碼.框架將消息和它們的處理函數(shù)連接起來(lái)就是消息映射.消息映射使應(yīng)用程序在接收到消息時(shí)調(diào)用對(duì)應(yīng)的消息處理函數(shù)來(lái)響應(yīng)和處理消息.ClassWizard在創(chuàng)立新類時(shí)將為其創(chuàng)立一個(gè)消息映射,并為每個(gè)類能響應(yīng)的消息和命令增加對(duì)應(yīng)的處理函數(shù).在源代碼中,消息映射開(kāi)始于BEGIN_MESSAGE_MAP宏,結(jié)束于END_MESSAGE_MAP宏,中間由一系歹U預(yù)定義的被稱為“條目宏的宏組成.Windows消息的處理函數(shù)在CWnd類中進(jìn)行了預(yù)定義,類庫(kù)以消息名為根底定義

11、這些處理函數(shù)的名稱,且MFC要求所有消息處理函數(shù)聲明為afx_msg類型.通過(guò)ClassWizard在派生類中用同樣的原型定義處理函數(shù)并為該函數(shù)生成消息映射條目,然后由程序員編寫處理函數(shù)代碼,并在派生類中覆蓋了其父類的消息處理函數(shù).在有些情況下,必須在派生類的消息處理函數(shù)中調(diào)用其父類的消息處理函數(shù),使Windows和基類能對(duì)消息進(jìn)行處理.ClassWizard將在生成的處理函數(shù)中建議是否應(yīng)調(diào)用父類的消息處理函數(shù)及調(diào)用的次序.除此之外,用戶定義和注冊(cè)的消息、命令和限制通知都沒(méi)有默認(rèn)的處理函數(shù),需要在定義時(shí)聲明,一般根據(jù)其ID名稱來(lái)為函數(shù)命名.第三章、系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)在整個(gè)面向?qū)ο笤O(shè)計(jì)期間,我通過(guò)需

12、求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)三個(gè)階段完成了整個(gè)設(shè)計(jì)過(guò)程.下面分別介紹這三個(gè)階段的實(shí)現(xiàn)過(guò)程.3.1需求分析性能需求1、性能需求(1)硬件平臺(tái)要求由于本軟件為單機(jī)軟件,不需進(jìn)行大量的數(shù)據(jù)讀寫和數(shù)據(jù)交換,故對(duì)系統(tǒng)硬件配置的要求并不高,只要能夠平穩(wěn)運(yùn)行Windows操作系統(tǒng)的硬件平臺(tái),都能夠使用本軟件.提示:軟件提供的顯示特效,由于其需要相對(duì)較為大量的運(yùn)算,故對(duì)CPU性能要求較高,要想獲得理想的效果,建議CPU為PIII800MHz以上.(2)軟件環(huán)境要求本軟件運(yùn)行平臺(tái)為MicrosoftWindows98/Me/NT/2000/XP/2003.2、功能需求本軟件要實(shí)現(xiàn)的是一款類似于個(gè)人治理系統(tǒng)的管家類

13、軟件.本軟件有根本信息治理、學(xué)習(xí)成績(jī)治理、健康信息治理、日程治理、財(cái)務(wù)管理等五個(gè)功能模塊.每個(gè)功能模塊都可以實(shí)現(xiàn)數(shù)據(jù)以及文本信息的錄入、輸出以及用表格形式進(jìn)行反應(yīng),其中的學(xué)習(xí)成績(jī)治理和健康信息治理還可以通過(guò)對(duì)錄入數(shù)據(jù)的分析進(jìn)行一定的評(píng)價(jià).本軟件還可以對(duì)分析情況進(jìn)行打印.另外在工具欄的一些快捷按鈕可以幫助用戶更好更快的使用本軟件,同時(shí)在使用過(guò)程中還有一定的提示,幫助用戶快速了解軟件的各項(xiàng)功能.本軟件的幫助功能對(duì)本軟件進(jìn)行了比擬系統(tǒng)的介紹,并對(duì)本軟件的諸多好處進(jìn)行了簡(jiǎn)要明了的介紹.3.2總體設(shè)計(jì)在對(duì)整個(gè)開(kāi)發(fā)系統(tǒng)進(jìn)行全面分析調(diào)查的根底上,制定出應(yīng)用軟件的總體設(shè)計(jì)規(guī)劃,這對(duì)建立一個(gè)應(yīng)用系統(tǒng)來(lái)說(shuō)是必須的

14、,也是全面展開(kāi)開(kāi)發(fā)工作的重要根底.系統(tǒng)總體設(shè)計(jì)包括:模塊的劃分和軟件界面設(shè)計(jì).1 .模塊劃分本設(shè)計(jì)的實(shí)現(xiàn)基于微軟的MFC應(yīng)用程序框架,故軟件也采用了文檔(Document)/視圖(View)結(jié)構(gòu),并使用單文檔界面(SingleDocumentInterface,簡(jiǎn)稱SDI).程序框架在響應(yīng)它生成的標(biāo)準(zhǔn)用戶接口“翻開(kāi)命令時(shí)創(chuàng)立文檔/視圖結(jié)構(gòu),由于軟件只需提供瀏覽的供能,因此將生成的標(biāo)準(zhǔn)框架中的“新建命令禁用,其創(chuàng)立次序如下.步驟1:程序啟動(dòng)時(shí),WinMain()函數(shù)調(diào)用應(yīng)用程序?qū)ο蟮腎nitInstance()函數(shù),并在其中創(chuàng)立文檔模板.步驟2:程序運(yùn)行過(guò)程中,選擇“文件|“翻開(kāi)命令,框架將調(diào)用

15、CWinApp:OnFileOpen()函數(shù),并使用已創(chuàng)立的文檔模板創(chuàng)立文檔.步驟3:文檔模板創(chuàng)立主框架窗口.步驟4:主框架窗口創(chuàng)立文檔對(duì)應(yīng)的視圖.程序中文檔/視圖結(jié)構(gòu)的各對(duì)象交互關(guān)系如圖4.1所示.圖4.1文檔/視圖結(jié)構(gòu)對(duì)象交互關(guān)系以MVC(Model-View-Controller)應(yīng)用程序結(jié)構(gòu)劃分的模塊如圖4.2所示.2 .軟件界面設(shè)計(jì)根據(jù)軟件的需求分析及圖片瀏覽軟件的特點(diǎn),本設(shè)計(jì)中軟件采用單文檔界面(SDI),包括標(biāo)準(zhǔn)菜單、工具欄和狀態(tài)欄.工具欄上為常用菜單命令按鈕,如“打開(kāi)、“保存、“打印、“剪貼、“復(fù)制、“粘貼、“幫助等.另外,我們?cè)黾恿嗽S多便于用戶操作的快捷鍵.第四章、系統(tǒng)的關(guān)鍵

16、技術(shù)及難點(diǎn)在一個(gè)多月的學(xué)習(xí)與工作中,我們獨(dú)立自主完成了一個(gè)完整的基于MFC的個(gè)人信息治理系統(tǒng)的設(shè)計(jì).在設(shè)計(jì)過(guò)程中,我遇到了許多的技術(shù)問(wèn)題,下面介紹該系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的關(guān)鍵技術(shù)和技術(shù)難點(diǎn).4.1各對(duì)話框的響應(yīng)連接在 MainFrm.cpp 文件中:#includeBaseInfoImput.h/聲明根本信息錄入對(duì)話框類的頭文件#includeInfoUpdate.h/聲明根本信息更新對(duì)話框類的頭文件/聲明健康信息錄入對(duì)話框類的頭文件/聲明健康信息更新對(duì)話框類的頭文件/聲明健康信息分析對(duì)話框類的頭文件/聲明日程安排歷史查看對(duì)話框類的頭文件/聲明日程安排對(duì)話框類的頭文件/聲明日程待完成事件對(duì)話框類的頭

17、文件/聲明幫助對(duì)話框類的頭文件/聲明財(cái)務(wù)支出對(duì)話框類的頭文件/聲明財(cái)務(wù)信息統(tǒng)計(jì)對(duì)話框類的頭文件/聲明學(xué)習(xí)成績(jī)分析對(duì)話框類的頭文件/聲明查看成績(jī)對(duì)話框類的頭文件/聲明成績(jī)錄入對(duì)話框類的頭文件/聲明修改密碼對(duì)話框類的頭文件/彈出根本信息錄入對(duì)話框按鈕的響應(yīng)/建立 BaseInfoImput 對(duì)話中!類 dia/創(chuàng)立模態(tài)對(duì)話框/類似上函數(shù)dia.DoModal();#includeBodyInfoCheck.h#includeBodyInfoImput.h#includeBodyAnalyse.h#includeDayHistory.h#includeDayPlan.h#includeDayUnfi

18、nish.h#includeHelp.h#includeMoneyOut.h#includeMoneyTotal.h#includeStudyAnalyse.h#includeStudyCheck.h#includeStudyImput.h#includehangePassword.hvoidCMainFrame:OnBaseImp()函數(shù)BaseInfoImputdia;dia.DoModal();voidCMainFrame:OnBaseNew()InfoUpdatedia;voidCMainFrame:OnBodyAnal()BodyAnalysedia;dia.DoModal();vo

19、idCMainFrame:OnBodyCheck()BodyInfoCheckdia;dia.DoModal();voidCMainFrame:OnBodyImp()BodyInfoImputdia;dia.DoModal();voidCMainFrame:OnDayHis()DayHistorydia;dia.DoModal();voidCMainFrame:OnDayPlan()DayPlandia;dia.DoModal();voidCMainFrame:OnDayUn()DayUnfinishdia;dia.DoModal();)voidCMainFrame:OnHelpUse()He

20、lpdia;dia.DoModal();)voidCMainFrame:OnMonOut()MoneyOutdia;dia.DoModal();)voidCMainFrame:OnMonTotal()MoneyTotaldia;dia.DoModal();)voidCMainFrame:OnStuAnal()StudyAnalysedia;dia.DoModal();)voidCMainFrame:OnStuCheck()StudyCheckdia;dia.DoModal();voidCMainFrame:OnChangePassword()ChangePassworddia;dia.DoMo

21、dal();4.2背景圖片的插入以及換膚功能的實(shí)現(xiàn)4.2.1.背景圖片插入在ResourceView選項(xiàng)卡中的Bitmap文件夾中單擊右鍵,選擇Bitmap,插入背景圖片并設(shè)其ID為:IDB_WELCOM在 informationDoc.h 中聲明位圖類對(duì)象:CBitmapm_welcom;intm_nWidth;intm_nHeight;在 informationDoc.cppBITMAPBM;/位圖類對(duì)象/圖寬/圖高中的構(gòu)造函數(shù)中初始化:m_welcom.LoadBitmap(IDB_WELCOM);m_welcom.GetBitmap(&BM);m_nWidth=BM.bmWid

22、th;/獲取位圖寬m_nHeight=BM.bmHeight;/獲取位圖高在 informationView.cpp 的 OnDraw 函數(shù)中顯示位圖:CDCMemDC;MemDC.CreateCompatibleDC(NULL);MemDC.SelectObject(pDoc-m_welcom);Insert載入位圖 IDB_WELCOMpDC-BitBlt(0,0,pDoc-m_nWidth,pDoc-m_nHeight,&MemDC,0,0,SRCCOPY);4.2.2.換膚功能:在菜單欄中建立換膚菜單,并為每種顏色設(shè)置ID,并設(shè)置響應(yīng)函數(shù)與information.cpp 中.v

23、oidCInformationApp:OnRed()/紅色響應(yīng)函數(shù)SetDialogBkC010r(RGB(255,0,0),RGB(0,0,0);/改變顏色函數(shù)其余幾種顏色類似.4.3登陸界面的實(shí)現(xiàn)4.3.1.密碼登錄建立登陸對(duì)話框,為其建立類CPass.將密碼存于數(shù)據(jù)庫(kù)中的表PASS中.在informationApp類中聲明一個(gè)變量來(lái)獲取從數(shù)據(jù)庫(kù)中調(diào)取的密碼值(如何調(diào)取見(jiàn)4.數(shù)據(jù)庫(kù)連接局部):CStringpassword;/為 CString 類在 infoemationApp 類中的 BOOLCInformationApp:InitInstance()中添加:password=temp

24、1;/把從數(shù)據(jù)庫(kù)中獲取的密碼值賦給password/建立對(duì)話框類對(duì)象CPassCDlg;(if(CDlg.m_Password!=password)/判斷輸入是否與 password 相等/如果口令不對(duì),那么顯示出錯(cuò)信息,然后程序結(jié)束AfxMessageBox(口令錯(cuò)誤,確定后將退出程序.);returnFALSE;else/如果按下取消按鈕,程序也結(jié)束returnFALSE;4.3.2.修改密碼建立修改密碼對(duì)話框,并為其建立類ChangePassword,設(shè)置各個(gè)控件的ID及關(guān)聯(lián)變量,為對(duì)話框中確實(shí)定按鈕添加語(yǔ)句:voidChangePassword:OnOK()CStringtemp1;/

25、臨時(shí)變量存儲(chǔ)從數(shù)據(jù)庫(kù)中讀取的舊密碼CRecordsetrd1(&db4);if(!rd1.Open(CRecordset:dynaset,Select*fromPASS)/翻開(kāi)數(shù)據(jù)庫(kù)表 PASSAfxMessageBox(NODB!);rd1.GetFieldValue(password,temp1);把數(shù)據(jù)表 PASS 中的就密碼賦值給temp1if(CDlg.DoModal()=IDOK)/如果單擊確定按鈕/關(guān)閉數(shù)據(jù)庫(kù)UpdateData(TRUE);if(temp1=m_old&m_new=m_repeat)/判斷輸入的就密碼數(shù)否和從數(shù)據(jù)庫(kù)中取得的就密碼相同,并且兩次輸入

26、的新密碼相同CStringtemp2=;db4.ExecuteSQL(DeleteFromPASSWherepassword=+temp2+temp1+temp2);CStringtempSQL=+m_new+;tempSQL=INSERTINTOPASSVALUES(+tempSQL+);db4.ExecuteSQL(tempSQL);/把新密碼寫進(jìn)數(shù)據(jù)庫(kù)覆蓋舊密碼CDialog:OnOK();4.4數(shù)據(jù)庫(kù)的鏈接建立Access數(shù)據(jù)庫(kù),設(shè)置個(gè)工程表格、數(shù)據(jù)、數(shù)據(jù)類型等.在限制面板中的ODBC數(shù)據(jù)源選項(xiàng)中鏈接數(shù)據(jù)庫(kù)為ODBC類型,命名info.在使用數(shù)據(jù)庫(kù)的類中填寫代碼,我們以根本信息錄入類(

27、BaseInfoImput)為例.在BaseInfoImput.h中添加頭文件:#includerd1.Close();添加數(shù)據(jù)成員:CDatabasedb1;在 BaseInfoImput.cpp 中的構(gòu)造函數(shù)中初始化:if(!db1.Open(_T(info),FALSE,FALSE,_T(ODBC;),FALSE)/翻開(kāi)數(shù)據(jù)庫(kù) info(返回if(m_sex=true)temp3=男;elsetemp3=女;CStringtempSQL=+m_name+temp1+temp3+temp1+temp2+temp1+m_num+;tempSQL=INSERTINTOBASICVALUES(+

28、tempSQL+);AfxMessageBox(NoDB!);示給確定按鈕添加響應(yīng)函數(shù):voidBaseInfoImput:OnOK()UpdateData(TRUE);CStringtemp1=,;CStringtemp2,temp3;temp2.Format(%d,m_age);CString 型if(m_age100)return;/假設(shè)不成功對(duì)話框提/更新/把非 CString 型數(shù)據(jù)轉(zhuǎn)換成/如果年齡大于 100 或小于 0 那么/向 BASIC 數(shù)據(jù)表中添加dbl.ExecuteSQL(tempSQL);/向數(shù)據(jù)庫(kù)中添加數(shù)據(jù)MessageBox(添加成功!);CDialog:OnOK

29、();下面是更新根本信息對(duì)話框確實(shí)定按鈕的響應(yīng)函數(shù):voidInfoUpdate:OnOK()CStringtemp1,temp2,temp3,temp4,temp5,temp6;if(m_newage100)return;那么返回CRecordsetrd1(&db5);量/添加成功那么對(duì)話框提示/如果年齡大于 100 或小于 0/建立 Crecordset 類的變if(!rd1.Open(CRecordset:dynaset,Select*fromBASIC)/翻開(kāi)數(shù)據(jù)表 BASICAfxMessageBox(NODB!);rd1.GetFieldValue(姓名,temp1);rd

30、1.GetFieldValue(性另 1J,temp2);rd1.GetFieldValue(年齡,temp3);rd1.GetFieldValue(學(xué)號(hào),temp4);rd1.Close();UpdateData(TRUE);翻開(kāi)失敗對(duì)話框提示/獲取姓名/獲取性別/獲取年齡/獲取學(xué)號(hào)/關(guān)閉數(shù)據(jù)表/更新db5.ExecuteSQL(DeleteFromtemp);/刪除舊數(shù)據(jù)db5.ExecuteSQL(DeleteFromtemp);db5.ExecuteSQL(DeleteFromtemp);db5.ExecuteSQL(DeleteFromBASICWhere姓名:=+temp+temp1+BASICWhere性別:=+temp+temp2+BASICWhere年齡:=+temp+temp3+BASICWhere學(xué)號(hào)=+temp+temp4+temp);temp5.Format(%d,m_newage);if(m_newsex=true)temp6=男;elsetemp6=女;temp=,;CStringtempSQL=+

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論