版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 本論文主要演示MFC與MYSQL技術(shù)下學(xué)生信息管理系統(tǒng)的設(shè)計思想和實現(xiàn)的關(guān)鍵技術(shù)。論文選擇了VC6.0為編譯器,MFC 下MFC ODBC數(shù)據(jù)庫連接方式,MYSQL的數(shù)據(jù)庫,設(shè)計出學(xué)校學(xué)生信息管理系統(tǒng)。</p><p> 本系統(tǒng)具有用戶登錄,學(xué)生信息管理,學(xué)生信息查詢等功能。</p>
2、<p> 論文包括以下幾個部分:</p><p> 第一部分問題的來源和可行性分析,說明了學(xué)生信息管理系統(tǒng)的重要性和必要性。并對其實現(xiàn)的復(fù)雜性、可行性進(jìn)行了研究。</p><p> 第二部分需求分析和總體設(shè)計,通過對用戶需求的分析,分解學(xué)生管理系統(tǒng)應(yīng)該具有的功能,并對學(xué)生管理理系統(tǒng)的進(jìn)行總體框架的設(shè)計和搭建。</p><p> 第三部分?jǐn)?shù)據(jù)庫設(shè)計,
3、設(shè)計了學(xué)生管理系統(tǒng)數(shù)據(jù)存儲方式,進(jìn)行數(shù)據(jù)庫的實體分析、實體屬性分析、實體和實體之間的聯(lián)系的分析。數(shù)據(jù)庫的邏輯設(shè)計和數(shù)據(jù)庫的建立。</p><p> 第四部分詳細(xì)設(shè)計以及系統(tǒng)實現(xiàn),通過總體設(shè)計完成了學(xué)生信息管理系統(tǒng)的2大模塊。并達(dá)到對學(xué)生信息的增加、刪除、修改、查詢等操作。</p><p> 關(guān)鍵字:MFC MYSQL 學(xué)生信息管理系統(tǒng)</p&g
4、t;<p><b> Abstract</b></p><p> In this thesis, the main demo MFC and MYSQL technology student information management system design and implementation of key technologies. Tpapers selecte
5、d VC6.0 compiler, MFC ODBC database connections, MYSQL database design school student information management system.</p><p> The design idea used in this paper is the overall honor-oriented, local-oriented
6、 process, a combination of simple design patterns, such as tool class Singleton Pattern.</p><p> The first part of the source of the problem and feasibility analysis, illustrates the importance and necessit
7、y of student information management system. And thecomplexity of itsrealization, the feasibility study.</p><p> The second part of the needs analysis and the overall design and analysis of user needs, the d
8、ecomposition of the student management system should have, and student management management system for the over all framework design and build.</p><p> The third part of the database design, design student
9、 management system data storage,database entity analysis,entity attributes,the analysis of the link between the entity and the logical database design and database creation.</p><p> The fourth part of the d
10、etailed design and system implementation,the overall design tocompletion of two major modules of the student im formation management system, And to the increase of student information,delete,modify,and query operations.&
11、lt;/p><p> Keywords: MFC MYSQL Student information Management System</p><p><b> 目錄</b></p><p> 第一章 問題來源1</p><p><b> 1.1 引言1</b></p>
12、<p> 1.2 選題背景2</p><p> 1.1.2 問題定義2</p><p> 1.1.2 選題意義2</p><p> 第二章 基礎(chǔ)理論知識3</p><p> 2.1 MVC模式概述4</p><p> 2.2 MVC工作原理5</p><p>
13、; 2.3 MYSQL概述6</p><p> 2.4 ODBC概述7</p><p> 第三章 需求分析9</p><p> 3.1 系統(tǒng)功能分析9</p><p> 3.2 數(shù)據(jù)流圖10</p><p> 3.3 數(shù)據(jù)字典14</p><p> 3.4 系統(tǒng)性能1
14、4</p><p> 第四章 總體設(shè)計17</p><p> 4.1 系統(tǒng)概述17</p><p> 4.2 功能分析17</p><p> 第五章 數(shù)據(jù)庫設(shè)計20</p><p> 5.1 數(shù)據(jù)庫分析20</p><p> 5.1.1實體的分析20</p>
15、<p> 5.1.2 實體的屬性20</p><p> 5.1.3 實體之間的聯(lián)系22</p><p> 5.2 數(shù)據(jù)庫的概念設(shè)計22</p><p> 5.3 數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計24</p><p> 5.4 數(shù)據(jù)庫的建立27</p><p> 第六章 詳細(xì)設(shè)計30</p&
16、gt;<p> 6.1 數(shù)據(jù)庫連接模塊的類30</p><p> 6.2 用戶模塊的詳細(xì)設(shè)計31</p><p> 6.3 查詢功能的詳細(xì)設(shè)計32</p><p> 6.4 管理功能的詳細(xì)設(shè)計32</p><p> 6.5 界面美化的詳細(xì)設(shè)計32</p><p> 6.6 開發(fā)工具及
17、環(huán)境33</p><p> 第七章 系統(tǒng)實現(xiàn)34</p><p> 7.1 系統(tǒng)的實現(xiàn)34</p><p> 7.2 用戶登錄模塊的實現(xiàn)34</p><p> 7.3 查詢模塊的實現(xiàn)35</p><p> 7.4 管理模塊的實現(xiàn)36</p><p><b> 結(jié)
18、束語37</b></p><p><b> 參考文獻(xiàn)38</b></p><p><b> 第一章 問題來源</b></p><p><b> 1.1 引言</b></p><p> 高校學(xué)生的成績管理工作量大、繁雜,人工處理非常困難。學(xué)生成績管理系統(tǒng)借
19、助于計算機強大的處理能力,大大減輕了管理人員的工作量,并提高了處理的準(zhǔn)確性。學(xué)生成績管理系統(tǒng)的開發(fā)運用,實現(xiàn)了學(xué)生成績管理的自動化,不僅把廣大教師從繁重的成績管理工作中解脫出來、把學(xué)校從傳統(tǒng)的成績管理模式中解放出來,而且對學(xué)生成績的判斷和整理也更合理、更公正,同時也給教師提供了一個準(zhǔn)確、清晰、輕松的成績管理環(huán)境。</p><p> 本系統(tǒng)根據(jù)我校的實際情況開發(fā),用于對學(xué)校教師、學(xué)生、課程信息的管理,主要用于管理
20、學(xué)生成績。登錄系統(tǒng)時需要訪問數(shù)據(jù)庫中的用戶信息,從而正確確定登錄身份。系統(tǒng)完成了日常的教育工作中對學(xué)生成績檔案的數(shù)字化管理。較為系統(tǒng)地對學(xué)生信息、成績信息和課程信息進(jìn)行管理。查詢、增添、修改、刪除都變的非常簡便,減少了管理的工作量。</p><p> 基于學(xué)校學(xué)生眾多,為了數(shù)據(jù)的安全性,系統(tǒng)將學(xué)生數(shù)據(jù)保存在數(shù)據(jù)庫中,以Visual C++設(shè)計前臺對系統(tǒng)進(jìn)行設(shè)計。因為成績管理系統(tǒng)是一項很實用的系統(tǒng),所面對的數(shù)據(jù)量
21、很大,所以我們要求系統(tǒng)能夠高效快速的處理這些數(shù)據(jù),并且要保證數(shù)據(jù)的正確性、相容性和安全性。C++作為前臺是將數(shù)據(jù)庫中的數(shù)據(jù)讀取出來,有助于用戶對這些數(shù)據(jù)進(jìn)行相應(yīng)的操作,使操作更方便,更符合用戶的要求。所以該系統(tǒng)應(yīng)該要有一個良好的界面,使用戶感覺很直觀,使用快捷,這就是用C++所要實現(xiàn)的功能。</p><p><b> 1.2 選題背景</b></p><p><
22、;b> 1.2.1問題定義</b></p><p> 高校學(xué)生的成績管理工作量大、繁雜,人工處理非常困難。學(xué)生成績管理系統(tǒng)借助于計算機強大的處理能力,大大減輕了管理人員的工作量,并提高了處理的準(zhǔn)確性。學(xué)生成績管理系統(tǒng)的開發(fā)運用,實現(xiàn)了學(xué)生成績管理的自動化,不僅把廣大教師從繁重的成績管理工作中解脫出來、把學(xué)校從傳統(tǒng)的成績管理模式中解放出來,而且對學(xué)生成績的判斷和整理也更合理、更公正,同時也給教
23、師提供了一個準(zhǔn)確、清晰、輕松的成績管理環(huán)境。</p><p><b> 1.2.2選題意義</b></p><p> 本系統(tǒng)根據(jù)我校的實際情況開發(fā),用于對學(xué)校教師、學(xué)生、課程信息的管理,主要用于管理學(xué)生成績。登錄系統(tǒng)時需要訪問數(shù)據(jù)庫中的用戶信息,從而正確確定登錄身份。系統(tǒng)完成了日常的教育工作中對學(xué)生成績檔案的數(shù)字化管理。較為系統(tǒng)地對學(xué)生信息、成績信息和課程信息進(jìn)行
24、管理。查詢、增添、修改、刪除都變的非常簡便,減少了管理的工作量。</p><p> 基于學(xué)校學(xué)生眾多,為了數(shù)據(jù)的安全性,系統(tǒng)將學(xué)生數(shù)據(jù)保存在數(shù)據(jù)庫中,以Visual C++設(shè)計前臺對系統(tǒng)進(jìn)行設(shè)計。因為成績管理系統(tǒng)是一項很實用的系統(tǒng),所面對的數(shù)據(jù)量很大,所以我們要求系統(tǒng)能夠高效快速的處理這些數(shù)據(jù),并且要保證數(shù)據(jù)的正確性、相容性和安全性。C++作為前臺是將數(shù)據(jù)庫中的數(shù)據(jù)讀取出來,有助于用戶對這些數(shù)據(jù)進(jìn)行相應(yīng)的操作,
25、使操作更方便,更符合用戶的要求。所以該系統(tǒng)應(yīng)該要有一個良好的界面,使用戶感覺很直觀,使用快捷,這就是用C++所要實現(xiàn)的功能。</p><p> 在做學(xué)生管理系統(tǒng)的同時,我也能學(xué)習(xí)到MFC與數(shù)據(jù)庫ODBC的來連接,MFC的使用,數(shù)據(jù)庫的操作等。</p><p> 第二章 基礎(chǔ)理論知識</p><p> 學(xué)生成績管理系統(tǒng)必不可少的數(shù)據(jù)庫,已經(jīng)連接數(shù)據(jù)庫方式,還有界
26、面操作等。</p><p> 本系統(tǒng)選擇用MYSQL做數(shù)據(jù)庫,ODBC連接,MFC界面操作。</p><p> 2.1 MVC模式概述</p><p> MFC實際上是微軟提供的,用于在C++環(huán)境下編寫應(yīng)用程序的一個框架和引擎,VC++是Windows下開發(fā)人員使用的專業(yè)C++ SDK(SDK,Standard SoftWare Develop Kit,專業(yè)軟
27、件開發(fā)平臺),MFC就是掛在它之上的一個輔助軟件開發(fā)包,MFC作為與VC++血肉相連的部分(注意C++和VC++的區(qū)別:C++是一種程序設(shè)計語言,是一種大家都承認(rèn)的軟件編制的通用規(guī)范,而VC++只是一個編譯器,或者說是一種編譯器+源程序編輯器的IDE,WS,PlatForm,這跟Pascal和Delphi的關(guān)系一個道理,Pascal是Delphi的語言基礎(chǔ),Delphi使用Pascal規(guī)范來進(jìn)行Win下應(yīng)用程序的開發(fā)和編譯,卻不同于Ba
28、sic語言和VB的關(guān)系,Basic語言在VB開發(fā)出來被應(yīng)用的年代已經(jīng)成了Basic語言的新規(guī)范,VB新加的Basic語言要素,如面向?qū)ο蟪绦蛟O(shè)計的要素,是一種性質(zhì)上的飛躍,使VB既是一個IDE,又成長成一個新的程序設(shè)計語言),MFC同BC++集成的VCL一樣是一個非外掛式的軟件包,類庫,只不過MFC類是微軟為VC++專配的..</p><p> MFC是Win API與C++的結(jié)合,API,即微軟提供
29、的Windows下應(yīng)用程序的編程語言接口,是一種軟件編程的規(guī)范,但不是一種程序開發(fā)語言本身,可以允許用戶使用各種各樣的第三方(如我是一方,微軟是一方,Borland就是第三方)的編程語言來進(jìn)行對Windows下應(yīng)用程序的開發(fā),使這些被開發(fā)出來的應(yīng)用程序能在Windows下運行,比如VB,VC++,Java,Delhpi編程語言函數(shù)本質(zhì)上全部源于API,因此用它們開發(fā)出來的應(yīng)用程序都能工作在Windows的消息機制和繪圖里,遵守Windo
30、ws作為一個操作系統(tǒng)的內(nèi)部實現(xiàn),這其實也是一種必要,微軟如果不提供API,這個世上對Windows編程的工作就不會存在,微軟的產(chǎn)品就會迅速從時尚變成垃圾,上面說到MFC是微軟對API函數(shù)的專用C++封裝,這種結(jié)合一方面讓用戶使用微軟的專業(yè)C++ SDK來進(jìn)行Windows下應(yīng)用程序的開發(fā)變得容易,因為MFC是對API的封裝,微軟做了大量的工作,隱藏了好多程序開發(fā)人員在Windows下用C++ & MFC編制軟件時的大量內(nèi)節(jié),如應(yīng)
31、用程序?qū)崿F(xiàn)消息的處理,設(shè)備環(huán)境繪圖,這種結(jié)合是以方便為目的的,必定要付出</p><p> M是指數(shù)據(jù)模型,V是指用戶界面,C則是控制器。使用MVC的目的是將M和V的實現(xiàn)代碼分離,從而使同一個程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計數(shù)據(jù)你可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應(yīng)該同步更新。</p><p> 2.2 MVC工作原理</p&g
32、t;<p> MFC應(yīng)用程序的操作步驟可歸結(jié)為四步:</p><p> 1.創(chuàng)建應(yīng)用程序?qū)ο髏heApp</p><p> 2.執(zhí)行MFC提供的WinMain()函數(shù)</p><p> 3.WinMain()調(diào)用InitInstance()函數(shù),此函數(shù)創(chuàng)建文檔模板,主框架窗口,文檔和視圖</p><p> 4.WinM
33、ain()調(diào)用Run()函數(shù),此函數(shù)執(zhí)行主消息循環(huán),以獲取</p><p> Windows消息。</p><p> 5.WinMain()是函數(shù)的入口點,該函數(shù)的主要任務(wù)是完成一些初始化的工作和維護了一個消息循環(huán)。他們的工作流程如下:入口 WinMain()---->MyRegisterClass()---->InitInstance ()--->whil
34、e消息循環(huán)。函數(shù)由入口開始執(zhí)行,之后調(diào)用 MyRegisterClass()注冊窗口類,之后InitInstance ()生成并顯示窗口,這樣之后,就完成了一個窗口的初始化工作了(當(dāng)然,在 MyRegisterClass(),InitInstance ()中都需要調(diào)用相應(yīng)的API函數(shù)來具體的實現(xiàn)),然后就是維護消息循環(huán),至此,程序的基本結(jié)構(gòu)就差不多建立了。以后程序的運作就靠個消息循環(huán)來推動了。&l
35、t;/p><p> 2.3 MYSQL概述</p><p> MYSQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MYSQL AB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracle收購。MYSQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi)。這樣就增加了速度并提高了靈活性。MYSQL的SQL“結(jié)構(gòu)化查詢語言”
36、。SQL是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MYSQL軟件采用了GPL(GNU通用公共許可證)。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MYSQL作為網(wǎng)站數(shù)據(jù)庫。</p><p> 1.使用C和C++編寫,并使用了多種編譯器進(jìn)行測試,保證源代碼的可移植性</p><p> 2.支持AIX、FreeBSD、HP-UX、L
37、inux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng)</p><p> 3.為多種編程語言提供了API。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。</p><p> 4.支持多線程,充分利用CPU資源。</p><p>
38、 2.4 ODBC概述</p><p> 開放數(shù)據(jù)庫互連(ODBC)是MICROSOFT提出的數(shù)據(jù)庫訪問接口標(biāo)準(zhǔn)。開放數(shù)據(jù)庫互連定義了訪問數(shù)據(jù)庫的API一個規(guī)范,這些API獨立于不同廠商的DBMS,也獨立于具體的編程語言(但是MICROSOFT的ODBC文檔是用C語言描述的,許多實際的ODBC驅(qū)動程序也是用C語言寫就的。)</p><p> 開放數(shù)據(jù)庫互連(ODBC)是Microsof
39、t引進(jìn)的一種早期數(shù)據(jù)庫接口技術(shù)。它實際上是我們要在本章后面加以討論的ADO的前身。Microsoft引進(jìn)這種技術(shù)的一個主要原因是,以非語言專用的方式,提供給程序員一種訪問數(shù)據(jù)庫內(nèi)容的簡單方法。換句話說,訪問DBF文件或Access Basic以得到MDB文件中的數(shù)據(jù)時,無需懂得Xbase程序設(shè)計語言。事實上,Visual C++就是這樣一個程序設(shè)計平臺,即Microsoft最初是以O(shè)DBC為目標(biāo)的。</p><p&g
40、t; ODBC工作起來和Windows一樣,它用包含在DLL內(nèi)的驅(qū)動程序完成任務(wù)。其實,ODBC提供一套兩個驅(qū)動程序:一個是數(shù)據(jù)庫管理器的語言,另一個為程序設(shè)計語言提供公用接口。允許Visual C++用標(biāo)準(zhǔn)的函數(shù)調(diào)用經(jīng)公用接口訪問數(shù)據(jù)庫的內(nèi)容,是這兩個驅(qū)動程序的匯合點。當(dāng)然,還有其它和ODBC有關(guān)的實用程序類型的DLL。例如,一個這樣的DLL允許你管理ODBC數(shù)據(jù)源。ODBC的實際管理接口出現(xiàn)在SYSTEM文件夾中的某個CPL(控制
41、面板)文件中尋找我們在后面要談到這方面的問題。ODBC的確能履行承諾,提供對數(shù)據(jù)庫內(nèi)容的訪問,并且沒有太多的問題。它沒有提供數(shù)據(jù)庫管理器和C之間盡可能最好的數(shù)據(jù)轉(zhuǎn)換,這種情況是有的,但它多半能像廣告所說的那樣去工作。唯一影響ODBC前程的是,它的速度極低至少較早版本的產(chǎn)品是這樣。ODBC最初面世時,一些開發(fā)者曾說,因為速度問題,ODBC永遠(yuǎn)也不會在數(shù)據(jù)庫領(lǐng)域產(chǎn)生太大的影響。然而,以Microsoft的市場影響力,ODBC毫無疑問是成功了
42、。今天,只要有兩種ODBC驅(qū)動程序的一種,那么幾乎每一個數(shù)據(jù)庫管理器的表現(xiàn)都會很卓越。</p><p><b> 第三章 需求分析</b></p><p> 所謂“需求分析”,是指對要解決的問題進(jìn)行詳細(xì)的分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果,最后應(yīng)輸出什么。</p><p> 它是整個過程中最關(guān)鍵的一個過程。假如在
43、需求分析時分析者們未能正確地認(rèn)識到顧客的需要的話,那么最后的軟件實際上不可能達(dá)到顧客的需要,或者軟件無法在規(guī)定的時間里完工。</p><p> 軟件需求分析就是把軟件計劃期間建立的軟件可行性分析求精和細(xì)化,分析各種可能的解法,并且分配給各個軟件元素。需求分析是軟件定義階段中的最后一步,是確定系統(tǒng)必須完成哪些工作,也就是對目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。</p><p> 3.
44、1 系統(tǒng)功能分析</p><p> 學(xué)生信息管理系統(tǒng)分為3大模塊,用戶需要登錄,然后進(jìn)行信息查詢,信息管理功能</p><p><b> 1.用戶角色:</b></p><p> 用戶需要進(jìn)行登錄。從MYSQL數(shù)據(jù)庫匹配用戶名密碼。若正確則進(jìn)入主界面。</p><p> 普通用戶只有查詢功能</p>
45、<p> 超級用戶具有管理功能</p><p><b> 2.功能模塊劃分:</b></p><p> (1) 管理功能(超級用戶具有本權(quán)限)</p><p><b> 1)院系管理</b></p><p><b> 2)班級管理</b></p>
46、;<p><b> 3)教師管理</b></p><p><b> 4)學(xué)生管理</b></p><p><b> 5)課程管理</b></p><p><b> 6)成績管理</b></p><p><b> 3.2 數(shù)
47、據(jù)流圖</b></p><p> 數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能。數(shù)據(jù)流圖為我們在寫程序工程中,起到了代碼流程控制左右。具有面向過程的思。</p><p> 圖3-1 用戶模塊數(shù)據(jù)流圖</p><p> 圖3-2 管理模塊數(shù)據(jù)流圖</p><
48、;p><b> 3.3 數(shù)據(jù)字典</b></p><p> 圖3-2 數(shù)據(jù)字典圖</p><p><b> 3.4 系統(tǒng)性能</b></p><p> 1.系統(tǒng)的可操作性:</p><p> 系統(tǒng)的界面使用MFC畫出來的。界面簡潔。登錄界面只有注冊按鈕,登錄按鈕,重置按鈕,操作非常簡
49、單。并且北京中包含有我校長春工業(yè)大學(xué)人文信息學(xué)院教學(xué)樓的圖片。給使用本系統(tǒng)的本校學(xué)生教室?guī)砗軓姷拇敫小?lt;/p><p> 系統(tǒng)的查詢界面在在左邊,管理功能在右邊。很分明,一樣就能讓人明白如何分布的。</p><p> 系統(tǒng)的管理功能則在右邊,簡便的操作能讓人很舒心的使用。</p><p> 操作性和按鈕分布是分不開的。</p><p&g
50、t;<b> 2.系統(tǒng)的安全性:</b></p><p> 本系統(tǒng)的安全性主要在信息管理的權(quán)限上。簡單而嚴(yán)密的權(quán)限分類能使系統(tǒng)的數(shù)據(jù)管理很容易且嚴(yán)謹(jǐn)。本系統(tǒng)的權(quán)限管理分為普通和超級兩種。</p><p> 普通用戶自由查詢權(quán)限。</p><p> 超級用戶具有管理增刪改查的權(quán)限。</p><p> 3.系統(tǒng)的可
51、移植性:</p><p> 本系統(tǒng)是基于MFC的應(yīng)用程序,并且采用了小巧卻很強大的MYSQL數(shù)據(jù)庫 ,在win7上開發(fā)的,鑒于win7的強普及性。本程序在有MYSQL驅(qū)動的win7上都能運行。</p><p> 4.系統(tǒng)的可維護性。</p><p> 軟件的可維護性是指理解、改正、改動、改進(jìn)軟件的難易程度。</p><p><b&
52、gt; (1)可理解性:</b></p><p> 本系統(tǒng)因結(jié)構(gòu)簡單,內(nèi)部流程清晰,使人容易理解。</p><p><b> (2)可測試性:</b></p><p> 本系統(tǒng)主要是基于MYSQL數(shù)據(jù)上的增刪改查,因此可測試性強。</p><p><b> (3)可修改性:</b&g
53、t;</p><p> 可修改性是指修改軟件的難易程度。</p><p> 本系統(tǒng)因模塊和模塊之間低耦合性,使得模塊模塊之間相對獨立。若要新加功能,只需提供另一個模塊的接口和外鏈方式即可。</p><p> 5.系統(tǒng)的可擴展性:</p><p> 本系統(tǒng)具有高內(nèi)聚,低耦合的特點,可拓展性強。</p><p>
54、 若要新增某功能,則只需要提供相應(yīng)模塊的功能代碼。再增加進(jìn)入方式即可。</p><p> 本系統(tǒng)按照基本軟件開發(fā)流程完成。</p><p><b> 第四章 總體設(shè)計</b></p><p> 學(xué)生信息管理系統(tǒng)是集合院系,班級,教師,學(xué)生,課程,成績等完整的學(xué)生信息管理軟件。該軟件提供信息的添加、刪除和修改信息功能。</p>
55、<p><b> 4.1 系統(tǒng)概述</b></p><p> 系統(tǒng)登錄后進(jìn)入主界面,主界面左邊按鈕進(jìn)行各種查詢,而主界面右邊按鈕直接進(jìn)行相關(guān)管理。有添加、刪除和修改信息功能。完整實現(xiàn)系統(tǒng)最主要的信息管理和查詢功能</p><p><b> 4.2 功能分析</b></p><p> 以下根據(jù)需求分析介紹
56、各個模塊具有的功能</p><p> 根據(jù)需求分析可得,本系統(tǒng)應(yīng)該具有三大模塊十六個功能,即管理系統(tǒng)模塊和信息查詢模塊。分別處理學(xué)生信息的增刪改功能,和學(xué)生信息的查詢功能。</p><p><b> 1.登錄模塊</b></p><p><b> ?。?)用戶登錄</b></p><p><
57、;b> ?。?)用戶注冊</b></p><p><b> 2.管理模塊</b></p><p><b> (1)系別管理</b></p><p><b> ?。?)班級管理</b></p><p><b> (3)教師管理</b>
58、</p><p><b> (4)學(xué)生管理</b></p><p><b> ?。?)課程管理</b></p><p><b> (6)成績管理</b></p><p> 根據(jù)功能分析,做出如(下圖4-1)系統(tǒng)層次結(jié)構(gòu)圖.</p><p> 圖4
59、-1學(xué)生信息管理系統(tǒng)的層次結(jié)構(gòu)圖</p><p> 系統(tǒng)各個部分的功能說明如下</p><p> 1.用戶模塊:處理用戶的登錄和游客的注冊2個功能。</p><p> 2.管理模塊:管理模塊實現(xiàn)下面的6個功能</p><p> 系別管理:增刪改系別,系號</p><p> 班級管理:增刪改班級號,班級名,所屬
60、系</p><p> 教師管理:增刪改教師號,教師名</p><p> 學(xué)生管理:增刪改學(xué)生學(xué)號,姓名,性別,所屬班級</p><p> 課程管理:增刪改課程號,課程名,所屬教師,學(xué)時,學(xué)分</p><p> 成績管理:增刪改課程名,成績。所屬學(xué)號</p><p><b> 第五章 數(shù)據(jù)庫設(shè)計<
61、;/b></p><p><b> 5.1 數(shù)據(jù)庫分析</b></p><p> 5.1.1實體的分析</p><p> 根據(jù)學(xué)生管理系統(tǒng)的總體設(shè)計,我們定義了三大模塊十六大功能,其中用戶模塊基于用戶。管理和查詢都是基于,系,班級,教師,學(xué)生,課程,成績,由此,學(xué)生管理系統(tǒng)應(yīng)該是具有7個實體的</p><p>
62、;<b> 1.用戶實體</b></p><p><b> 2.系實體</b></p><p><b> 3.班級實體</b></p><p><b> 4.教師實體</b></p><p><b> 5.學(xué)生實體</b>&
63、lt;/p><p><b> 6.課程實體</b></p><p><b> 7.成績實體</b></p><p> 5.1.2實體的屬性</p><p> 根據(jù)學(xué)生管理系統(tǒng)的需求,確定的實體屬性</p><p><b> 1.用戶實體的屬性</b>
64、;</p><p><b> (1)用戶編號</b></p><p><b> (2)用戶名</b></p><p><b> (3)用戶密碼</b></p><p><b> (4)用戶權(quán)限</b></p><p><
65、;b> 2.系實體的屬性</b></p><p><b> (1)系號</b></p><p><b> (2)系名</b></p><p><b> 3.班級實體的屬性</b></p><p><b> (1)班號</b>&l
66、t;/p><p><b> (2)班名</b></p><p><b> (3)系號</b></p><p><b> 4.教師實體的屬性</b></p><p><b> (1)教師號</b></p><p><b>
67、; (2)教師姓名</b></p><p><b> (3)教師性別</b></p><p><b> (4)教師年齡</b></p><p> 5. 學(xué)生實體的屬性</p><p><b> (1)學(xué)號</b></p><p>&
68、lt;b> (2)姓名</b></p><p><b> (3)性別</b></p><p><b> (4)班號</b></p><p><b> (5)教師年齡</b></p><p><b> 6.課程實體的屬性</b>&
69、lt;/p><p><b> (1)課程號</b></p><p><b> (2)課程名</b></p><p><b> (3)教師</b></p><p><b> (4)學(xué)時</b></p><p><b>
70、 (5)學(xué)分</b></p><p><b> 7.成績實體的屬性</b></p><p><b> (1)學(xué)號</b></p><p><b> (2)課程號</b></p><p><b> (3)成績</b></p>
71、<p> 5.1.3實體之間的聯(lián)系</p><p> 從實體的屬性分析,對數(shù)據(jù)模型有了一定的了解,我們得出了實體間的聯(lián)系如下。</p><p> 1. 學(xué)生學(xué)習(xí)課程,得到成績</p><p> 2. 學(xué)生隸屬于班級</p><p><b> 3.班級屬于系</b></p><p&
72、gt;<b> 4. 教師教授課程</b></p><p><b> 5. 教師屬于系</b></p><p> 5.2 數(shù)據(jù)庫的概念設(shè)計</p><p> 學(xué)生信息管理系統(tǒng)各部分的E-R圖(如圖5-1所示)</p><p> 學(xué)生信息管理系統(tǒng)整體的完整E-R圖(如圖5-2所示)</
73、p><p> 圖5-1各個實體屬性圖</p><p> 圖5-2學(xué)生管理理系統(tǒng)的完整E-R圖</p><p> 5.3 數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計</p><p> 邏輯結(jié)構(gòu)是獨立于任何一種數(shù)據(jù)模型的信息結(jié)構(gòu)。邏輯結(jié)構(gòu)的任務(wù)是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的基本E-R圖轉(zhuǎn)化為宜選用的DBMS所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu),并對其進(jìn)行優(yōu)化。</
74、p><p> 定義每個表的數(shù)據(jù)類型以及字段限制,使數(shù)據(jù)庫達(dá)到一定的完整性。每個表的物理設(shè)計如下:</p><p><b> 表5-3 用戶表</b></p><p><b> 表5-4 系別表</b></p><p><b> 表5-5 班級表</b></p>
75、<p><b> 表5-6 教師表</b></p><p><b> 表5-7 學(xué)生表</b></p><p><b> 表5-8 課程表</b></p><p><b> 表5-9 成績表</b></p><p> 5.4 數(shù)據(jù)庫的
76、建立</p><p> 本系統(tǒng)使用的數(shù)據(jù)庫是MYSQL</p><p><b> 創(chuàng)建數(shù)據(jù)庫</b></p><p> Create database xsxxdb;</p><p> use xsxxdb;</p><p><b> 1.創(chuàng)建用戶表</b><
77、/p><p> create table 用戶(</p><p> 用戶編號 int not null primary key,</p><p> 用戶名 char(20) not null primary key,</p><p> 密碼 char(20) not null</p><p> 權(quán)限 char(1
78、)null)</p><p><b> 2.創(chuàng)建系別表</b></p><p> create table 系別(</p><p> 系號 char(2) not null primary key,</p><p> 系名 char(20)not null)</p><p><b&g
79、t; 3.創(chuàng)建班級表</b></p><p> create table 班級(</p><p> 班號 char(10) not null primary key,</p><p> 班名 char(14)not null,</p><p> 系號 char(10)not null)</p><p&
80、gt;<b> 4.創(chuàng)建教師表</b></p><p> create table 教師(</p><p> 教師號 char(5) not null primary key,</p><p> 姓名 char(6)not null,</p><p> 性別 int not null</p>&l
81、t;p> 年齡 int not null)</p><p><b> 5.創(chuàng)建學(xué)生表</b></p><p> create table 學(xué)生(</p><p> 學(xué)號 char(14) not null primary key,</p><p> 姓名 char(6)not null,</p>
82、;<p> 性別 char(2)not null,</p><p> 班號 char(10)not null</p><p> 年齡 int not null)</p><p><b> 6.創(chuàng)建課程表</b></p><p> create table 課程(</p><p&
83、gt; 課程號 char(5) not null primary key,</p><p> 課程名 char(20)not null,</p><p> 教師號 char(5)not null,</p><p> 學(xué)時 int not null,</p><p> 學(xué)分 char(3)not null)</p>&l
84、t;p><b> 7.創(chuàng)建成績表</b></p><p> create table 成績(</p><p> 學(xué)號 char(14) not null,</p><p> 課程號 char(5)not null,</p><p> 成績 char(3)not null)</p><p
85、><b> 第六章 詳細(xì)設(shè)計</b></p><p> 通過系統(tǒng)設(shè)計,我們得到如下類圖(圖6-1)</p><p> 圖6-1 查詢模塊數(shù)據(jù)流圖</p><p> 其中數(shù)據(jù)庫管理類CDBManagement為核心,用戶類Clogin關(guān)聯(lián)CDBManagement類取得用戶表的查詢和管理,功能類CControlFun類關(guān)聯(lián)CDBMa
86、nagement類獲取表的查詢和管理</p><p> 6.1 數(shù)據(jù)庫連接模塊的類</p><p> CDatabase類:主要功能是建立與數(shù)據(jù)源的連接。</p><p> CRecordset類:該類代表從數(shù)據(jù)源選擇的一組記錄(記錄集),程序可以選擇數(shù)據(jù)源中的某個表作為一個記錄集,也可以通過對表的查詢得到記錄集,還可以合并同一數(shù)據(jù)源中多個表的列到一個記錄集中
87、.通過該類可對記錄集中的記錄進(jìn)行滾動、修改、增加和刪除等操作。</p><p> CRecordView類:提供了一個表單視圖與某個記錄集直接相連,利用對話框數(shù)據(jù)交換機制(DDX)在記錄集與表單視圖的控件之間傳輸數(shù)據(jù)。該類支持對記錄的瀏覽和更新,在撤銷時會自動關(guān)閉與之相聯(lián)系的記錄集。</p><p> CFieldExchange類:支持記錄字段數(shù)據(jù)交換(DFX),即記錄集字段數(shù)據(jù)成員
88、與相應(yīng)的數(shù)據(jù)庫的表的字段之間的數(shù)據(jù)交換。該類的功能與CDataExchange類的對話框數(shù)據(jù)交換功能類似。</p><p> CDBException類:代表ODBC類產(chǎn)生的異常。</p><p> 概括地講,CDatabase針對某個數(shù)據(jù)庫,它負(fù)責(zé)連接數(shù)據(jù)源;CRecordset針對數(shù)據(jù)源中的記錄集,它負(fù)責(zé)對記錄的操作;CRecordView負(fù)責(zé)界面,而CFieldExchange負(fù)
89、責(zé)CRecordset與數(shù)據(jù)源的數(shù)據(jù)交換。</p><p> 6.2 用戶模塊的詳細(xì)設(shè)計</p><p> 用戶模塊主要是2大功能,老用戶登錄功能和新用戶注冊</p><p><b> 1.用戶登錄的過程</b></p><p> (1)用戶輸入賬號和密碼</p><p> (2)獲取登
90、錄的用戶名密碼 </p><p> (3)檢查用戶名密碼的有效性</p><p> (4)在數(shù)據(jù)庫中匹配用戶名密碼</p><p> (5)若錯誤清空用戶名密碼返回到(1)</p><p> (6)若正確跳轉(zhuǎn)到主界面</p><p> 2.新用戶注冊的過程</p><p> (1)用
91、戶輸入賬號密碼</p><p> (2)獲取注冊的用戶信息</p><p> (3)檢查新用戶注冊信息的有效性</p><p> (4)在數(shù)據(jù)庫中查找是否已經(jīng)存在</p><p> (5)向用戶表插入用戶信息</p><p> 6.3 查詢功能的詳細(xì)設(shè)計</p><p> 1.用戶輸
92、入查詢信息</p><p> 2.獲取用戶查詢信息</p><p><b> 3.在數(shù)據(jù)庫中查找</b></p><p><b> 4.顯示查找結(jié)果</b></p><p> 6.4 管理功能的詳細(xì)設(shè)計</p><p> 1.用戶執(zhí)行管理操作</p>
93、<p> 2.獲取用戶執(zhí)行的管理操作</p><p> 3.根據(jù)操作更新數(shù)據(jù)庫</p><p><b> 4.顯示更新結(jié)果.</b></p><p> 6.5 界面美化的詳細(xì)設(shè)計</p><p> 1.為了使系統(tǒng)美觀,通過設(shè)置背景圖片來改變系統(tǒng)樣式。</p><p> 實現(xiàn)方
94、法如下:引入一張要加入的圖片,在要添加圖片的對話框類向?qū)е蠱essages中選擇WM_PAINT對其編輯,在OnPaint()函數(shù)中加入如下代碼:</p><p> bmpBackground.LoadBitmap(IDB_BITMAP1); </p><p> //IDB_BITMAP1是對應(yīng)圖的ID</p><p> 2.設(shè)置控件透明:在要添加圖片的對話
95、框類向?qū)е蠱essages中選擇WM_CTRCOLOR對其編輯,在OnCtlColor()函數(shù)中加入如下代碼:</p><p> if(nCtlColor==CTLCOLOR_XXX)</p><p> //對所有的XXX控件的屬性進(jìn)行設(shè)定</p><p> //XX代指STATIC.BTN等類似的控件</p><p><b>
96、; {</b></p><p> pDC->SetBkMode(TRANSPARENT);</p><p> return (HBRUSH)::GetStockObject(NULL_BRUSH); </p><p><b> }</b></p><p> 6.6 開發(fā)工具及環(huán)境</p&
97、gt;<p> 操作系統(tǒng): Win7</p><p> 編程語言:C++,MFC</p><p> 數(shù)據(jù)庫系統(tǒng):MYSQL</p><p> 開發(fā)工具: VC++ 6.0</p><p><b> 應(yīng)用框架:MFC</b></p><p><b> 第七章 系統(tǒng)
98、實現(xiàn)</b></p><p> 本系統(tǒng)需要的數(shù)據(jù)庫,功能模塊,數(shù)據(jù)庫連接等已完成。最后一步即建立交互界面,實現(xiàn)系統(tǒng)的各個功能</p><p><b> 7.1 系統(tǒng)的實現(xiàn)</b></p><p> 系統(tǒng)實現(xiàn)是對所有資源的整合,使得系統(tǒng)設(shè)計的成果變成可實際運行的系統(tǒng)的過程。本部分是對詳細(xì)設(shè)計的具體實現(xiàn)。對應(yīng)三大模塊十六大功能設(shè)計
99、出一個主界面和十六個功能界面。以完成十六個應(yīng)用功能的交互</p><p> 7.2 用戶登錄模塊的實現(xiàn) </p><p><b> 圖7-1 登陸界面</b></p><p> 7.3 查詢模塊的實現(xiàn)</p><p> 圖7-2系別查詢界面</p><p> 圖7-3 班級查詢界面<
100、;/p><p> 7.4 管理模塊的實現(xiàn)</p><p> 圖7-4 系別管理界面</p><p> 圖7-1 班級管理界面</p><p><b> 結(jié)束語</b></p><p> 這次畢業(yè)設(shè)計用了半個多月。這段時間以來,查找了很多關(guān)于MFC,MYSQL,VC數(shù)據(jù)庫連接方面的資料。使我在
101、做畢設(shè)的同時,對MFC的使用的熟練度增加,熟悉了VC++數(shù)據(jù)庫連接的MFC ODBC數(shù)據(jù)庫的連接方式,熟悉了MYSQL的命令行操作。</p><p> 另外我在為知識技能提高感到開心的同時,更加感激我的指導(dǎo)老師的幫助,謝謝您們! </p><p><b> 參考文獻(xiàn)</b></p><p> [1]Paluosaisi. Programm
102、ing Windows with MFC, 2nd Edition. http://www.microsoft.com/mspress/taiwan/books/book11406.htm.</p><p> [2]Jeffrey Richter. Windows Via C/C++.機械工業(yè)出版社,2005.5</p><p> [3]Scott MeScott Meyers. Ef
103、fective C++. http://download.csdn.net/tag/C++%EF%BC%8CEffect/track_scores </p><p> [4]王珊,薩師煊. 數(shù)據(jù)庫系統(tǒng)概論.高等教育出版社,2006.5</p><p> [5]袁方,郗亞輝,陳昊,楊成..數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計 理論與實踐教程(第二版)電子科技大學(xué)出版社,2005.3</p>
104、<p> [6]VC++數(shù)據(jù)庫編程三部教學(xué)(基礎(chǔ)、實踐與高級)+(電子書)</p><p> [7]侯俊杰. 深入淺出MFC.華中科技大學(xué)出版社,2001.1(第2版)</p><p> [8] 姜承堯. MYSQL技術(shù)內(nèi)幕:InnoDB存儲引擎 出版社: 機械工業(yè)出版社,2011.1</p><p> [9]姚領(lǐng)田. 精通MFC程序
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機信息管理畢業(yè)論文-- 學(xué)生管理系統(tǒng)
- 計算機應(yīng)用專業(yè)畢業(yè)論文--學(xué)生信息管理系統(tǒng)
- 計算機應(yīng)用畢業(yè)論文---學(xué)生信息管理系統(tǒng)
- 計算機應(yīng)用畢業(yè)論文:學(xué)生信息管理系統(tǒng)
- 計算機信息管理畢業(yè)論文--學(xué)生成績管理系統(tǒng)
- 計算機信息管理畢業(yè)論文
- 計算機信息管理畢業(yè)論文
- 計算機信息管理畢業(yè)論文
- 計算機信息管理畢業(yè)論文---計算機圖書管理系統(tǒng)
- 計算機信息管理系統(tǒng)畢業(yè)論文(設(shè)計)
- 計算機畢業(yè)論文-nba信息管理系統(tǒng)
- 淺析計算機信息管理系統(tǒng)畢業(yè)論文
- 計算機應(yīng)用畢業(yè)論文---學(xué)生信息管理系統(tǒng) (2)
- 計算機應(yīng)用畢業(yè)論文學(xué)生信息管理系統(tǒng)
- 計算機信息管理專業(yè)畢業(yè)論文
- 計算機信息管理專業(yè)畢業(yè)論文
- 計算機信息管理專業(yè)畢業(yè)論文
- 計算機信息管理專業(yè)畢業(yè)論文
- 計算機信息管理??飘厴I(yè)論文
- 計算機系-畢業(yè)論文信息管理
評論
0/150
提交評論