【正文】
用戶名,則給出提示,進(jìn)入系統(tǒng),若沒(méi)有此用戶名,則給出提示,返回用戶登錄界面。 系統(tǒng)的快捷性系統(tǒng)必須快速準(zhǔn)確的對(duì)所做的操作做出反映,不能出現(xiàn)長(zhǎng)時(shí)間的延遲和錯(cuò)誤或者莫名其妙的死機(jī)。 管理上的可行性因?yàn)橄到y(tǒng)主要應(yīng)用于學(xué)院內(nèi)部,而不具備網(wǎng)絡(luò)查找功能,因此在實(shí)現(xiàn)時(shí)可以做成單機(jī)版,對(duì)管理員賦予數(shù)據(jù)錄入、查詢、修改以及對(duì)數(shù)據(jù)庫(kù)的清零等功能。 系統(tǒng)的可行性研究 技術(shù)上的可行性由于 VB 語(yǔ)言簡(jiǎn)單、易學(xué)的優(yōu)點(diǎn),又增強(qiáng)了可視化、數(shù)據(jù)庫(kù)及 Inter 編程功能,很容易就可以進(jìn)行系統(tǒng)開發(fā)。它是一個(gè)可伸縮、高效能的數(shù)據(jù)庫(kù)管理系統(tǒng),具備內(nèi)置的復(fù)制能力、Inter 集成、開放系統(tǒng)體系結(jié)構(gòu)以及其強(qiáng)大的基于 GUI 的數(shù)據(jù)庫(kù)管理工具。顯然使用非常復(fù)雜的軟件進(jìn)行開發(fā)是不太現(xiàn)實(shí)的。在 VB 中,沒(méi)有傳統(tǒng)意義上的主程序,程序執(zhí)行通過(guò)事件來(lái)驅(qū)動(dòng),即只有在事件發(fā)生時(shí),程序才會(huì)執(zhí)行,若沒(méi)有發(fā)生任何事件,則處于停滯等待狀態(tài)。面向?qū)ο缶幊蹋∣OP:Object Oriented Programming)則把數(shù)據(jù)和處理數(shù)據(jù)的代碼封裝到一個(gè)類中,類的實(shí)例就是對(duì)象。 開發(fā)工具的選用 Visual Basic的使用Visual Basic 是 Microsoft 公司推出的一個(gè)可視化的面向?qū)ο蟮膽?yīng)用程序開發(fā)工具。操作人員只需輸入一些簡(jiǎn)單的漢字、數(shù)字就可以實(shí)現(xiàn)工作要求的操作。信息社會(huì)的高科技,商品經(jīng)濟(jì)化的高效益,使計(jì)算機(jī)的應(yīng)用已普及到經(jīng)濟(jì)和社會(huì)生活的各個(gè)領(lǐng)域。在信息社會(huì)中,信息的獲取、處理、交流和決策都需要大量高質(zhì)量的處理工具。經(jīng)過(guò)大學(xué)四年學(xué)習(xí),開發(fā)軟件有了一定的基礎(chǔ),為使開發(fā)軟件的經(jīng)驗(yàn)進(jìn)一步提高和適應(yīng)社會(huì)發(fā)展,與同組軟件開發(fā)人員共同努力學(xué)習(xí)、提高軟件開發(fā)的經(jīng)驗(yàn)。所以學(xué)校在學(xué)籍管理上很需要一個(gè)自動(dòng)化,智能化的計(jì)算機(jī)學(xué)籍管理系統(tǒng)。而由于信息管理是建立在龐大的數(shù)據(jù)庫(kù)中的,如何建立學(xué)生信息庫(kù)是進(jìn)行自動(dòng)化學(xué)籍管理的一個(gè)重要問(wèn)題。而對(duì)于后者則要求應(yīng)用程序功能完備,方便使用等特點(diǎn)。因此,開發(fā)這樣一套學(xué)籍管理軟件成為很有必要的事情。但一直以來(lái)人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少的困難。AbstractStudent status 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 integrity, the library that the safeness of data like. But request the latter very much to apply the procedure function plete, easy usage etc. characteristics.This system pletes primarily to student39。查詢功能也是系統(tǒng)的核心之一,在系統(tǒng)中即有單條件查詢和多條件查詢,也有精確查詢和模糊查詢,系統(tǒng)不僅有靜態(tài)的條件查詢,也有動(dòng)態(tài)生成的條件查詢,其目的都是為了方便用戶使用。而對(duì)于后者則要求應(yīng)用程序功能完備,方便使用等特點(diǎn)。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。系統(tǒng)的核心是數(shù)據(jù)庫(kù)中各個(gè)表的聯(lián)系,每一個(gè)表的修改都將連動(dòng)的影響其它的表,當(dāng)完成對(duì)數(shù)據(jù)的操作時(shí)系統(tǒng)會(huì)自動(dòng)地完成數(shù)據(jù)庫(kù)的修改。關(guān)鍵字:控件、窗體、數(shù)據(jù)庫(kù)、MIS、SQL Server 2022。學(xué)籍管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都至關(guān)重要,所以學(xué)籍管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生檔案管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。對(duì)于前者要求數(shù)據(jù)的一致性、完整性和安全性。由于學(xué)校和在校學(xué)生是一對(duì)多的關(guān)系,因此,學(xué)籍的管理是一個(gè)工作量大而又繁雜的工作。數(shù)據(jù)庫(kù)能很方便的進(jìn)行數(shù)據(jù)的統(tǒng)計(jì)和錄入工作,這對(duì)有大量數(shù)據(jù)的編輯有重要的作用。如何有效的管理這些學(xué)生信息,幫助學(xué)校和老師掌握學(xué)生的情況,這就是學(xué)籍管理系統(tǒng)需要完成的功能及開發(fā)目的;另外,為使本軟件的功能完善、功能更強(qiáng)大,還包括與學(xué)生信息有關(guān)的管理功能,例如成績(jī)管理等功能。學(xué)生注冊(cè)獎(jiǎng)懲信息管理學(xué)籍信息管理 基本信息管理 課程信息管理成績(jī)信息管理基本信息輸入課程信息輸入成績(jī)信息輸入入獎(jiǎng)懲信息輸入學(xué)籍信息輸入 選題背景及意義隨著現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展、計(jì)算機(jī)與全球互連網(wǎng)絡(luò) Inter 相連接,使今天的社會(huì)進(jìn)入了以計(jì)算機(jī)為核心的社會(huì)。如果開發(fā)一套學(xué)籍管理系統(tǒng)軟件將具有十分重要的意義,可以減少人力資源在這方面的投入,而更多的投入教學(xué)或其它工作中。使用者可以了解本系統(tǒng)的基本工作原理。由于該系統(tǒng)主要應(yīng)用在學(xué)院內(nèi)部使用,而不在網(wǎng)絡(luò)上公開,因此在設(shè)計(jì)開發(fā)時(shí)可以做成單機(jī)版。在面向過(guò)程的編程方法中,代碼和數(shù)據(jù)是分離的,由此帶來(lái)了很多缺陷,其中最重要的就是程序的可維護(hù)性差。VB 徹底解決了這種編程機(jī)制。本次畢業(yè)設(shè)計(jì)需要用一種新軟件來(lái)開發(fā)學(xué)習(xí),但是接觸一門新的軟件往往上手容易,使用起來(lái)很困難,而且這次畢業(yè)設(shè)計(jì)時(shí)間短,任務(wù)重。SQL Server 提供了一系列方法將數(shù)據(jù)庫(kù)填充到 Web 服務(wù)器,同時(shí)提供了對(duì)數(shù)據(jù)的快捷訪問(wèn)。SQL Server 的主要功能:? 支持客戶機(jī)/服務(wù)器模型;? 操作系統(tǒng)兼容性;? 多平臺(tái)支持;? 多協(xié)議兼容性;? 數(shù)據(jù)倉(cāng)庫(kù);? 數(shù)據(jù)復(fù)制。該軟件簡(jiǎn)單易懂,應(yīng)用廣泛,比較適合開發(fā)數(shù)據(jù)庫(kù)軟件使用,而且建立的數(shù)據(jù)庫(kù)較為安全。對(duì)光纖信息數(shù)據(jù)庫(kù)只有 管理員才能進(jìn)行錄入,修改和刪除。第 2 章 概要設(shè)計(jì) 系統(tǒng)設(shè)計(jì)思路分析 界面用 VB 設(shè)計(jì)基礎(chǔ)界面,在初步設(shè)計(jì)時(shí),可以只對(duì)窗體進(jìn)行設(shè)計(jì),而不涉及程序的內(nèi)容,待窗體設(shè)計(jì)完畢后,再進(jìn)行程序編程,這也是 VB 的優(yōu)點(diǎn)之一。 數(shù)據(jù)庫(kù)分析在系統(tǒng)實(shí)現(xiàn)時(shí),可以建立一個(gè)數(shù)據(jù)庫(kù),但是建立多個(gè)表。登錄界面,要求管理員輸入帳戶密碼,并根據(jù)密碼是否正確決定進(jìn)入主界面。數(shù)據(jù)導(dǎo)入,管理員可以把 Excel 表中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中。幫助信息,說(shuō)明作者,版本信息。合理的數(shù)據(jù)庫(kù)設(shè)計(jì)和建設(shè)是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)成功的關(guān)鍵。關(guān)系數(shù)據(jù)庫(kù)提供了結(jié)構(gòu)化查詢語(yǔ)言(SQL)的標(biāo)準(zhǔn)接口。數(shù)據(jù)庫(kù)中的每一列稱為一個(gè)字段。? 索引:索引是根據(jù)數(shù)據(jù)庫(kù)表中記錄的關(guān)鍵字值對(duì)數(shù)據(jù)庫(kù)表中的記錄進(jìn)行分類。? 觸發(fā)器:類似于存儲(chǔ)過(guò)程,但觸發(fā)器的執(zhí)行是自動(dòng)的。好的數(shù)據(jù)庫(kù)設(shè)計(jì)能夠大大簡(jiǎn)化開發(fā)的難度,提高開發(fā)工作的效率。 為了保證數(shù)據(jù)完整性,需要注意:(1) 實(shí)體完整性:表的主關(guān)鍵字段的任何部分不能為 MULL。? 第一范式。任何非關(guān)鍵字字段必須取決于主關(guān)鍵字中的所有字段。非關(guān)鍵字的字段不能取決于另一個(gè)非關(guān)鍵字字段。? 第五范式。下面是本系統(tǒng)數(shù)據(jù)庫(kù)的具體設(shè)計(jì)。另外,在系統(tǒng)中還將用到開除學(xué)生表(uExpelStudInfo)、畢業(yè)學(xué)生表(uGradStudInfo_XXXX)等數(shù)據(jù)庫(kù)表。 應(yīng)用程序的分析與設(shè)計(jì) 數(shù)據(jù)庫(kù)設(shè)計(jì)完成后,就開始進(jìn)入具體的應(yīng)用程序設(shè)計(jì)與分析設(shè)計(jì)階段。基于對(duì)話框的應(yīng)用程序界面主要特點(diǎn)就是簡(jiǎn)潔,具有一定的交互性。具體原因如下:? 由于系統(tǒng)中涉及到的窗體比較多,如果采用 SDI 應(yīng)用程序,那么這些窗體將各自獨(dú)立地出現(xiàn)屏幕上。選擇了窗體風(fēng)格之后,就需要進(jìn)行更細(xì)致的界面設(shè)計(jì)。另外,目錄樹也具有導(dǎo)航功能。上述功能模塊包含于應(yīng)用程序主界面的窗體菜單(或目錄樹)和相應(yīng)的子窗體中,具體的代碼實(shí)現(xiàn)詳見(jiàn)源代碼。 兩層的 C/S 結(jié)構(gòu)存在一定的缺點(diǎn):? 兩層 C/S 結(jié)構(gòu)中,客戶端應(yīng)用程序直接連接數(shù)據(jù)庫(kù)服務(wù)器,這樣數(shù)據(jù)庫(kù)服務(wù)器將消耗一定的資源以處理與客戶端的連接工作。另外,每個(gè)客戶端還需要進(jìn)行相應(yīng)的配置以連接數(shù)據(jù)庫(kù),例如 ODBC 的配置。而且,對(duì)于學(xué)校內(nèi)部的學(xué)籍管理系統(tǒng)而言,由于系統(tǒng)本身處于校園之內(nèi),數(shù)據(jù)安全性能夠得到一定的保障,而且對(duì)數(shù)據(jù)處理效率的要求并不太高,因此本系統(tǒng)仍然采用了傳統(tǒng)的兩層 C/S 結(jié)構(gòu)來(lái)進(jìn)行開發(fā)。在數(shù)據(jù)庫(kù)應(yīng)用程序中,用戶身份及其對(duì)系統(tǒng)的使用權(quán)限尤其顯得重要。除了第一次運(yùn)行系統(tǒng)時(shí)需要配置連接數(shù)據(jù)庫(kù)外沒(méi)有必要每次運(yùn)行應(yīng)用程序時(shí)都去配置一次數(shù)據(jù)庫(kù)登錄信息,因此程序作如下設(shè)計(jì): (1) 通過(guò)對(duì)注冊(cè)表的讀寫來(lái)決定是否要顯示配置數(shù)據(jù)庫(kù)的窗口。連接數(shù)據(jù)庫(kù)正確的話,應(yīng)用程序?qū)?zhí)行到系統(tǒng)的登錄窗口。Sub Main()過(guò)程位于標(biāo)準(zhǔn)模塊 StarMoudule 代碼之中。在該系統(tǒng)中,操作注冊(cè)表的 API 函數(shù)在標(biāo)準(zhǔn)模塊 RegMod 中已經(jīng)聲名并且進(jìn)行了封裝。Visual Basic 有幾個(gè)關(guān)于注冊(cè)表的相關(guān)寒暑,然而不夠靈活。數(shù)據(jù)庫(kù)配置窗體的界面如圖 42 所示。創(chuàng)建控件的方法分為:手工創(chuàng)建控件和利用 ActiveX Control Interface Wizard 來(lái)創(chuàng)建控件?!按_定”按鈕的主要功能是用來(lái)登錄數(shù)據(jù)庫(kù),同時(shí)把登錄數(shù)據(jù)庫(kù)成功的數(shù)據(jù)庫(kù)配置信息寫入到注冊(cè)表,已備應(yīng)用程序下次登錄數(shù)據(jù)庫(kù)用。“系統(tǒng)數(shù)據(jù)源”按鈕的主要功能是在應(yīng)用程序的界面中直接調(diào)出配置ODBC 數(shù)據(jù)源的窗體,而免去用戶回到 Windows 的設(shè)置部分重新配置數(shù)據(jù)源的麻煩。 系統(tǒng)登錄的設(shè)計(jì) 完成數(shù)據(jù)庫(kù)的登錄以后,就需要面對(duì)應(yīng)用程序的系統(tǒng)登錄窗體。如果用戶輸入錯(cuò)誤,程序?qū)⒔o出輸入錯(cuò)誤的提示。 在系統(tǒng)登錄中,對(duì)用戶級(jí)別的判斷以及根據(jù)級(jí)別執(zhí)行相對(duì)應(yīng)的動(dòng)作是和最后用戶的登錄界面相關(guān)聯(lián)的。系統(tǒng)登錄的界面如圖 44 所示。如果一個(gè)應(yīng)用程序在啟動(dòng)是消耗時(shí)間比較長(zhǎng),用戶在等待時(shí)或許就會(huì)有不耐煩的感覺(jué)。 快閃窗體在許多應(yīng)用程序中都有應(yīng)用,例如 Visual Basic 在啟動(dòng)時(shí)就有一個(gè)快閃窗體。 在制作快閃窗體時(shí),因?yàn)樗拇翱陲L(fēng)格與普通窗體的風(fēng)格不同,所以需要為其窗體外觀進(jìn)行一些特別的設(shè)置,具體做法如下:設(shè)置快閃窗體的BorderStyle 屬性為 0None,設(shè)置 MaxButton 和 MinButton 為 False。 在程序設(shè)計(jì)過(guò)程中,利用了兩個(gè)集合對(duì)象來(lái)存放要顯示于菜單上的標(biāo)題文本字符串。這樣就限制了普通用戶對(duì)數(shù)據(jù)庫(kù)的操作。 這種方法只是取得了一定程度上的靈活性:通過(guò)將幾個(gè)集合變量定義為模塊級(jí)變量,菜單標(biāo)題字符串定義為常量字符串,從而使得該程序具備一定的靈活性。一般而言,程序界面的設(shè)計(jì)應(yīng)該簡(jiǎn)單、整潔。應(yīng)用程序主界面如圖 45所示。這些菜單的創(chuàng)建都可以利用 Menu Editor 來(lái)進(jìn)行創(chuàng)建。 解決這一問(wèn)題的兩個(gè)方案:? 將所有不要的父窗體菜單功能都復(fù)制到每個(gè)子窗體菜單中去。該屬性用來(lái)獲取 MDI 應(yīng)用程序中當(dāng)前的活動(dòng)子窗體,從而對(duì)其進(jìn)行窗體的任意操作,而不需要該窗體的名稱。另外,應(yīng)用程序還包含了一個(gè) Timer 控件。如果想要更復(fù)雜的工具欄效果,可以將工具欄設(shè)置為與 3 個(gè) ImageList 控件相關(guān)聯(lián)。在本系統(tǒng)中,工具欄上放置了一些用來(lái)操縱界面外觀的常用按鈕。將所有的非 tbrSeperate 風(fēng)格的按鈕都按順序設(shè)置好對(duì)應(yīng)的圖像索引,并為每個(gè)按鈕添加上提示文本。狀態(tài)欄通常用來(lái)顯示當(dāng)前界面的狀態(tài)信息。最后,在設(shè)計(jì) MDI 窗體時(shí),要為放置 TreeView 控件增加一個(gè)容器,既PictureBox 控件,設(shè)置該控件的名稱為 picTreeView。要想實(shí)現(xiàn)關(guān)閉目錄樹的功能,可以通過(guò)對(duì) PictureBox 控件的 Visibal 屬性進(jìn)行操作來(lái)實(shí)現(xiàn)。設(shè)定目錄樹與菜單對(duì)應(yīng)的操作,這個(gè)地方利用了索引來(lái)查找目錄樹中與菜單中對(duì)應(yīng)的操作。該函數(shù)在應(yīng)用程序的標(biāo)準(zhǔn)模塊 MPaintMDIBackground 中定義。其中包括了對(duì)背景圖片的處理。在 MDI 的卸載事件中,MDI 窗體需要卸除所有不再使用的資源,釋放占用的系統(tǒng)資源。MDI 窗體的菜單事件中, “學(xué)生查詢”子菜單的代碼實(shí)現(xiàn)過(guò)程中,需要先調(diào)用 ActiveX DLL 中的一個(gè)窗體,執(zhí)行完查詢后再顯示學(xué)生查詢窗體。如果返回的數(shù)據(jù)集非空,那么就通過(guò)類將該數(shù)據(jù)集傳遞給應(yīng)用程序的窗口 frmQueryResult 所使用,用來(lái)顯示查詢結(jié)果。完全可以通過(guò)對(duì) MDI 窗體的 Arrange 方法來(lái)完成對(duì)子窗體的排列,語(yǔ)法格式為: ParaName 參數(shù)ParaName 的不同取值決定了窗體的排列方式。(3) 關(guān)于“關(guān)閉所有子窗體”功能的實(shí)現(xiàn)。 循環(huán)只需要判斷是否在 ActiveForm 即可。通過(guò)調(diào)用按鈕事件,關(guān)閉目錄樹 cmdCancelTree_Click 39。 在單擊事件前該風(fēng)格按鈕的狀態(tài)值在單擊該按鈕之后馬上發(fā)生了改變,此時(shí),如果要根據(jù)當(dāng)前按鈕的狀態(tài)對(duì)要執(zhí)行的代碼進(jìn)行分支選擇時(shí),If 語(yǔ)句需要認(rèn)真的編寫。Key 屬性來(lái)對(duì)每個(gè)按鈕進(jìn)行識(shí)別39。如果單擊按鈕前的狀態(tài)處于未按下?tīng)顟B(tài),那么單擊后 39。的同時(shí)就改變了按鈕的“按下/彈起”的狀態(tài) 39。利用 NodeClick 事件而不是 TreeView 的 Click 事件