學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(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、學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘  要:本論文敘述了我校學(xué)成績(jī)管理的現(xiàn)狀以及Visual basic6.0語(yǔ)言的概況。重點(diǎn)介紹了學(xué)生成績(jī)管理系統(tǒng)的實(shí)現(xiàn)過(guò)程:包括系統(tǒng)分析、 系統(tǒng)調(diào)查、 數(shù)據(jù)流程分析、功能設(shè)計(jì)、 數(shù)據(jù)庫(kù)設(shè)計(jì)、 系統(tǒng)物理配置方案、 系統(tǒng)實(shí)現(xiàn)、 系統(tǒng)測(cè)試和調(diào)試。本系統(tǒng)主要功能有用戶管理、學(xué)生注冊(cè)、班級(jí)信息錄入、學(xué)生信息錄入、班級(jí)課程錄入、學(xué)校專業(yè)信息錄入、課程信息錄入、學(xué)生成績(jī)錄入、教師信息錄入、數(shù)據(jù)查詢、打印輸出等功能??偨Y(jié)了本系統(tǒng)的特點(diǎn):界面美觀、操作方便、容錯(cuò)性強(qiáng)、效率高,從而節(jié)約學(xué)生成績(jī)管理成本。本論文主要內(nèi)

2、容是:簡(jiǎn)要介紹了本系統(tǒng)的應(yīng)用背景、需求分析,設(shè)計(jì)總體思路。概述了管理信息系統(tǒng)的相關(guān)理論及開(kāi)發(fā)語(yǔ)言的有關(guān)知識(shí),對(duì)本系統(tǒng)進(jìn)行了系統(tǒng)分析和設(shè)計(jì),包括功能需求描述、數(shù)據(jù)庫(kù)設(shè)計(jì)等內(nèi)容。介紹了本系統(tǒng)的具體實(shí)現(xiàn)。關(guān)于本系統(tǒng)開(kāi)發(fā)過(guò)程中的結(jié)論及體會(huì).本系統(tǒng)主要使用Visual Basic語(yǔ)言作為前臺(tái)界面設(shè)計(jì),后臺(tái)使用Access數(shù)據(jù)庫(kù)來(lái)完成學(xué)生成績(jī)管理系統(tǒng)。Access數(shù)據(jù)庫(kù),其穩(wěn)定安全簡(jiǎn)單的設(shè)計(jì)風(fēng)格,為本系統(tǒng)的開(kāi)發(fā)減少許多困難。本論文只詳細(xì)論述查詢管理模塊、添加讀者管理模塊和打印模塊,界面友好,操作簡(jiǎn)便。關(guān)鍵詞:數(shù)據(jù)庫(kù);智能化;面向?qū)ο竽?錄摘  要I一、引言1(一)管理信息系統(tǒng)基礎(chǔ)1(二)軟件工程

3、理論的概述1(三)軟件工程理論對(duì)本系統(tǒng)的指導(dǎo)1二、需求分析1(一)項(xiàng)目開(kāi)發(fā)的背景分析1(二)項(xiàng)目開(kāi)發(fā)的目標(biāo)1(三)項(xiàng)目提出的意義1(四)國(guó)內(nèi)外研究現(xiàn)狀2三、開(kāi)發(fā)工具及編程環(huán)境2(一)開(kāi)發(fā)工具的選擇2(二)編程環(huán)境的選擇2(三)數(shù)據(jù)庫(kù)的選擇2四、系統(tǒng)詳細(xì)步驟及代碼3(一)系統(tǒng)的開(kāi)發(fā)3(二)功能需求描述3(三)系統(tǒng)邏輯方案3(四)登陸界面編碼設(shè)計(jì)4(五)主窗體11(六)教師管理界面編碼設(shè)計(jì)11致  謝23參考文獻(xiàn)24一、引言(一)管理信息系統(tǒng)基礎(chǔ)管理信息系統(tǒng)就是我們常說(shuō)的MIS (Management Information System),是集成了計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、信息處理技術(shù),對(duì)信息進(jìn)

4、行收集處理、傳輸及存儲(chǔ),進(jìn)行事務(wù)管理的一種人機(jī)交互的智能化計(jì)算機(jī)系統(tǒng)。(二)軟件工程理論的概述軟件工程是一門旨在研究計(jì)算機(jī)軟件開(kāi)發(fā)與維護(hù)的普遍原理和技術(shù)的工程學(xué)科。它的研究范圍涉及到技術(shù)方法、軟件工具、科學(xué)管理等諸多方面。實(shí)踐證明:在軟件的設(shè)計(jì)和開(kāi)發(fā)過(guò)程中,運(yùn)用軟件工程的方法,可以大大提高軟件開(kāi)發(fā)的成功率,能夠顯著減少軟件開(kāi)發(fā)和維護(hù)中的問(wèn)題。(三)軟件工程理論對(duì)本系統(tǒng)的指導(dǎo)學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)和開(kāi)發(fā)是一個(gè)較為龐大的系統(tǒng)工程,應(yīng)以軟件工程的思想和方法為指導(dǎo),進(jìn)行設(shè)計(jì)和開(kāi)發(fā)。軟件工程理論對(duì)本系統(tǒng)的指導(dǎo),主要表現(xiàn)在:幫助我們理清思路,建立較為科學(xué)的結(jié)構(gòu)和開(kāi)發(fā)制作流程方面。上述的各種理論,對(duì)我們?cè)O(shè)計(jì)

5、和開(kāi)發(fā)學(xué)生成績(jī)管理系統(tǒng)提供了重要的理論基礎(chǔ),同時(shí)也為我們?nèi)绾芜M(jìn)行具體的設(shè)計(jì)和開(kāi)發(fā)工作,提供了必要的思路和方法。二、需求分析(一)項(xiàng)目開(kāi)發(fā)的背景分析幾年前,各個(gè)學(xué)校的學(xué)生成績(jī)管理基本上都是靠手工進(jìn)行,隨著各個(gè)學(xué)校的規(guī)模增大,有關(guān)學(xué)生成績(jī)管理工作所涉及的數(shù)據(jù)量越來(lái)越大,有的學(xué)校不得不靠增加人力、物力來(lái)進(jìn)行學(xué)生成績(jī)管理。但手工管理具有效率底、易出錯(cuò)、檢索信息慢、對(duì)學(xué)校的管理提供決策信息較為困難等缺點(diǎn)。我校盡管部分學(xué)院或系已開(kāi)出學(xué)生成績(jī)管理系統(tǒng),但開(kāi)發(fā)的系統(tǒng)不具有通用性,所以我想借本次畢業(yè)設(shè)計(jì)之際,開(kāi)發(fā)一個(gè)通用高校學(xué)生成績(jī)管理系統(tǒng)。(二)項(xiàng)目開(kāi)發(fā)的目標(biāo)建立學(xué)生成績(jī)管理系統(tǒng),采用計(jì)算機(jī)對(duì)學(xué)生成績(jī)進(jìn)行管理

6、,進(jìn)一步提高辦學(xué)效益和現(xiàn)代化水平。幫助廣大教師提高工作效率,實(shí)現(xiàn)學(xué)生成績(jī)信息管理工作流程的系統(tǒng)化、規(guī)范化和自動(dòng)化(三)項(xiàng)目提出的意義現(xiàn)在我國(guó)的大中專院校的學(xué)生成績(jī)管理水平普遍不高,有的還停留在紙介質(zhì)基礎(chǔ)上,這種管理手段已不能適應(yīng)時(shí)代的發(fā)展,因?yàn)樗速M(fèi)了了許多的人力和物力。在當(dāng)今信息時(shí)代這種傳統(tǒng)的管理方法必然被計(jì)算機(jī)為基礎(chǔ)的信息管理系統(tǒng)所代替。如果本系統(tǒng)能被學(xué)校所采用,將會(huì)改變以前靠手工管理學(xué)生成績(jī)的狀況,可以樹(shù)立良好的辦學(xué)形象,提高工作效率。學(xué)生信息管理系統(tǒng)是為本校開(kāi)發(fā)的,本系統(tǒng)所采用的語(yǔ)言是Visual Basic語(yǔ)言,通過(guò)本校內(nèi)部的信息,依據(jù)統(tǒng)一數(shù)據(jù)信息進(jìn)行管理,把任何一塊信息所產(chǎn)生的數(shù)據(jù)

7、變動(dòng)及時(shí)地反映給其它相關(guān)信息,做到數(shù)據(jù)共享。(四)國(guó)內(nèi)外研究現(xiàn)狀在教育技術(shù)水平比較發(fā)達(dá)的國(guó)家,前幾年就已經(jīng)開(kāi)發(fā)成績(jī)管理系統(tǒng),但都是根據(jù)他們本國(guó)的實(shí)際情況來(lái)進(jìn)行開(kāi)發(fā)的,在語(yǔ)言文字、價(jià)格及對(duì)象的要求等方面都不符合我國(guó)的國(guó)情。在國(guó)內(nèi),雖然現(xiàn)在也有很多的成績(jī)管理系統(tǒng),但大多是封閉性的。三、開(kāi)發(fā)工具及編程環(huán)境(一)開(kāi)發(fā)工具的選擇基于系統(tǒng)的需求分析以及系統(tǒng)的應(yīng)用,系統(tǒng)將采用微軟的Visual Studio6.0簡(jiǎn)體中文版進(jìn)行開(kāi)發(fā),所選擇的語(yǔ)言是Visual Basci6.0,微軟公司的Visual Basic 開(kāi)發(fā)系統(tǒng)6.0版,是開(kāi)發(fā)效率極高的用于創(chuàng)建高性能組件和應(yīng)用程序的工具。Visual Basic

8、6.0可支持開(kāi)發(fā)人員基于客戶端或服務(wù)器端創(chuàng)建優(yōu)秀的應(yīng)用程序,或是在分布式n層環(huán)境下操作。Visual Basic 是快速應(yīng)用程序開(kāi)發(fā)(RAD)工具,可作為獨(dú)立的產(chǎn)品使用,也可作為Visual Studio 6.0套件的一部分使用。(二)編程環(huán)境的選擇微軟公司的Visual Basic 6.0是Windows應(yīng)用程序開(kāi)發(fā)工具,使目前最為廣泛的、易學(xué)易用的面向?qū)ο蟮拈_(kāi)發(fā)工具。Visual Basic提供了大量的控件,這些控件可用于設(shè)計(jì)界面和實(shí)現(xiàn)各種功能,減少了編程人員的工作量,也簡(jiǎn)化了界面設(shè)計(jì)過(guò)程,從而有效的提高了應(yīng)用程序的運(yùn)行效率和可靠性。故而,實(shí)現(xiàn)本系統(tǒng)Visual Basic 6.0是一個(gè)相

9、對(duì)較好的選擇。Windows下的Visual Basic 面對(duì)對(duì)象的編程面對(duì)對(duì)象的編程;面向?qū)ο蟮脑O(shè)計(jì)方法 (OOP, Objected Programming) 從應(yīng)用領(lǐng)域內(nèi)的問(wèn)題著手,以直觀自然的方式描述客觀世界的實(shí)體。Visual Basic 作為一種面向?qū)ο蟮木幊谭椒?,把程序和?shù)據(jù)封裝起來(lái)作為一個(gè)對(duì)象,并為每個(gè)對(duì)象賦予相應(yīng)的屬性。在設(shè)計(jì)對(duì)象時(shí),不必編寫(xiě)建立和描述每個(gè)對(duì)象的程序代碼,而是用工具畫(huà)在界面上,由 Visual Basic 自動(dòng)生成對(duì)象的程序代碼并封裝起來(lái)。Visual Basic 應(yīng)用程序基本的構(gòu)建塊是用戶所創(chuàng)建的對(duì)象,每一個(gè)對(duì)象都具有一些特性和行為(屬性、事件和方法)。開(kāi)發(fā)

10、人員可以最有效利用所創(chuàng)建的每一個(gè)對(duì)象。使用應(yīng)用程序具有可通用性可說(shuō)擴(kuò)展性和強(qiáng)有力的功能。Visual Basic 應(yīng)用由一系列對(duì)象組成,包括有函數(shù)、菜單、函數(shù)、結(jié)構(gòu)和數(shù)據(jù)窗口、用戶對(duì)象、用戶事件等等,對(duì)象中又包含若干控件如命令按鈕、單行編輯器等這些對(duì)象和控件都可在許多應(yīng)用中重復(fù)使用。(三)數(shù)據(jù)庫(kù)的選擇數(shù)據(jù)庫(kù)是信息系統(tǒng)的核心和基礎(chǔ),是信息系統(tǒng)的各個(gè)部分能否緊密地結(jié)合在一起以及如何結(jié)合的關(guān)鍵所在。而數(shù)據(jù)庫(kù)設(shè)計(jì)是信息系統(tǒng)開(kāi)發(fā)和建設(shè)的重要組成部分,是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)數(shù)據(jù),滿足用戶的需求。本系統(tǒng)采用Access數(shù)據(jù)庫(kù)作為數(shù)據(jù)后臺(tái)。建

11、立各表之間的關(guān)系,通過(guò)主表與子表之間的關(guān)系,清晰的顯現(xiàn)出本系統(tǒng)的數(shù)據(jù)關(guān)系,方便本組其他成員進(jìn)行數(shù)據(jù)的調(diào)用與查詢。針對(duì)一般學(xué)生成績(jī)管理信息系統(tǒng)的需求,通過(guò)對(duì)成績(jī)管理過(guò)程的內(nèi)容和數(shù)據(jù)流程分析,可以設(shè)計(jì)出該系統(tǒng)的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):1、“學(xué)生信息”的數(shù)據(jù)項(xiàng)有:學(xué)號(hào)、姓名、班級(jí)、生日、性別、身份證號(hào),登錄系統(tǒng)密碼等;2、“課程信息”的數(shù)據(jù)項(xiàng)有:課程編號(hào)、課程名稱、學(xué)時(shí)和課程類型等3、“學(xué)生成績(jī)信息”的數(shù)據(jù)項(xiàng)有:學(xué)號(hào)、姓名、班級(jí)、選修課程、考試成績(jī),初考成績(jī)1,初考成績(jī)2等。4、“班級(jí)信息”的數(shù)據(jù)項(xiàng)有:班級(jí)號(hào),班級(jí)名稱,入學(xué)年份,所在院系專業(yè)。5、“院系信息”的數(shù)據(jù)項(xiàng)有:編號(hào),名稱,簡(jiǎn)述。6、“教師信息”

12、的數(shù)據(jù)項(xiàng)有:編號(hào),姓名,性別,生日,所在院系,電話,家庭住址,簡(jiǎn)歷,登錄系統(tǒng)密碼7、“管理員信息”的數(shù)據(jù)項(xiàng)有:名稱,密碼。8、“專業(yè)信息”的數(shù)據(jù)項(xiàng)有:序號(hào),名稱,系別。四、系統(tǒng)詳細(xì)步驟及代碼(一)系統(tǒng)的開(kāi)發(fā)學(xué)生成績(jī)管理系統(tǒng)對(duì)學(xué)校加強(qiáng)學(xué)生成績(jī)的管理有著極其重要的作用。由于各個(gè)大學(xué)都在持續(xù)擴(kuò)招,學(xué)生的數(shù)量日益龐大,傳統(tǒng)的手工成績(jī)管理不僅工作量大,而且容易出現(xiàn)問(wèn)題。而本系統(tǒng)則是在以前成績(jī)管理系統(tǒng)的基礎(chǔ)之上開(kāi)發(fā)出來(lái)的。(二)功能需求描述按學(xué)生角度管理教師可以看到學(xué)生信息和成績(jī)信息。學(xué)生信息包括學(xué)生姓名,各科成績(jī)及班級(jí)排名等,可以自動(dòng)顯示出該課程的這個(gè)學(xué)生所有課程的學(xué)習(xí)成績(jī),并同時(shí)自動(dòng)計(jì)算出這個(gè)學(xué)生的總

13、分。在成績(jī)信息中,教師可以對(duì)學(xué)習(xí)成績(jī)進(jìn)行增加、修改和刪除,字體可大可小。(三)系統(tǒng)邏輯方案系統(tǒng)數(shù)據(jù)流圖(簡(jiǎn)稱為DFD)(限于篇幅,僅列舉部分)信息錄入數(shù)據(jù)流圖如圖4-1所示。計(jì)算機(jī)系數(shù)據(jù)庫(kù)學(xué)生信息錄入補(bǔ)考信息錄入成績(jī)信息錄入教師信息錄入班級(jí)信息錄入專業(yè)信息錄入課程信息錄入學(xué)生信息表學(xué)生成績(jī)表教師信息表班級(jí)信息表院系信息表課程信息表圖4-1信息錄入流圖信息查詢流圖如圖4-2所示。使用人員成績(jī)數(shù)據(jù)表班級(jí)數(shù)據(jù)表課程數(shù)據(jù)表學(xué)生數(shù)據(jù)表查詢條件查詢結(jié)果學(xué)生信息錄入成績(jī)信息錄入班級(jí)信息錄入課程信息錄入圖4-2 學(xué)生信息查詢流圖(四)登錄界面編碼設(shè)計(jì)首先是進(jìn)入登錄界面,如圖4-4所示,本窗體顯示系統(tǒng)名稱,密碼

14、校驗(yàn)等信息,本系統(tǒng)的用戶分為三類:管理員,教師,學(xué)生。使用者可以在組合框中選擇所要登錄的用戶的類型,并輸入相應(yīng)的用戶名和密碼,單擊“確定”就會(huì)將輸入提交給系統(tǒng)以驗(yàn)證用戶、密碼及身份。如果用戶類型及密碼正確,則會(huì)進(jìn)入系統(tǒng)的MDI主窗體(MDIMain.frm).本模塊的流程圖如圖4-3所示。選擇用戶,輸入密碼密碼正確?Y進(jìn)入界面N 圖4-3登錄流程圖圖4-4 登錄界面代碼如下:Private Sub CmdOk_Click()Dim Conn As New ADODB.ConnectionDim mlink As Stringmlink = "provider=microsoft.je

15、t.oledb.3.51;data source=score.mdb;"Conn.Open mlink'當(dāng)用戶名密碼為空時(shí)給出提示If Text1.Text = "" Then MsgBox "請(qǐng)輸入用戶名", vbOKOnly, "注意" Text1.SetFocus Exit SubElseIf Text2.Text = "" Then MsgBox "請(qǐng)輸入密碼", vbOKOnly, "注意" Text2.SetFocus Exit SubEnd I

16、fDim rs As New ADODB.RecordsetSelect Case Combo1.ListIndexCase 0: '管理員msql = "select *from admin where admin.admin='" & Text1.Text & "' and admin.pwd='" & Text2.Text & "'"Case 1: '教師msql = "select *from teacher where teacher.

17、name='" & Text1.Text & "' and teacher.pwd='" & Text2.Text & "'"Case 2: '學(xué)生msql = "select *from student where ='" & Text1.Text & "' and student.pwd='" & Text2.Text & "'&qu

18、ot;End Selectrs.Open msql, Conn, adOpenStatic, adLockPessimisticIf rs.EOF Then MsgBox ("對(duì)不起用戶名密碼錯(cuò)誤請(qǐng)重新輸入") ElseSelect Case Combo1.ListIndex Case 0: '管理員MsgBox " 管 理 員 ,歡迎您登陸維護(hù)本學(xué)生成績(jī)管理系統(tǒng)!", vbOKOnly, " 管 理 員 -登陸成功!"MDIMain.Enabled = TrueMDIMain.register.Enabled = TrueM

19、DIMain.system1.Enabled = TrueMDIMain.score.Enabled = TrueMDIMain.manage.Enabled = TrueMDIMain.bak.Enabled = TrueMDIMain.table.Enabled = TrueMDIMain.log.Enabled = FalseMDIMain.again.Enabled = TrueMDIMain.Toolbar1.Visible = TrueUnload LoginCase 1: '教師 MsgBox " 老 師 您好!歡迎您使用本學(xué)生成績(jī)管理系統(tǒng)!", vb

20、OKOnly, " 老 師 -登陸成功!" MDIMain.Enabled = TrueMDIMain.register.Enabled = FalseMDIMain.system1.Enabled = TrueMDIMain.score.Enabled = TrueMDIMain.manage.Enabled = TrueMDIMain.bak.Enabled = TrueMDIMain.table.Enabled = TrueMDIMain.log.Enabled = FalseMDIMain.again.Enabled = TrueMDIMain.Toolbar1.V

21、isible = TrueUnload Login Case 2: '學(xué)生 MsgBox " 同 學(xué) 你好!歡迎使用本學(xué)生成績(jī)管理系統(tǒng)!", vbOKOnly, " 同 學(xué) -登陸成功!" MDIMain.Enabled = TrueMDIMain.register.Enabled = FalseMDIMain.system1.Enabled = FalseMDIMain.score.Enabled = FalseMDIMain.manage.Enabled = FalseMDIMain.bak.Enabled = FalseMDIMain.ta

22、ble.Enabled = TrueMDIMain.log.Enabled = FalseMDIMain.again.Enabled = TrueMDIMain.Toolbar1.Visible = FalseUnload LoginEnd SelectUnload MeEnd IfEnd SubPrivate Sub Command1_Click()Dim Conn As New ADODB.ConnectionDim mlink As Stringmlink = "provider=microsoft.jet.oledb.3.51;data source=score.mdb;&q

23、uot;Conn.Open mlink'當(dāng)用戶名密碼為空時(shí)給出提示If Text1.Text = "" Then MsgBox "請(qǐng)輸入用戶名", vbOKOnly, "注意" Text1.SetFocus Exit SubElseIf Text2.Text = "" Then MsgBox "請(qǐng)輸入密碼", vbOKOnly, "注意" Text2.SetFocus Exit SubEnd IfDim rs As New ADODB.RecordsetSelect

24、Case Combo1.ListIndexCase 0: '管理員msql = "select *from admin where admin.admin='" & Text1.Text & "' and admin.pwd='" & Text2.Text & "'"Case 1: '教師msql = "select *from teacher where ='" & Text1.Text &am

25、p; "' and teacher.pwd='" & Text2.Text & "'"Case 2: '學(xué)生msql = "select *from student where ='" & Text1.Text & "' and student.pwd='" & Text2.Text & "'"End Selectrs.Open msql, Conn, adOp

26、enStatic, adLockPessimisticIf rs.EOF Then MsgBox ("對(duì)不起用戶名密碼錯(cuò)誤請(qǐng)重新輸入") ElseSelect Case Combo1.ListIndex Case 0: '管理員MsgBox "【 管 理 員 】,歡迎您登陸維護(hù)本學(xué)生成績(jī)管理系統(tǒng)!", vbOKOnly, "【 管 理 員 】-登陸成功!"MDIMain.Enabled = TrueMDIMain.register.Enabled = TrueMDIMain.system1.Enabled = TrueMDIM

27、ain.score.Enabled = TrueMDIMain.manage.Enabled = TrueMDIMain.bak.Enabled = TrueMDIMain.table.Enabled = TrueMDIMain.log.Enabled = FalseMDIMain.again.Enabled = TrueMDIMain.Toolbar1.Visible = TrueUnload LoginCase 1: '教師 MsgBox " 老 師您好!歡迎您使用本學(xué)生成績(jī)管理系統(tǒng)!", vbOKOnly, " 老 師 -登陸成功!" MD

28、IMain.Enabled = TrueMDIMain.register.Enabled = FalseMDIMain.system1.Enabled = TrueMDIMain.score.Enabled = TrueMDIMain.manage.Enabled = TrueMDIMain.bak.Enabled = TrueMDIMain.table.Enabled = TrueMDIMain.log.Enabled = FalseMDIMain.again.Enabled = TrueMDIMain.Toolbar1.Visible = TrueUnload Login Case 2:

29、'學(xué)生 MsgBox " 同 學(xué) 你好!歡迎使用本學(xué)生成績(jī)管理系統(tǒng)!", vbOKOnly, " 同 學(xué)-登陸成功!" MDIMain.Enabled = TrueMDIMain.register.Enabled = FalseMDIMain.system1.Enabled = FalseMDIMain.score.Enabled = FalseMDIMain.manage.Enabled = FalseMDIMain.bak.Enabled = FalseMDIMain.table.Enabled = TrueMDIMain.log.Enabl

30、ed = FalseMDIMain.again.Enabled = TrueMDIMain.Toolbar1.Visible = FalseUnload LoginEnd SelectUnload MeEnd IfEnd SubPrivate Sub Command2_Click()If MsgBox("提示:您真的要退出本系統(tǒng)嗎?", vbQuestion + vbYesNo + vbDefaultButton2, "退出") = vbNo Then Cancel = 1 ElseEndEnd IfEnd SubPrivate Sub Command3

31、_Click()If MsgBox("提示:您真的要退出本系統(tǒng)嗎?", vbQuestion + vbYesNo + vbDefaultButton2, "退出") = vbNo Then Cancel = 1 ElseEndEnd IfEnd SubPrivate Sub Form_Load()Combo1.ListIndex = 0MDIMain.ShowMDIMain.Enabled = FalseEnd Sub(五)主窗體在frmlogin窗體中如果用戶登錄成功,將會(huì)出現(xiàn)如圖4-5所示的MDI主窗體。圖4-5系統(tǒng)主窗體若是學(xué)生用戶,則有些菜單項(xiàng)不

32、可用,只能運(yùn)行本系統(tǒng)的部分功能(即重新登錄和信息查詢功能可用)。如圖4-6所示。圖4-6系統(tǒng)主窗體(六)教師管理界面編碼設(shè)計(jì)本節(jié)以按學(xué)生角度進(jìn)行管理為例,介紹教師管理的編碼設(shè)計(jì)。教師用戶進(jìn)入“成績(jī)管理”中的“按學(xué)生進(jìn)行管理”功能,出現(xiàn)如圖4-7所示界面。圖4-7 “按學(xué)生進(jìn)行管理”學(xué)生信息功能界面教師用戶用鼠標(biāo)雙擊學(xué)生信息后,系統(tǒng)會(huì)顯示出該學(xué)生的成績(jī)信息。如圖4-8所示。圖4-8 “按學(xué)生進(jìn)行管理”成績(jī)信息功能界面Option Explicit'''當(dāng)改變記錄集時(shí),需要刷新整個(gè)網(wǎng)格控件Sub RefreshGrid() grdScan.DataMember = &quo

33、t;" grdScan.Refresh grdScan.DataMember = "sqlStudent" grdScan.Refresh ''刷新各個(gè)綁定控件 Call grdScan_ChangeEnd Sub'''用以在瀏覽時(shí),根據(jù)當(dāng)前記錄所出的位置不同,來(lái)改變個(gè)瀏覽按鈕的狀態(tài)Sub ChangeBrowseState() With DataEnv.rssqlStudent ''如果沒(méi)有任何記錄,則清空顯示目錄;并且使瀏覽部分和管理部分的按鈕無(wú)效 If .State = adStateClosed Th

34、en .Open '''假如處于記錄的頭部 If .BOF Then cmdPrevious.Enabled = False cmdFirst.Enabled = False Else cmdPrevious.Enabled = True cmdFirst.Enabled = True End If '''假如處于記錄的尾部 If .EOF Then cmdNext.Enabled = False cmdLast.Enabled = False Else cmdNext.Enabled = True cmdLast.Enabled = True

35、End If End WithEnd Sub''通過(guò)當(dāng)前學(xué)生的成績(jī),來(lái)得到該學(xué)生的總成績(jī)和平均成績(jī)Sub Calculate(sSerial As String) Dim rs As New ADODB.Recordset Dim str str = "select avg(score) as avg_score, sum(score) as sum_score from score where studentid='" & sSerial & "'" rs.Open str, DataEnv.Con, a

36、dOpenStatic If Not rs.EOF Then txtSum.Text = FormatNumber(rs("sum_score"), 2) txtAverage.Text = FormatNumber(rs("avg_score"), 2) End IfEnd Sub''刷新學(xué)生號(hào)為sSerial的成績(jī)的網(wǎng)格控件grdScoreSub RefreshScore(sSerial As String) With DataEnv.rsOneScore If .State <> adStateClosed Then .

37、Close Dim str If sSerial = "" Then str = "select course.*, score.score from score, course where course.serial=Score.courseid" Else str = "select course.*, score.score from score, course where course.serial=Score.courseid " & _ " and Score.studentid = '"

38、; & sSerial & "'" End If .Open str ''根據(jù)DataEnv.rsOneScore的記錄狀態(tài),來(lái)改變管理grdScore的各個(gè)按鈕的狀態(tài) If .BOF And .EOF Then cmdAdd.Enabled = True cmdEdit.Enabled = False cmdDelete.Enabled = False cmdReport.Enabled = False Else cmdAdd.Enabled = True cmdEdit.Enabled = True cmdDelete.Enabl

39、ed = True cmdReport.Enabled = True End If End With grdScore.DataMember = "oneScore" grdScore.Caption = "學(xué)號(hào):" & grdScan.Columns(0).CellText(grdScan.Bookmark) & " 姓名:" & grdScan.Columns(1).CellText(grdScan.Bookmark) grdScore.Refresh ''計(jì)算該學(xué)生的總成績(jī)和平均成績(jī) Ca

40、ll Calculate(grdScan.Columns(0).CellText(grdScan.Bookmark)End SubPrivate Sub cmdAdd_Click() On Error GoTo errHandler With frmAddCourse Load frmAddCourse .Caption = "添加成績(jī)信息" .Show vbModal ''如果用戶沒(méi)有點(diǎn)擊確認(rèn)按鈕,則退出處理過(guò)程 If Not .mbAdded Then Unload frmAddCourse Exit Sub End If ''添加成績(jī)記

41、錄 Dim str str = "insert into score(StudentID, CourseID, Score) values('" str = str & grdScan.Columns(0).CellText(grdScan.Bookmark) & "','" & .dcbSerial.Text & "','" & .txtScore.Text str = str & "')" DataEnv.Con.E

42、xecute str Unload frmAddCourse End With Unload frmAddCourse ''刷新整個(gè)網(wǎng)格控件 Call RefreshScore(grdScan.Columns(0).CellText(grdScan.Bookmark) Exit Sub errHandler: MsgBox Err.Description, vbCritical, "錯(cuò)誤"End SubPrivate Sub cmdClose_Click() Unload MeEnd SubPrivate Sub cmdDelete_Click() On E

43、rror GoTo errHandler If MsgBox("確實(shí)要?jiǎng)h除此成績(jī)記錄?", vbYesNo + vbQuestion + vbDefaultButton2, "確認(rèn)") = vbYes Then Dim sSerial sSerial = grdScore.Columns(0).CellText(grdScore.Bookmark) Dim stuSerial stuSerial = grdScan.Columns(0).CellText(grdScan.Bookmark) Dim str str = "delete from

44、score where studentid = '" & stuSerial & "' and courseid='" & sSerial & "'" ''使用con來(lái)刪除所選的記錄 DataEnv.Con.Execute str ''刷新grdScore控件 grdScore.DataMember = "OneScore" grdScore.Refresh Call Calculate(grdScan.Columns(0).Ce

45、llText(grdScan.Bookmark) End If Exit SuberrHandler: MsgBox Err.Description, vbCritical, "錯(cuò)誤"End SubPrivate Sub cmdEdit_Click() ''修改當(dāng)前所選的成績(jī)信息 On Error GoTo errHandler With frmAddCourse Load frmAddCourse .Caption = "修改成績(jī)信息" ''將當(dāng)前所定位的課程信息寫(xiě)入到frmAddCourse的dcbSerial和dcb

46、Name控件中 .dcbSerial.Text = grdScore.Columns(0).CellText(grdScore.Bookmark) .dcbName.Text = .dcbSerial.BoundText ''將當(dāng)前所定位的課程的成績(jī)寫(xiě)入到frsScore.txtScore中 .txtScore.Text = grdScore.Columns(grdScore.Columns.Count - 1).CellText(grdScore.Bookmark) .cmdOK.Enabled = True .Show vbModal ''如果用戶沒(méi)有點(diǎn)擊確

47、認(rèn)按鈕,則退出處理過(guò)程 If Not .mbAdded Then Unload frmAddCourse Exit Sub End If ''添加成績(jī)記錄 Dim str str = "update score set score=" & .txtScore.Text str = str & " where studentid='" & grdScan.Columns(0).CellText(grdScan.Bookmark) & "'" str = str &

48、" and courseID='" & .dcbSerial.Text & "'" DataEnv.Con.Execute str Unload frmAddCourse End With Unload frmAddCourse ''刷新整個(gè)網(wǎng)格控件 Call RefreshScore(grdScan.Columns(0).CellText(grdScan.Bookmark) Exit SuberrHandler: MsgBox Err.Description, vbCritical, "錯(cuò)誤&q

49、uot;End SubPrivate Sub cmdFirst_Click() Call ChangeBrowseStateEnd SubPrivate Sub cmdLast_Click() Call ChangeBrowseStateEnd SubPrivate Sub cmdList_Click() ' On Error Resume Next ''針對(duì)所選的班級(jí),列出班級(jí)中所有的學(xué)籍信息 Dim strSQL If cboClass.Text = "全部" Then strSQL = " from student order by

50、serial" Else strSQL = " from student where class='" & cboClass & "' order by serial" End If DataEnv.rssqlStudent.Open "select * " & strSQL ''刷新網(wǎng)格控件 Call RefreshGrid Call ChangeBrowseState Call grdScan_ChangeEnd SubPrivate Sub cmdNext_Cli

51、ck() Call ChangeBrowseStateEnd SubPrivate Sub cmdPrevious_Click() Call ChangeBrowseStateEnd SubPrivate Sub cmdReport_Click() On Error Resume Next Dim rpt As New rptStudentScore Load rpt rpt.Caption = "學(xué)生" & grdScan.Columns(1).CellText(grdScan.Bookmark) & "的成績(jī)信息" rpt.Show

52、1End SubPrivate Sub cmdSeek_Click() With frmFind Dim i As Integer '顯示查找窗口 Load frmFind ''填充查找窗體的字段列表框 .lstFields.Clear For i = 0 To DataEnv.rsStudent.Fields.Count - 1 .lstFields.AddItem (DataEnv.rsStudent(i).Name) Next i .lstFields.ListIndex = 0 .Show 1 If .mbFindFailed Then Exit Sub Dim

53、 sTemp As String If LCase(.msFindOp) = "like" Then sTemp = .msFindField & " " & .msFindOp & " '%" & .msFindExpr & "%'" Else sTemp = .msFindField & " " & .msFindOp & " '" & .msFindExpr & &q

54、uot;'" End If sTemp = "select * from student where " & sTemp & " order by serial" Unload frmFind End With ''查找數(shù)據(jù),并刷新用以導(dǎo)航的網(wǎng)格控件 DataEnv.rssqlStudent.Open sTemp Call RefreshGrid Exit SuberrHandler: MsgBox "沒(méi)有符合條件的紀(jì)錄!", vbExclamation, "確認(rèn)"End SubPrivate Sub Form_Load()' On Error Resume Next Dim rsDep As New ADODB.Recordset, rsClass As New ADO

溫馨提示

  • 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)論