畢業(yè)設計-學籍管理系統(tǒng)的設計與實現(xiàn)論文.doc
《畢業(yè)設計-學籍管理系統(tǒng)的設計與實現(xiàn)論文.doc》由會員分享,可在線閱讀,更多相關《畢業(yè)設計-學籍管理系統(tǒng)的設計與實現(xiàn)論文.doc(65頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、學籍管理系統(tǒng)學籍管理系統(tǒng) 摘 要 學籍管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的 建立和維護以及前端應用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致 性和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應用程序功能完備,方便 使用等特點。 本系統(tǒng)主要完成對學生情況和學生成績的管理,包括數(shù)據(jù)庫中表的添加、 修改、刪除等。系統(tǒng)還可以完成對各類信息的瀏覽、查詢、添加、刪除、修改、 報表等功能。 系統(tǒng)的核心是數(shù)據(jù)庫中各個表的聯(lián)系,每一個表的修改都將連動的影響其 它的表,當完成對數(shù)據(jù)的操作時系統(tǒng)會自動地完成數(shù)據(jù)庫的修改。查詢功能也 是系統(tǒng)的核心之一,在系統(tǒng)中即有單條件查詢和多條件查
2、詢,也有精確查詢和 模糊查詢,系統(tǒng)不僅有靜態(tài)的條件查詢,也有動態(tài)生成的條件查詢,其目的都 是為了方便用戶使用。系統(tǒng)有完整的用戶添加、修改、刪除和密碼修改功能, 并具備報表打印功能。 經(jīng)過分析,我們使用 Microsoft 公司的 Visual Basic 開發(fā)工具,利用其提 供的各種面向對象的開發(fā)工具,尤其是數(shù)據(jù)窗口這一能方便而簡潔操縱數(shù)據(jù)庫的 智能化對象,首先在短時間內建立系統(tǒng)應用原型,然后,對初始原型系統(tǒng)進行需 求迭代,不斷修正和改進,直到形成用戶滿意的可行系統(tǒng)。 關鍵字:控件、窗體、數(shù)據(jù)庫、MIS、VB6.0、SQL Server 2000。 Abstract Student statu
3、s management system is development two aspects that typical information management system (MIS), its development includes primarily the background database creates with support and the front end applies the procedure. Creates to rise to the former request the consistency of data is strong with the i
4、ntegrity, the library that the safeness of data like. But request the latter very much to apply the procedure function complete, easy usage etc. characteristics. This system completes primarily to students circumstance with the management of students score, include the database the inside the watch
5、increase, modify, delete etc The system can also complete to the browsing various information, search, increase, delete, modify, and table-report etc. function. System of nucleus is other table in an influence for of relation, each a modification of watch moving in a table in database that modificat
6、ion that operation hour system, be to complete the logarithms according to will complete the database of oneself. Search the function is also one of the nucleus of the system, having namely in system the single condition search to search with many conditions, also having the accurate search to searc
7、h with blur, system not only contain static condition search, also have the dynamic born condition search, its purpose is all for the sake of the convenient consumer to use. System contain complete consumer increase, delete to modify the function with the password, the union has the report prints th
8、e function. Through analysis, we use the Microsoft company Visual Basic development tool, making use of its every kind of the tool of development that provide that face to the object, particularly is intelligence that the window of data this on canning be convenient but manipulate the database in br
9、ief to turn the object, create in the in a short time first system application prototype, then, start to the beginning the prototype system proceeds to require with the iteration, revising continuously with improve, until forming the consumer is satisfied can row system. Keywords: Control piece, For
10、m, Database, MIS, VB6.0, SQL Server 2000. 目 錄 ABSTRACTABSTRACT 2 1.1 系統(tǒng)需求分析7 1.2 系統(tǒng)的初步調查7 1.2.1 開發(fā)學籍管理系統(tǒng)的目的.7 1.2.2 業(yè)務流程分析8 1.2.3 數(shù)據(jù)流程分析:10 數(shù)據(jù)流程圖:.10 1.2.2 選題背景及意義.11 1.3 開發(fā)工具的選用.11 1.3.1 Visual Basic 的使用11 1.3.2 SQL Server 2000 的使用12 1.4 系統(tǒng)的可行性研究13 1.4.1 技術上的可行性.13 1.4.2 管理上的可行性.13 1.4.3 安全上的可行性.13
11、 1.5 系統(tǒng)性能分析13 1.5.1 系統(tǒng)的安全性.13 1.5.2 系統(tǒng)的快捷性.14 1.5.3 系統(tǒng)的準確性.14 1.5.4 系統(tǒng)的嚴謹性.14 第第 2 章章 概要設計概要設計.14 2.1 系統(tǒng)設計思路分析15 2.1.1 界面.15 2.1.2 用戶登錄.15 2.1.3 學籍信息內容查詢和錄入.15 2.1.4 數(shù)據(jù)庫分析.15 2.2 設計簡述15 2.2.1 VB 設計的界面簡述15 2.2.2 系統(tǒng)簡圖.16 第第 3 章章 系統(tǒng)的分析與設計系統(tǒng)的分析與設計.16 3.1 數(shù)據(jù)庫的分析與設計17 3.1.1 關系型數(shù)據(jù)庫簡介.17 3.1.2 系統(tǒng)數(shù)據(jù)庫的結構設計.18
12、 3.2 應用程序的分析與設計20 3.2.1 應用程序的界面選擇與設計.20 3.2.2 應用程序的功能模塊.21 3.2.3 應用程序的結構.22 第第 4 章章 詳細設計詳細設計.23 4.1 系統(tǒng)登錄23 4.1.1 數(shù)據(jù)庫登錄的設計.24 4.1.2 系統(tǒng)登錄的設計.26 4.2 學籍管理系統(tǒng)主界面設計29 4.2.1 應用程序主界面的窗體設計.29 4.2.2. 應用程序界面的代碼實現(xiàn).31 4.3 數(shù)據(jù)錄入窗體的設計37 4.3.1 學生信息的錄入.38 4.3.2 學生成績的錄入.43 4.4 通用查詢模塊的設計46 4.4.1 利用 ActiveX DLL 設計一個通用查詢模
13、塊46 4.4.2 通用查詢模塊在系統(tǒng)中的應用.50 4.5 報表打印模塊的設計51 4.5.1 利用報表設計器制作報表.51 4.5.2 通用報表打印模塊的制作.54 4.6 學生信息管理及系統(tǒng)用戶管理58 4.6.1 學生信息管理.59 4.6.2 用戶管理模塊的設計與開發(fā).61 4.7 學生成績信息統(tǒng)計64 4.7.1學生成績統(tǒng)計功能的實現(xiàn)65 第第 5 章章 心得體會心得體會.68 5.1 界面設計的一些原則68 5.2 代碼編寫的一些原則70 前 言 近年來隨著高校體制的不斷改革與發(fā)展,我國在校大中專學生的人數(shù)也在 不斷擴大,給各大中專院校的學生管理工作帶來了諸多不便。學籍管理系統(tǒng)是
14、 一個教育單位不可缺少的部分,它的內容對于學校的決策者和管理者來說都至關 重要,所以學籍管理系統(tǒng)應該能夠為用戶提供充足的信息和快捷的查詢手段。但 一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺 點,如:效率低、保密性差,另外時間一長,將產生大量的文件和數(shù)據(jù),這對于查找、 更新和維護都帶來了不少的困難。隨著科學技術的不斷提高,計算機科學日漸成 熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越 來越重要的作用。作為計算機應用的一部分,使用計算機對學籍信息進行管理, 具有手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲 量大、保密性好、壽
15、命長、成本低等。這些優(yōu)點能夠極大地提高學生檔案管理 的效率,也是企業(yè)的科學化、正規(guī)化管理,與世界接軌的重要條件。因此,開發(fā) 這樣一套學籍管理軟件成為很有必要的事情。 學籍管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),它是一個基于 C/S 模式下,以 面向對象為開發(fā)語言的學籍管理系統(tǒng)。其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維 護以及前端應用程序的開發(fā)兩個方面。對于前者要求數(shù)據(jù)的一致性、完整性和 安全性。而對于后者則要求應用程序功能完備,方便使用等特點。 第 1 章 可行性研究及需求分析 1.1 系統(tǒng)需求分析 近年來隨著高校體制的不斷改革與發(fā)展,我國在校大中專學生的人數(shù)也在 不斷擴大,給各大中專院校的學生管理
16、工作帶來了諸多不便。隨著教育的普及, 各高等院校也在不斷的提高教學質量和學校管理質量,而學校管理就是對學生 在校情況的管理,重要的是學生的學籍管理,因為學籍是學生在校學習的憑證, 而學籍又包括確定招生計劃進行招生錄取工作;學生的基本情況、各科的成績、 總成績(或總學分) 、獎懲;制定教學計劃,最后在學生離校時做出學生在校學 習情況的總結。由于學校和在校學生是一對多的關系,因此,學籍的管理是一 個工作量大而又繁雜的工作。而由于信息管理是建立在龐大的數(shù)據(jù)庫中的,如 何建立學生信息庫是進行自動化學籍管理的一個重要問題。 高等院校學籍管理比較復雜,工作量很大,在過去,學校里面往往采用人 工方式進行,可
17、以想象其工作難度之大,需要的操作人員之多,既費工又費時, 尤其是它的錄入與統(tǒng)計工作,更是一項非常艱苦的工作。所以需要一種能夠智 能管理的計算機系統(tǒng)。數(shù)據(jù)庫能很方便的進行數(shù)據(jù)的統(tǒng)計和錄入工作,這對有 大量數(shù)據(jù)的編輯有重要的作用。所以學校在學籍管理上很需要一個自動化,智 能化的計算機學籍管理系統(tǒng)。在此,以一個學校的小型學籍信息管理系統(tǒng)的開 發(fā)為試驗,其作用主要是對學校學生信息檔案、成績進行錄入、查詢、維護、 統(tǒng)計、打印輸出等操作。 1.2 系統(tǒng)的初步調查 1.2.1 開發(fā)學籍管理系統(tǒng)的目的 學校每年都有新生入學、老生畢業(yè),還有其他各種人事變動。如何有效的 管理這些學生信息,幫助學校和老師掌握學生的
18、情況,這就是學籍管理系統(tǒng)需 要完成的功能及開發(fā)目的;另外,為使本軟件的功能完善、功能更強大,還包 括與學生信息有關的管理功能,例如成績管理等功能。 經(jīng)過大學四年學習,開發(fā)軟件有了一定的基礎,為使開發(fā)軟件的經(jīng)驗進一 步提高和適應社會發(fā)展,與同組軟件開發(fā)人員共同努力學習、提高軟件開發(fā)的 經(jīng)驗。 1.2.21.2.2 業(yè)務流程分析業(yè)務流程分析 班級管理業(yè)務流程圖: 教務處輸入計算機 班主任教務處 學 生 班 級 班 級 輸 出 學籍管理業(yè)務流程圖: 課程管理業(yè)務流程圖: 成績管理業(yè)務流程圖: 教務處輸入計算機 班主任教務處 學 生 檔 案 檔案 輸出 課程 教務處輸入計算機 教師教務處 學 生 課
19、程 輸出 教務處輸入計算 機 班主任教務處 學 生 班 級 班 級 輸 出 教務處輸入計算機 教師教務處 學 生 成 績 教 師 輸 1.2.31.2.3 數(shù)據(jù)流程分析:數(shù)據(jù)流程分析: 數(shù)據(jù)流程圖: 由于本系統(tǒng)的數(shù)據(jù)模塊較多,下面僅以學生成績管理模塊為例來進行編制。 下圖為學籍管理系統(tǒng)數(shù)據(jù)流程圖:下圖為學籍管理系統(tǒng)數(shù)據(jù)流程圖: 。 學生注冊 獎懲信息管理 學籍信息管理基本信息管理課程信息管理 成績信息管理 基本信息輸入 課程信息輸入 成績信息輸入 入 獎懲信息輸入 學籍信息輸入 1.2.2 選題背景及意義 隨著現(xiàn)代科學技術的飛速發(fā)展、計算機與全球互連網(wǎng)絡 Internet 相連接, 使今天的社
20、會進入了以計算機為核心的社會。在信息社會中,信息的獲取、處 理、交流和決策都需要大量高質量的處理工具。在這高科技時代,信息的處理 是十分重要,如果用原始的方式進行處理,我們就會跟不上時代的進展;我們 需用高科技時代的產品。學生信息的管理是每個學校工作中一項非常重要的工 作,要投入很大的人力進行管理。如果開發(fā)一套學籍管理系統(tǒng)軟件將具有十分 重要的意義,可以減少人力資源在這方面的投入,而更多的投入教學或其它工 作中。 信息社會的高科技,商品經(jīng)濟化的高效益,使計算機的應用已普及到經(jīng)濟 和社會生活的各個領域。計算機雖然與人類的關系愈來愈密切,還有人由于計 算機操作不方便繼續(xù)用手工勞動。為了適應現(xiàn)代社會
21、人們高度強烈的時間觀念, 學籍管理系統(tǒng)為教學辦公室?guī)砹藰O大的方便。使用者可以了解本系統(tǒng)的基本 工作原理。操作人員只需輸入一些簡單的漢字、數(shù)字就可以實現(xiàn)工作要求的操 作。 所開發(fā)系統(tǒng)主要是對高等院校的學生學籍信息進行管理,而不對其他公司 或單位內容進行涉及。在對學籍信息的管理中,對管理員賦予所有的權限,即 既有具有查詢的權限,又具有對數(shù)據(jù)庫進行錄入和修改的功能,以及對數(shù)據(jù)庫 進行清空的功能。由于該系統(tǒng)主要應用在學院內部使用,而不在網(wǎng)絡上公開, 因此在設計開發(fā)時可以做成單機版。 1.3 開發(fā)工具的選用 1.3.1 Visual Basic 的使用 Visual Basic 是 Microsoft
22、 公司推出的一個可視化的面向對象的應用程 序開發(fā)工具。由于 VB 繼承了 Basic 語言簡單、易學的優(yōu)點,又增強了可視化、 數(shù)據(jù)庫及 Internet 編程功能,因此很快便成為開發(fā) Windows 應用程序的有效工 具。在本次設計中只所以采用 VB 進行開發(fā),主要是以為 VB 具有以下兩大特點: 1.面向對象編程 傳統(tǒng)的結構化語言(如 C,Pascal 和 Basic 等)都是采用面向過程的編程 方法來解決問題。在面向過程的編程方法中,代碼和數(shù)據(jù)是分離的,由此帶來 了很多缺陷,其中最重要的就是程序的可維護性差。面向對象編程 (OOP:Object Oriented Programming)則
23、把數(shù)據(jù)和處理數(shù)據(jù)的代碼封裝到一 個類中,類的實例就是對象。與面向對象的編程方法相比,面向對象編程方法 有三個優(yōu)點:1)程序易于閱讀和理解;2)程序易于修改;3)對象能重復使用 多次,即程序員可以隨時根據(jù)需要將對象插入到程序中去。 2.事件驅動的編程機制 在面向對象的編程方法中,每個程序通常包含一個主程序和若干個子程序, 由某個子程序來處理某個小問題,再由主程序自頂向下調用各個子程序來逐步 解決整個問題。VB 徹底解決了這種編程機制。在 VB 中,沒有傳統(tǒng)意義上的主 程序,程序執(zhí)行通過事件來驅動,即只有在事件發(fā)生時,程序才會執(zhí)行,若沒 有發(fā)生任何事件,則處于停滯等待狀態(tài)。 事件驅動使得用 VB
24、編程沒有必要建 立明顯的開始和結束程序,而只需編寫若干微小的子程序,這些子程序分別由 各種事件來驅動執(zhí)行。由于子程序規(guī)模不大、功能單一,因此編程難度得意大 大降低。 本次畢業(yè)設計需要用一種新軟件來開發(fā)學習,但是接觸一門新的軟件往往 上手容易,使用起來很困難,而且這次畢業(yè)設計時間短,任務重。顯然使用非 常復雜的軟件進行開發(fā)是不太現(xiàn)實的。而 Visual Basic 簡單易懂,控件的操作 簡單方便,且集成了多種開發(fā)和應用軟件,使用的人比較多,方便在一起討論 學習,所以在這次設計中,我采用了 VB 作為主要的開發(fā)工具。 1.3.2 SQL Server 2000 的使用 Microsoft SQL
25、Server 2000 是為當前的分布式客戶機/服務器環(huán)境特別設 計的,SQL Server 數(shù)據(jù)庫能夠輕而易舉的通過 Internet 和內部網(wǎng)絡加以訪問。 SQL Server 提供了一系列方法將數(shù)據(jù)庫填充到 Web 服務器,同時提供了對數(shù)據(jù) 的快捷訪問。它是一個可伸縮、高效能的數(shù)據(jù)庫管理系統(tǒng),具備內置的復制能 力、Internet 集成、開放系統(tǒng)體系結構以及其強大的基于 GUI 的數(shù)據(jù)庫管理工 具。它的一個獨特功能是基于服務器的作業(yè)調度系統(tǒng),允許直觀的控制多個服 務器和遠程操作。這極大地增強了數(shù)據(jù)庫的性能和可靠性。 SQL Server 的主要功能: 支持客戶機/服務器模型; 操作系統(tǒng)兼
26、容性; 多平臺支持; 多協(xié)議兼容性; 數(shù)據(jù)倉庫; 數(shù)據(jù)復制。 1.4 系統(tǒng)的可行性研究 1.4.1 技術上的可行性 由于 VB 語言簡單、易學的優(yōu)點,又增強了可視化、數(shù)據(jù)庫及 Internet 編 程功能,很容易就可以進行系統(tǒng)開發(fā)。因此系統(tǒng)開發(fā)工具可以采用 Visual Basic 進行開發(fā)。而對數(shù)據(jù)庫的建立,由于建立的數(shù)據(jù)庫主要是對學籍的信息 進行管理,所以可以采用微軟公司開發(fā)的 Microsoft SQL Server 2000。該軟 件簡單易懂,應用廣泛,比較適合開發(fā)數(shù)據(jù)庫軟件使用,而且建立的數(shù)據(jù)庫較 為安全。 1.4.2 管理上的可行性 因為系統(tǒng)主要應用于學院內部,而不具備網(wǎng)絡查找功能
27、,因此在實現(xiàn)時可 以做成單機版,對管理員賦予數(shù)據(jù)錄入、查詢、修改以及對數(shù)據(jù)庫的清零等功 能。 1.4.3 安全上的可行性 在建立數(shù)據(jù)庫時可以通過對數(shù)據(jù)庫的設計用戶名和密碼進行保密,以及在 建立數(shù)據(jù)庫以后可以對數(shù)據(jù)進行壓縮等技術,保證數(shù)據(jù)的安全,使數(shù)據(jù)庫具有 安全保障。 1.5 系統(tǒng)性能分析 1.5.1 系統(tǒng)的安全性 所開發(fā)系統(tǒng)必須保證系統(tǒng)的安全,必須保證系統(tǒng)數(shù)據(jù)庫不能被任意修改, 系統(tǒng)不容易被病毒侵蝕。對光纖信息數(shù)據(jù)庫只有 管理員才能進行錄入,修改和 刪除。 1.5.2 系統(tǒng)的快捷性 系統(tǒng)必須快速準確的對所做的操作做出反映,不能出現(xiàn)長時間的延遲和錯 誤或者莫名其妙的死機。 1.5.3 系統(tǒng)的準
28、確性 系統(tǒng)必須準確的對所做的操作做出反映,要保證所輸出結果的準確無誤。 1.5.4 系統(tǒng)的嚴謹性 所開發(fā)系統(tǒng)必須嚴謹,不能隨意被修改,不能隨意被人下載源代碼。 第 2 章 概要設計 2.1 系統(tǒng)設計思路分析 2.1.1 界面 用 VB 設計基礎界面,在初步設計時,可以只對窗體進行設計,而不涉及程 序的內容,待窗體設計完畢后,再進行程序編程,這也是 VB 的優(yōu)點之一。 2.1.2 用戶登錄 用戶登錄時,用戶信息進入存放用戶名和密碼的數(shù)據(jù)庫,若表中已有此用 戶名,則給出提示,進入系統(tǒng),若沒有此用戶名,則給出提示,返回用戶登錄 界面。 2.1.3 學籍信息內容查詢和錄入 查詢結果可以通過網(wǎng)格輸出,輸
29、出時顯示各個學籍信息的漢字意義。在管 理員進行錄入工作時,對所輸入信息插入數(shù)據(jù)庫內,并保證其安全和主屬性的 唯一。 2.1.4 數(shù)據(jù)庫分析 在系統(tǒng)實現(xiàn)時,可以建立一個數(shù)據(jù)庫,但是建立多個表。對用戶名和密碼, 設計一個用戶密碼表包括“用戶名”和“密碼”兩個字段;建立學生情況、教 師情況、班級情況、教學計劃等固定表;在建立成績數(shù)據(jù)表時,考慮到各專業(yè) 和班級的課程不相同,建立統(tǒng)一的表比較困難。所以讓系統(tǒng)管理員按照實際情 況動態(tài)的建立數(shù)據(jù)表,但要保證所查詢出的結果完全滿足用戶的需求。 2.2 設計簡述 2.2.1 VBVB設計的界面簡述 漂亮界面,這個窗體要求漂亮,做成通用窗體的效果。登錄界面,要求管
30、 理員輸入帳戶密碼,并根據(jù)密碼是否正確決定進入主界面。主界面,用向導生 成,可以通過各個菜單調用各種功能,并可以通過樹形結構瀏覽數(shù)據(jù)庫中的表。 新建畢業(yè)生表,要求可以生成以畢業(yè)年份命名的畢業(yè)生信息表,具體表中的字 段由管理員決定。數(shù)據(jù)輸入,可以在這個窗體中對數(shù)據(jù)庫中的任意表進行添加、 修改、刪除等操作。數(shù)據(jù)導入,管理員可以把 Excel 表中的數(shù)據(jù)導入到數(shù)據(jù)庫 中。查找向導,可以根據(jù)各種條件對學生進行查找,并顯示。成績查詢,對成 績進行單人或者課程查詢。打印管理,管理員可以打印單人或者本課程的成績, 并且對打印的字段進行設置。幫助信息,說明作者,版本信息。 2.2.2 系統(tǒng)簡圖 歡迎界面 學
31、籍 信 息 庫 用戶登錄退出 打印報表 零 學生查詢數(shù)據(jù)導入數(shù)據(jù)輸入建立新 表 登錄成功 主界面 成績查詢 版本信息 創(chuàng)建輸入輸入讀出讀出讀出 退出 第 3 章 系統(tǒng)的分析與設計 在開發(fā)系統(tǒng)之前,需要先對系統(tǒng)進行分析與設計,進而確定系統(tǒng)的設計方 案并且實現(xiàn)之。 對于數(shù)據(jù)庫應用系統(tǒng)而言,其具體的分析、規(guī)劃與設計大體上可以分為數(shù) 據(jù)庫的分析與設計、應用程序的分析與設計兩大部分。其中,數(shù)據(jù)庫的分析與 設計非常重要。合理的數(shù)據(jù)庫設計和建設是數(shù)據(jù)庫應用系統(tǒng)成功的關鍵。 3.1 數(shù)據(jù)庫的分析與設計 系統(tǒng)中所用的 SQL Server 2000 數(shù)據(jù)庫屬于關系型數(shù)據(jù)庫。有關它的一些方 法和原則說明如下。 3
32、.1.1 關系型數(shù)據(jù)庫簡介 關系型數(shù)據(jù)庫是以關系型數(shù)據(jù)庫為基礎的數(shù)據(jù)庫,是根據(jù)表、記錄和字段 之間的關系進行組織和訪問的一種數(shù)據(jù)庫,它通過若干個表(Table)來存取 數(shù)據(jù),并且通過關系(Relation)將這些表聯(lián)系在一起。關系數(shù)據(jù)庫提供了結 構化查詢語言(SQL)的標準接口。目前,關系型數(shù)據(jù)庫是應用最為廣泛的數(shù) 據(jù)庫。 關系型數(shù)據(jù)庫中的基本概念如下: 表:由行和列組成的數(shù)據(jù)集合,用于存儲數(shù)據(jù)。 字段:用于表示實體屬性的符號集。數(shù)據(jù)庫中的每一列稱為一個字段。 表是由他所包含的各種字段定義的,每個字段描述了他所含有的數(shù)據(jù)。 關鍵字:一般的,需要在表中定義一個字段(或多個字段) ,用于快速 檢索
33、。一個表的主關鍵字用來唯一的標志表的每行。 索引:索引是根據(jù)數(shù)據(jù)庫表中記錄的關鍵字值對數(shù)據(jù)庫表中的記錄進 行分類。索引用來提高數(shù)據(jù)庫記錄的存取速度。 視圖:與表相關,可以根據(jù)一定的條件選取或組織一個或多個表中的數(shù) 據(jù),構成一個更易于操作的數(shù)據(jù)對象,其實質是虛擬表。 存儲過程:是一組被編輯在一起,用以執(zhí)行特定功能的 SQL 語句;這 些語句通常是被編譯過的,執(zhí)行速度比較快。 觸發(fā)器:類似于存儲過程,但觸發(fā)器的執(zhí)行是自動的。 關系型數(shù)據(jù)庫一般可以分為兩大類:一類是桌面數(shù)據(jù)庫,例如 Access、FoxPro 等;另一類是客戶機/服務器數(shù)據(jù)庫,例如 SQL Server、Oracle 等。 一般而言
34、,桌面數(shù)據(jù)庫用于小型的、單機的數(shù)據(jù)庫應用程序;客戶機/服務 器數(shù)據(jù)庫用于大型的、多用戶的數(shù)據(jù)庫管理系統(tǒng)。 3.1.2 系統(tǒng)數(shù)據(jù)庫的結構設計 一個數(shù)據(jù)庫應用程序的開發(fā),其數(shù)據(jù)庫的設計是至關重要的一個環(huán)節(jié)。好 的數(shù)據(jù)庫設計能夠大大簡化開發(fā)的難度,提高開發(fā)工作的效率。 在設計關系型數(shù)據(jù)庫時,一般需要遵循如下幾條規(guī)則: (1) 表中的數(shù)據(jù)必須規(guī)則完整:一個數(shù)據(jù)庫,為了數(shù)據(jù)本身的完整,需 要設置許多規(guī)則。例如,人的年齡不能為負數(shù),如果年齡字段出現(xiàn) 了負數(shù),數(shù)據(jù)庫將發(fā)生錯誤,這就稱為數(shù)據(jù)規(guī)則完整。 (2) 滿足數(shù)據(jù)的完整性:數(shù)據(jù)完整性指的主要是限制數(shù)據(jù)庫內可能出現(xiàn) 的值,以保證數(shù)據(jù)庫的有效性。 為了保證數(shù)
35、據(jù)完整性,需要注意: (1) 實體完整性:表的主關鍵字段的任何部分不能為 MULL。 (2) 參考完整性:如果在一個表中含有與另外一個表的主關鍵字相對應 的字段,那么這個字段上的值必須取空值,或者是等于另外一個表 中的主關鍵字的值。 (3) 在設計數(shù)據(jù)庫表時必須規(guī)范化。 為了確保數(shù)據(jù)庫設計時做到規(guī)范化,定義了如下的一些基本規(guī)則,稱為范 式。 第一范式。指定記錄中的指定字段只能包含一個值。這就防止在單個 記錄中的任何重復的組別。 第二范式。任何非關鍵字字段必須取決于主關鍵字中的所有字段。解 決的辦法通常是將不規(guī)則的字段移到更合適的表。該范式還規(guī)定了兩 個或更多的表不可以有相同的主關鍵字。 第三范
36、式。非關鍵字的字段不能取決于另一個非關鍵字字段。 第四范式。這種范式禁止在主要關鍵字字段與非關鍵字字段之間的多 重的、獨立的、一對多的關系。要完成第四范式,就必須為每一個一 對多的關系創(chuàng)建各自的表。 第五范式。這種范式經(jīng)常被忽略。它主要將一個表分割成最小可能的 片斷,以消除冗余。 上述 5 種范式是設計數(shù)據(jù)庫時需要遵循的準則,一般而言,數(shù)據(jù)庫設計應 該確保能夠遵循第三范式,第四范式和第五范式相對而言用得比較少。 下面是本系統(tǒng)數(shù)據(jù)庫的具體設計。 1. 數(shù)據(jù)庫中表的結構 學籍管理系統(tǒng)中,建立的數(shù)據(jù)庫名稱為 Students.其中關于學生的個人信 息主要存放在學生信息表(uStudBaseInfo)
37、和學生附加信息表 (uStudInfoAdd)兩個表中,兩個數(shù)據(jù)庫表的主關鍵字都是“學號” 。 在學籍管理系統(tǒng)中,比較重要的數(shù)據(jù)表還包括課程信息表 (uCoursesInfo)和學生成績表(uScoreInfo)。這兩個表用來存放學校開設的 課程的一些基本信息以及學生考試的成績信息,數(shù)據(jù)庫的主關鍵字是“課程代 號” 。 另外,在系統(tǒng)中還將用到開除學生表(uExpelStudInfo)、畢業(yè)學生表 (uGradStudInfo_XXXX)等數(shù)據(jù)庫表。這些表是在程序代碼中自動創(chuàng)建生成的, 具有和學生基本信息表(uStudBaseInfo)相同的結構。 除了上述數(shù)據(jù)庫表之外,在數(shù)據(jù)庫設計中還用到了視
38、圖(View),該視圖 是對學生成績信息的一個綜合描述,創(chuàng)建成績視圖(v_ScoreInfo)所用到的 SQL 語句如下所示: SELECT TOP 100 PERCENT dbo.uScoreInfo.課程代號,dbo.uCoursesInfo.課程名稱, dbo.uScoreInfo.學號, dbo.uStudBaseInfo.姓名, dbo.uStudBaseInfo.所屬班級,dbo.uCoursesInfo.學期, dbo.uCoursesInfo.學分, dbo.uScoreInfo.成績 FROM dbo.uScoreInfo INNER JOIN dbo.uStudBaseIn
39、fo ON dbo.uScoreInfo.學號 = dbo.uStudBaseInfo.學號 INNER JOIN dbo.uCoursesInfo ON dbo.uScoreInfo.課程代號 = dbo.uCoursesInfo.課程代號 ORDER BY dbo.uScoreInfo.學號 該視圖分別從 3 個表中獲取所需要的數(shù)據(jù),形成一個完整的學生成績信息 表(視圖) ,使得用戶對學生成績信息的瀏覽和操作更加方便。 2. 表之間的實體關系 學生基本信息表與學生附加信息表應該具有同步更新的功能,即這兩個表 中的記錄是一一對應的;另外,學生的成績表與學生基本信息表以及課程信息 表也有著對應
40、關系。 3.2 應用程序的分析與設計 數(shù)據(jù)庫設計完成后,就開始進入具體的應用程序設計與分析設計階段。應 用程序的分析與設計主要包括應用程序各個功能模塊的總體規(guī)劃與分析、應用 程序界面的選擇與設計以及應用程序結構的選擇等部分。 3.2.1 應用程序的界面選擇與設計 目前常見的應用程序的界面方案有基于對話框的應用程序界面、單文檔界 面和多文檔界面。其中,如果應用程序的功能比較單一、操作比較少時,往往 選用基于對話框的應用程序界面?;趯υ捒虻膽贸绦蚪缑嬷饕攸c就是簡 潔,具有一定的交互性。 單文檔(SDI)與多文檔(MDI)應用程序常常用于一些比較復雜的情況。 單文檔與多文檔最明顯的區(qū)別就是單文
41、檔應用程序的各個界面窗體是相互獨立 的,而多文檔應用程序的各個窗體要由 MDI 父窗體控制,集中在 MDI 窗體的客 戶區(qū)之內。 盡管 Microsoft 公司在其 Word 2000 的產品中開始從 MDI 環(huán)境轉向 SDI 環(huán)境,在本系統(tǒng)中還是采用了 MDI 的界面風格。具體原因如下: 由于系統(tǒng)中涉及到的窗體比較多,如果采用 SDI 應用程序,那么這些 窗體將各自獨立地出現(xiàn)屏幕上。很難用一種方便,容易的手段來對這 些窗體進行統(tǒng)一的管理。 采用多文檔界面,應用程序的各個窗體都作為多文檔界面的一個字窗 體,這樣有便于統(tǒng)一控制這些窗體;同時,由于這些窗體將出現(xiàn)在 MDI 的客戶區(qū)范圍之內而不是在
42、屏幕之上,因此對于整個操作系統(tǒng)而 言,界面將會顯得更加整潔一些。 基于上述原因,本系統(tǒng)選用了多文檔窗體的界面風格。 選擇了窗體風格之后,就需要進行更細致的界面設計。對于標準的 Windows MDI 應用程序而言,至少需要為應用程序提供菜單以執(zhí)行相應的操 作。另外,在必要時,工具欄和狀態(tài)欄也是需要的,它們能提供一些快捷的操 作方式并且能夠顯示出當前系統(tǒng)的狀態(tài)與用戶進行交互。 目前一種比較流行的應用程序界面設計是為應用程序提供一個目錄樹,利 用目錄樹來執(zhí)行一些特定的應用程序功能。另外,目錄樹也具有導航功能。在 數(shù)據(jù)庫應用程序中,利用目錄樹來執(zhí)行對數(shù)據(jù)庫數(shù)據(jù)的操作也是一種比較好的 方法。 基于以上
43、分析,學籍管理應用程序的主界面將采用 MDI 應用程序,并且提 供了菜單,工具欄,狀態(tài)欄以及一個用于操作的目錄樹。 3.2.2 應用程序的功能模塊 圖 3-1 應用程序的功能模塊結構圖 學籍管理應用系統(tǒng)主要包括學生管理、成績管理和用戶管理 3 個大模塊, 各個模塊的具體功能如圖 3-1 所示。 上述功能模塊包含于應用程序主界面的窗體菜單(或目錄樹)和相應的子 窗體中,具體的代碼實現(xiàn)詳見源代碼。 3.2.3 應用程序的結構 當前應用得比較多的應用程序系統(tǒng)的結構與客戶機/服務器(C/S)結構和 瀏覽器/服務器結構(B/S) 。其中,C/S 結構又分為兩層結構和三層結構。 兩層結構的 C/S 結構就
44、是客戶端應用程序通過 ODBC、SQL Link、 TCP/IP 直接連接數(shù)據(jù)局服務器進行通信,并完成數(shù)據(jù)的添加、修改、刪除和 檢索等操作。 兩層的 C/S 結構存在一定的缺點: 兩層 C/S 結構中,客戶端應用程序直接連接數(shù)據(jù)庫服務器,這樣數(shù)據(jù) 庫服務器將消耗一定的資源以處理與客戶端的連接工作。如果連接工 作比較頻繁的話,數(shù)據(jù)庫服務器的效率將會不斷下降。 兩層 C/S 結構中,只有惟一的一個在線的數(shù)據(jù)庫服務器,這將使得系 統(tǒng)可靠性降低。 兩層 C/S 結構的應用程序分布比較麻煩,需要一些 DLL 的支持。另外, 每個客戶端還需要進行相應的配置以連接數(shù)據(jù)庫,例如 ODBC 的配置。 三層的 C
45、/S 結構在兩層結構的基礎上加入了新的業(yè)務邏輯層,業(yè)務邏輯層 負責數(shù)據(jù)庫與客戶端的連接工作,起到了一個中繼的作用:一方面向數(shù)據(jù)庫服 務器傳遞客戶端的請求,一方面將數(shù)據(jù)庫服務器的處理結果返回客戶端。這是 得數(shù)據(jù)庫服務旗只需要相應客戶端的請求,減輕了服務器的工作服負擔,提高 了其工作效率。 盡管兩層的 C/S 結構存在一定的缺點,然而作為一種成熟的應用程序結構 模型,兩層結構具有開發(fā)難度小,維護和使用比較方便的優(yōu)點。而且,對于學 校內部的學籍管理系統(tǒng)而言,由于系統(tǒng)本身處于校園之內,數(shù)據(jù)安全性能夠得 到一定的保障,而且對數(shù)據(jù)處理效率的要求并不太高,因此本系統(tǒng)仍然采用了 傳統(tǒng)的兩層 C/S 結構來進行
46、開發(fā)。 另外,應用程序系統(tǒng)在訪問數(shù)據(jù)庫時,采用了 ODBC 數(shù)據(jù)源+ADO 的方式。 利用 ODBC 設置,可以比較靈活的配置服務器數(shù)據(jù)庫;而采用 ADO 模型來進 行數(shù)據(jù)庫編程將使得應用程序更加靈活,并能利用 ADO 提供的強大而又完善 的數(shù)據(jù)庫功能。 第 4 章 詳細設計 4.1 系統(tǒng)登錄 程序啟動 讀取注冊表中信息 用注冊表信息連接數(shù)據(jù)庫 系統(tǒng)登錄 成功 配置 ODBC 重寫注冊表 用注冊表信息 連接數(shù)據(jù)庫 啟動系統(tǒng) 成功 成功 成功 成功 失敗 失敗 失敗 圖 4-1 程序啟動,用戶登錄數(shù)據(jù)庫流程圖 應用程序要求使用者進行登錄,以便確認使用者的身份以及使用權限。在 數(shù)據(jù)庫應用程序中,用
47、戶身份及其對系統(tǒng)的使用權限尤其顯得重要。在本系統(tǒng) 中,用到的系統(tǒng)登錄技術包括數(shù)據(jù)庫登錄和應用程序登錄。其中數(shù)據(jù)庫登錄過 程如圖 4-1 所示。 4.1.1 數(shù)據(jù)庫登錄的設計 在圖 4-1 中顯示的是本系統(tǒng)中登錄數(shù)據(jù)庫的過程。除了第一次運行系統(tǒng)時需 要配置連接數(shù)據(jù)庫外沒有必要每次運行應用程序時都去配置一次數(shù)據(jù)庫登錄信 息,因此程序作如下設計: (1) 通過對注冊表的讀寫來決定是否要顯示配置數(shù)據(jù)庫的窗口。 (2) 如果應用程序是第一次運行,那么讀取注冊表的信息時就讀取不到 信息,從而就直接在這次運行的開始階段出現(xiàn)連接數(shù)據(jù)庫的界面。在該窗體上 配置好數(shù)據(jù)庫的連接信息后將改配置信息寫入注冊表,然后轉入
48、應用程序的登 陸窗口。 (3) 如果應用程序不是第一次運行,則通過讀取注冊表中的相關數(shù)據(jù)庫 配置信息來登錄數(shù)據(jù)庫。連接數(shù)據(jù)庫正確的話,應用程序將執(zhí)行到系統(tǒng)的登錄 窗口。 (4) 如果讀取到的注冊表信息不能正確的連接到數(shù)據(jù)庫,說明數(shù)據(jù)庫的 設置出現(xiàn)了變化,需要再次回到數(shù)據(jù)庫配置窗口進行設置,然后重新連接數(shù)據(jù) 庫。 了解了登錄數(shù)據(jù)庫的內部工作流程之后,下面就來實現(xiàn)該功能。 A. 啟動應用程序的設計 在本系統(tǒng)中,應用程序是從 Sub Main()過程來啟動的。Sub Main()過程位 于標準模塊 StarMoudule 代碼之中。該標準模塊中定義了要在整個系統(tǒng)中都要 用到的程序變量和一些供用函數(shù)代
49、碼。其中,用于檢測注冊表和查看數(shù)據(jù)庫配 置信息的代碼就位于 Sub Main()過程中。 為了實現(xiàn)對注冊表的讀寫,需要對 Windows API 函數(shù)進行封裝。在該系 統(tǒng)中,操作注冊表的 API 函數(shù)在標準模塊 RegMod 中已經(jīng)聲名并且進行了封裝。 實現(xiàn)數(shù)據(jù)庫登錄的模塊 StarMoudle 代碼除了實現(xiàn)登錄系統(tǒng)前的檢測外, 還定義了一些未來程序中常用的函數(shù)。 在項目開發(fā)中,需要將應用程序的必要信息永久的存儲與磁盤。存放程序 信息的方式一般包括寫入.ini 文件和寫入注冊表兩種方式。Visual Basic 有幾 個關于注冊表的相關寒暑,然而不夠靈活。因此,在本系統(tǒng)開發(fā)中,采用了一 些資料
50、中關于注冊表的函數(shù),能夠靈活的完成所需要的功能,包括打開注冊表 鍵值、創(chuàng)建注冊表鍵并設置鍵值、讀取鍵值、列舉注冊表中鍵值等操作。 詳細代碼見程序清單。 B. 數(shù)據(jù)庫設置窗體的設計 在有關程序啟動的代碼設計中,主要涉及到兩個窗體,一個是數(shù)據(jù)庫配置 窗體,一個就是系統(tǒng)登錄窗體。數(shù)據(jù)庫配置窗體的界面如圖 4-2 所示。 圖 4-2 用戶登錄數(shù)據(jù)庫,注冊數(shù)據(jù)庫配置信息 數(shù)據(jù)庫配置窗體上,除了 3 個標簽控件之外,其他幾個控件都是自己自定 義的控件。這些控件中加入自己所需要的常用特性,然后在后續(xù)的開發(fā)中可以 直接使用這個自定義控件。這將使得程序開發(fā)更加高效,也更加靈活。 創(chuàng)建控件的方法分為:手工創(chuàng)建控件
51、和利用 ActiveX Control Interface Wizard 來創(chuàng)建控件。開發(fā)本系統(tǒng)采用的是利用 ActiveX Control Interface Wizard 來生成控件代碼的,因為,手工書寫代碼的效率比較低。 在自定義的組合框中枚舉出 ODBC 別名,用戶可以直接輸入,也可以從列 表中直接選擇。該自定義控件所具備的自動搜索功能將能夠簡化用戶的輸入。 “確定”按鈕的主要功能是用來登錄數(shù)據(jù)庫,同時把登錄數(shù)據(jù)庫成功的數(shù) 據(jù)庫配置信息寫入到注冊表,已備應用程序下次登錄數(shù)據(jù)庫用。 如果輸入信息正確登錄到數(shù)據(jù)庫上,則可以直接退出該窗體。否則,提示 數(shù)據(jù)鏈接失敗之后,將不能退出窗體。除非按
52、“取消”按鈕放棄登錄數(shù)據(jù)庫。 “系統(tǒng)數(shù)據(jù)源”按鈕的主要功能是在應用程序的界面中直接調出配置 ODBC 數(shù)據(jù)源的窗體,而免去用戶回到 Windows 的設置部分重新配置數(shù)據(jù)源 的麻煩。如果數(shù)據(jù)庫連接不成功,一般需要重新檢查數(shù)據(jù)庫的設置情況,如果 設置有變動,則需要利用該按鈕對 ODBC 數(shù)據(jù)源進行重新配置,然后再利用“確 定”按鈕將新的登錄信息寫回到注冊表中。 “取消”按鈕的功能比較簡單,只是為了退出窗體用以放棄登錄數(shù)據(jù)庫。 完成數(shù)據(jù)庫登錄之后,數(shù)據(jù)庫的配置信息將寫入注冊表。 4.1.2 系統(tǒng)登錄的設計 完成數(shù)據(jù)庫的登錄以后,就需要面對應用程序的系統(tǒng)登錄窗體。應用程序 的登錄過程如圖 4-3 所
53、示。 系統(tǒng)登錄 是否是正確的用戶? 是否是系統(tǒng)級別用戶? 系統(tǒng)用戶界面 登錄錯誤提示 普通用戶界面 是 是 否 否 圖 4-3 系統(tǒng)登錄的數(shù)據(jù)流程圖 從圖 4-3 中可以看出,系統(tǒng)登錄的窗口需要進行兩重檢測。 首先判斷輸入的用戶名和密碼是否合法,即判斷用戶的合法身份。如果用 戶輸入錯誤,程序將給出輸入錯誤的提示。 在用戶通過身份驗證后,系統(tǒng)將在后臺執(zhí)行另外一個檢測過程,判斷該用 戶的級別是否為“系統(tǒng)級” 。這個判斷主要是為了給用戶分配相應的對應用程序 的操作權限。如果該用戶是系統(tǒng)級別的用戶,用戶將能夠獲得對該應用程序的 完整的操作權限,包括對學生信息的管理和查詢以及對學生成績的錄入和查詢; 如
54、果該用戶只是普通級別的用戶,該用戶將只能獲得查詢學生成績的功能,而 不能對數(shù)據(jù)庫系統(tǒng)有其他更多的操作權限范圍。 在系統(tǒng)登錄中,對用戶級別的判斷以及根據(jù)級別執(zhí)行相對應的動作是和最 后用戶的登錄界面相關聯(lián)的。因此,該部分的操作將在應用程序的主界面窗體 的 Load 事件(或是 Initialize 事件)中完成。 有了具體的思路,結合工作流程圖即可進行實際的系統(tǒng)登錄界面設計,并 編寫相應的程序代碼。 系統(tǒng)登錄界面非常簡單,包括兩個 Lable 控件、兩個字定義的文本框控件 和兩個字定義的位圖按鈕。系統(tǒng)登錄的界面如圖 4-4 所示。 圖 4-4 系統(tǒng)登錄窗體外觀 系統(tǒng)登錄窗體上的按鈕的功能如下: “
55、確定”按鈕執(zhí)行從數(shù)據(jù)庫的用戶表中返回一個記錄集的功能,并且取得 該登錄用戶的用戶權限。 在編寫這段代碼的過程中用到了 frmFlash 窗體,這是一個快閃窗體。如 果一個窗體上面所放置的控件、位圖等資源比較多時,該窗體在載入時就需要 較長的時間。如果一個應用程序在啟動是消耗時間比較長,用戶在等待時或許 就會有不耐煩的感覺。為了讓用戶能夠在系統(tǒng)啟動的這段時間里能夠了解到應 用程序的一些信息,需要使用到快閃窗體??扉W窗體就是在該應用程序初始化 的過程中,在用戶的系統(tǒng)平臺上率先顯示出來的一個窗體。該窗體有獨特的窗 體風格,一般用來向用戶顯示一些有關程序的信息、公司的信息或是其他一些 提示性的文字和畫
56、面。 快閃窗體在許多應用程序中都有應用,例如 Visual Basic 在啟動時就有一 個快閃窗體??扉W窗體一般要在應用程序加載完畢顯示出來之后,在關閉掉。 有的快閃窗體上面放置了 Timer 控件,用來控制快閃窗體的關閉。在本系統(tǒng)中, 則是顯示完主窗體后,通過其他程序代碼塊中的相關代碼來關閉快閃窗體。 在制作快閃窗體時,因為它的窗口風格與普通窗體的風格不同,所以需要 為其窗體外觀進行一些特別的設置,具體做法如下:設置快閃窗體的 BorderStyle 屬性為 0-None,設置 MaxButton 和 MinButton 為 False。這 樣就完成了快閃窗體的制作。 可以為窗體的 Clic
57、k 事件添加代碼,用來關閉窗體。一般用不上,因為快 閃窗體的顯示和關閉一般由其他程序代碼控制。 在程序設計過程中,利用了兩個集合對象來存放要顯示于菜單上的標題文 本字符串。其中,一個集合 colScore 用來存放“成績管理”菜單中的子菜單 項,另一個集合 colInfo 用來存放“學生信息管理”菜單中的子菜單項。 判斷出登錄用戶的用戶級別為“系統(tǒng)級別”之后,則所有菜單項設置為 Visible=True,使其可見;然后對兩個集合分別進行循環(huán)遍歷,將從這兩個集 合中搜索到的字符串添加到數(shù)形控件上去,從而形成系統(tǒng)級別的完整的操作界 面。 在普通級別的用戶界面中,將只有“成績查詢”功能菜單是可以使用
58、的, 其他的“成績錄入” 、 “學生信息管理”以及“學生信息查詢”等菜單均為不可 見的。這樣就限制了普通用戶對數(shù)據(jù)庫的操作。 對應地,此時的操作目錄樹也只有“成績查詢”一個子節(jié)點。具體的實現(xiàn) 方法依然是使用循環(huán)遍歷集合,只是在該段代碼中將只遍歷 colScore 集合。 在 For 循環(huán)中設置好遍歷的起點和終點,將使得只有特定的一條項目被添加到 樹形控件中去。 這種方法只是取得了一定程度上的靈活性:通過將幾個集合變量定義為模 塊級變量,菜單標題字符串定義為常量字符串,從而使得該程序具備一定的靈 活性。如果想要取得更大的靈活性,可能需要借助菜單數(shù)組甚至是有關 INI 文 件的技巧。 具體的各部分
59、的代碼實現(xiàn)見程序清單。 4.2 學籍管理系統(tǒng)主界面設計 應用程序的主界面是整個應用程序中比較重要的一個組成部分。一般而言, 程序界面的設計應該簡單、整潔。另外,對于 Windows 應用程序的界面最好 符合 Windows 標準應用程序的一般操作規(guī)則,而不應該追求一些外表的華麗 和與眾不同,使得用戶在操作時感到不適應。 一個標準的 Windows 應用程序界面一般包括菜單、工具欄和狀態(tài)欄等部 分。在學籍管理系統(tǒng)的界面設計中,也遵循這一風格。應用程序主界面如圖 4-5 所示。 圖 4-5 應用程序的主界面 4.2.1 應用程序主界面的窗體設計 在應用程序中主要應用了菜單、工具欄、目錄樹和狀態(tài)欄來
60、構成系統(tǒng)的主 界面。 1. 菜單的設計 菜單是 Windows 應用程序中的重要組成部分,各個菜單項的設計功能都 按照標準界面菜單的功能進行設計。 MDI 應用程序中,父窗體可以有自己的菜單,子窗體也可以有屬于自己的 菜單。這些菜單的創(chuàng)建都可以利用 Menu Editor 來進行創(chuàng)建。 然而,當一個 MDI 應用程序的父窗體和子窗體都擁有各自的菜單時,將會 出現(xiàn)菜單替代的問題,也就是說,當擁有自身菜單的子菜單為活動窗體時,該 子窗體的菜單將不顯示在子窗體的本身,而是取代了父窗體原來的菜單,出現(xiàn) 在父窗體菜單原來的位置。這樣,就不能在子窗體運行時使 用父窗體的菜單功 能了。當該子窗體退出或是不再
61、處于活動狀態(tài)時,MDI 應用程序的父窗體將不 會自動重新顯示父窗體菜單。 解決這一問題的兩個方案: 將所有不要的父窗體菜單功能都復制到每個子窗體菜單中去。這種方 法雖然可行,然而,如果帶有菜單的子窗體數(shù)量比較多的話,程序將 會顯得臃腫而且難以維護。 在父窗體的菜單中包含所有子菜單所必需的菜單功能??梢栽谶\行時 先讓這些子菜單功能不可見,然后當運行子菜單時,可以在子菜單對 應的 GetFocus 和 LostFocus 事件中控制這些子菜單的每一項,可以 使用 MDI 父窗體的 ActiveForm 屬性。該屬性用來獲取 MDI 應用程序 中當前的活動子窗體,從而對其進行窗體的任意操作,而不需要
62、該窗 體的名稱。 以上兩種方案中,第二種方案比較好,因為將這些菜單合并成一個菜單進 行管理,在維護上比較方便,更便于操作。最好的做法是根本不需要在子窗體 中放置菜單,可以用按鈕或其他方式(例如,右鍵的彈出菜單就可以實現(xiàn))來 為子菜單提供具有相同功能的解決方案。 程序中包括兩個 ImageList 控件它們分別用來為工具欄和 TreeView 控件 提供圖片。另外,應用程序還包含了一個 Timer 控件。通過 Timer 控件可以 對狀態(tài)欄進行定時更新。 2. ImageList 控件和 Timer 控件 ImageList 控件和 Timer 控件在應用程序中有著比較重要的用途。在本系 統(tǒng)中,
63、只為工具欄提供了一個 ImageList 關聯(lián)。 如果想要更復雜的工具欄效果,可以將工具欄設置為與 3 個 ImageList 控 件相關聯(lián)。這樣就可以分別對工具欄按鈕的正常狀態(tài)、不被激活的狀態(tài)和復選 樣式或下拉樣式的按鈕在激活的狀態(tài)分別提供圖片。 3. 工具欄設計 工具欄提供了便捷的操作方式來完成應用程序常用菜單的操作。在現(xiàn)在的 Windows 應用程序中,工具欄已經(jīng)成為非常重要的一個組成部分。 在本系統(tǒng)中,工具欄上放置了一些用來操縱界面外觀的常用按鈕。其他應 用程序功能菜單并沒有放置到工具欄中。 工具欄的各個按鈕還需要設置一些其他的一些屬性,例如,為每個工具欄 按鈕的 ToolTipTex
64、t 設置相應的文本;為每個工具欄提供相關聯(lián)的圖片索引。 設置這些屬性需要通過工具欄的屬性頁來進行。將所有的非 tbrSeperate 風格 的按鈕都按順序設置好對應的圖像索引,并為每個按鈕添加上提示文本。這樣 就完成了對工具欄的設置。 4. TreeView 控件和狀態(tài)欄控件 現(xiàn)在的應用程序界面常利用目錄樹來作為應用程序的導航欄;也可以用目 錄樹來完成對應的一些菜單的操作功能。在本系統(tǒng)中提供了使用目錄樹替代某 些菜單操作的功能,用戶可以根據(jù)習慣選擇是利用菜單還是目錄樹來完成自己 想要的操作。 狀態(tài)欄通常用來顯示當前界面的狀態(tài)信息。其中,樹形控件的外觀以及與 ImageList 控件的關聯(lián)都將在
65、代碼中完成,這些代碼分別在 MDI 窗體的 Load 事件和 Initialize 事件中。 為狀態(tài)欄控件添加 4 個控制面板,分別用作 4 種用途:放置當前子窗體的 窗口信息、備用面板、顯示當前日期的面板、顯示當前時間的面板。這些屬性 需要在狀態(tài)欄的屬性頁中完成。 最后,在設計 MDI 窗體時,要為放置 TreeView 控件增加一個容器,既 PictureBox 控件,設置該控件的名稱為 picTreeView。在 MDI 窗體上,只能 放置 PictureBox 、ToolBar 和 StatusBar 等控件。因此可以利用 PictureBox 控件作為容器來放置 TreeView 控
66、件。在該容器上在放置一個 Lable 控件,用來為該目錄樹顯示一個名稱;再在 PictureBox 控件的右上角放 置一個按鈕,名稱為 cmdCancelTree,用來提供關閉目錄樹的操作。要想實 現(xiàn)關閉目錄樹的功能,可以通過對 PictureBox 控件的 Visibal 屬性進行操作來 實現(xiàn)。為了界面的整潔,設置 TreeView 控件和 PictureBox 控件的寬度基本 上相同,然后調整狀態(tài)欄控件中的第一個面板,使其寬度與 PictureBox 控件 寬度一致。 4.2.2. 應用程序界面的代碼實現(xiàn) 在窗體的公共聲名部分,定義了幾個字符串常量,這些常量用來記錄主要 菜單中的子菜單標題字符串;同時定義了 3 個集合對象,分別用來存放菜單標 題字符串,給出了對這 3 個集合的初始化的子過程代碼;為 MDI 窗體定義了一 個只讀的公用屬性 ChildWindowsCount 以及該屬性的屬性變量 mintChildWinCount,這個只讀屬性用來記錄在程序運行過程中,MDI 應用
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。