【正文】
userschool教授科目nvarchar50NOT NULL4 系統(tǒng)實現(xiàn)4.1用戶登錄模塊用戶分為三種類型:學(xué)生、教師、管理員。教師和管理員登錄時有身份驗證,當(dāng)用戶是學(xué)生時,直接輸入用戶名和密碼,如果是教師和管理員登錄時,除了輸入用戶名和密碼,還要在下面的選項框中打鉤,因為教師信息和管理員信息在同一張數(shù)據(jù)庫表里。登錄界面如圖41:圖41 用戶登錄界面當(dāng)用戶都進(jìn)入系統(tǒng)后,都能看到一樣的界面,但是學(xué)生只能進(jìn)入用戶管理和成績查詢的界面,教師可以進(jìn)入用戶管理、成績查詢和成績管理的界面。管理員則可以全部進(jìn)入。圖42 管理頁面4.2用戶管理模塊4.2.1用戶添加功能的實現(xiàn)用戶管理模塊中的添加功能是管理員特有的功能,添加學(xué)生用戶時,同時添加用戶名(也就是學(xué)號)和初始密碼,添加教師師時,同時確定教師教授的科目名,添加用戶名(也就是工號)和初始密碼. 圖43 添加用戶圖4.2.2 年級升級功能的實現(xiàn) 由于學(xué)校學(xué)生每年年級升級的原因,所以系統(tǒng)針對這個問題設(shè)計了一個年級升級的功能,由此可以進(jìn)行批量處理,更加方便。一、二年級的變成二、三年級,三年級的學(xué)生則顯示為“已畢業(yè)”。圖44 學(xué)生年級升級前的圖 在點擊了“學(xué)員升級”按鈕后,如圖45學(xué)生年級升級后的圖:圖45 學(xué)生年級升級后的圖主要代碼如下: Protected Sub upgrade_Click(ByVal sender As Object, ByVal e As ) Handles = update users set grade=39。己畢業(yè)39。 where grade=39。三年級39。 () = update users set grade=39。三年級39。 where grade=39。二年級39。 () = update users set grade=39。二年級39。 where grade=39。一年級39。 () Session(userType) = 管理員 ()End Sub4.2.3 查詢信息功能的實現(xiàn)個人信息查詢功能是所有用戶都可以使用的功能,并且可以編輯修改自己的信息。學(xué)生和教師進(jìn)入用戶管理后就可以看到自己的信息,管理員進(jìn)入用戶管理模塊后除了可以看見自己信息還可以通過用戶類型的選擇看見所有學(xué)生和教師的信息。 4.3成績查詢模塊4.3.1 學(xué)號查詢功能的實現(xiàn) 學(xué)號查詢由老師進(jìn)行,主要代碼如下:Protected Sub查詢學(xué)號 _Click(ByVal sender As Object, ByVal e As ) Handles = select * from achieve where 學(xué)號 =39。 + + 39。 ()End Sub4.3.2 姓名查詢功能的實現(xiàn) 和學(xué)號查詢功能相似,主要代碼如下Protected Sub 查詢姓名_Click(ByVal sender As Object, ByVal e As ) Handles = select * from achieve where 姓名 =39。 + + 39。 () End Sub4.3.3 查詢班級功能的實現(xiàn) 在進(jìn)行班級查詢時,先用一個dropdownlist下拉框選擇年級,再輸入要查詢的班級,如“二班”。老師查詢時,顯示的是教師教授科目下的班級全體學(xué)生的成績,同時顯示的結(jié)果是按成績由高到低的順序顯示出來。管理員查詢時,則顯示所有科目的成績。圖46是語文老師查詢某班的成績所顯示的結(jié)果:圖46 查詢班級圖主要代碼如下: Protected Sub 查詢班級_Click(ByVal sender As Object, ByVal e As ) Handles = select * from achieve where 年級=39。 + + 39。 and 班級 =39。 + + 39。 and 科目=39。 + Session(UserSchool) + 39。 Order By 成績 Desc ()4.3.4查詢班級某科平均分功能的實現(xiàn)班級平均分查詢首先通過一個dropdownlist下拉框選好年級,輸入要查詢的班級,再有另一個dropdownlist下拉框選擇要查詢平均分的科目名稱。但是如果用戶是數(shù)學(xué)老師,他查詢其他科目平均成績時則只顯示平均分,不顯示具體的學(xué)生成績情況列表。管理員沒有查詢平均分這個功能。圖47 平均分查詢圖主要代碼如下:Protected Sub 查詢平均分_Click(ByVal sender As Object, ByVal e As ) Handles conn = New SqlConnection((0).ConnectionString) () Dim m As SqlCommand = New SqlCommand(select avg(成績)as avgs from achieve where 年級=39。 + + 39。 and 班級=39。 + + 39。 and 科目=39。 + + 39。, conn) Dim dr As SqlDataReader = () If () Then If Not IsDBNull((avgs)) Then = dr(avgs).ToString() End If4.4成績管理模塊4.4.1錄入成績功能的實現(xiàn)錄入成績功能是只有教師可以實現(xiàn),在輸入學(xué)號后,光標(biāo)移到成績的文本框中時,在輸入學(xué)號后會顯示這個學(xué)生的姓名、年級、班級,以便可以核對學(xué)生信息防止輸入錯誤的發(fā)生。教師只能錄入自己教授科目的成績,在錄入成績的同時,自動錄入時間。有了錄入時間就可以區(qū)別學(xué)生在不同學(xué)年同一科目的學(xué)習(xí)成績。圖48 錄入成績圖主要代碼如下:Protected Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As ) Handles conn = New SqlConnection((0).ConnectionString) () Dim m As SqlCommand = New SqlCommand(select name, grade, class from [users] where userNumber =39。 + + 39。, conn) Dim dr As SqlDataReader = () If () Then If Not IsDBNull((name)) Then = dr(name).ToString() Else = End If If Not IsDBNull((grade)) Then = dr(grade).ToString() Else = End If If Not IsDBNull((class)) Then = dr(class).ToString() Else = End If End IfProtected Sub Button1_Click(ByVal sender As Object, ByVal e As ) Handles () = = = = = band()4.4.2編輯成績功能的實現(xiàn)可以編輯錄入成績的分?jǐn)?shù)和時間,主要代碼如下: Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As ) Handles If Session(userType) = Nothing Then () ElseIf Session(userType) = 學(xué)生 Then () End If band() End Sub Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As ) Handles If Session(userType) = Nothing Then () ElseIf Session(userType) = 學(xué)生 Then () End If band() End Sub Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As ) Handles If Session(userType) = Nothing Then () ElseIf Session(userType) = 學(xué)生 Then () End If band() End Sub 4.5科目管理模塊4.5.1科目錄入功能的實現(xiàn)科目管理這一功能模塊是管理員特有的功能權(quán)限,老師和學(xué)生都不能使用此功能。圖49 添加科目圖主要代碼如下:首先是用戶身份的判斷;Protected Sub Page_Load(ByVal sender As Object, ByVal e As ) Handles conn = New SqlConnection((0).ConnectionString) () If Session(userType) 管理員 Then (Script Language=JavaScriptalert(39。非管理員登錄,非法請求!39。)。/Script) (Script Language=JavaScript=39。39。/Script) End If If Session(userType) = Nothing Then () ElseIf Session(userType) = 學(xué)生 Then () Else = True End If接下來是添加錄入科目功能的實現(xiàn): Protected Sub 添加科目_Click(ByVal sender As Object, ByVal e As ) Handles () = End Sub4.5.2科目刪除功能的實現(xiàn)主要代碼如下: Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As ) Handles If Session(userType) = Nothing Then () ElseIf Session(userType) = 學(xué)生 Then () Else = True End If5 系統(tǒng)測試5. 1測試環(huán)境:本系統(tǒng)測試環(huán)境。CPU PIII8000 ,內(nèi)存SDRAM 512M, SQL SERVER 2000,VISUAL STUDIO 2005,WINDOWS PIII,內(nèi)存256M及以上,數(shù)據(jù)庫版本SQL SERVER 2000,WIN2000PRO/XP,2003,WIN2000 SERVER 及以上軟硬件平臺使用.5. 2測試結(jié)果:系統(tǒng)在上述軟硬件環(huán)境下分別對學(xué)生,教師,系統(tǒng)管理員的詳細(xì)設(shè)計功能做出測試,結(jié)果能夠達(dá)到預(yù)期功能。并且系統(tǒng)運行穩(wěn)定。結(jié) 論經(jīng)過這段時間進(jìn)行地畢業(yè)設(shè)計和畢業(yè)論文的工作,現(xiàn)在系統(tǒng)能夠?qū)崿F(xiàn)根據(jù)用戶需求的設(shè)計計劃內(nèi)的所有功能。本系統(tǒng)是分為三種用戶進(jìn)行操作,因此不同身份進(jìn)入系統(tǒng)后,相應(yīng)的能夠在自己權(quán)限內(nèi)使用的功能不同,這樣使用戶操作相互獨立,互不干擾。由于本系統(tǒng)采用的是B/S的結(jié)構(gòu)模式,較之于其它版本開發(fā)的程序,比如C/S的結(jié)構(gòu)模式,提高了用戶在操作上的簡單性。本系統(tǒng)的操作界面設(shè)計簡單明確,使用操作時很方便,許多功能在同