席先杰
(臺州職業技術學院計算機系,浙江臺州 318000)
基于類字段的成績管理系統的設計與實現*
席先杰
(臺州職業技術學院計算機系,浙江臺州 318000)
基于類字段的成績管理系統可采用 asp.net技術和 sql數據庫,且對學生成績的管理采用類字段,并通過類字段加權設計方法來實現成績數據的集中管理.如此來進行成績管理,可以大大減少數據庫中表的數量和記錄的數量.
成績;成績管理;類字段
隨著網絡技術特別是 internet技術的普及和發展,資源的利用由傳統應用轉向基于 internet/web的服務模式,因而大部分學校都應用基于網絡技術和計算機信息技術的學生成績管理系統來進行學生成績的管理.本人綜觀現已使用的大多成績管理系統,發現現有成績管理系統在成績數據的管理和實現上存在一定的不足:成績表中數據記錄眾多,系統的查詢速度不快,效率不高;或成績數據表個數眾多,系統管理復雜[1].針對成績管理系統的不足,本文提出了基于類字段的成績管理系統,從而可以輕松地實現成績數據的管理與查詢.
系統采用 B/S(Browse/Server,瀏覽器 /服務器)[2]方式的網絡結構,在客戶端不需要開發任何用戶界面,而統一采用 web瀏覽器,通過 web瀏覽器向 web服務器提出請求,由 web服務器對數據庫進行操作,并將結果逐級傳回客戶端.
在B/S體系構系統中,用戶通過瀏覽器向分布在網絡上的服務器發出請求,服務器對瀏覽器的請求進行處理,將用戶所需信息返回到瀏覽器,B/S結構簡化了客戶機的工作,客戶機上只需配置少量的客戶端軟件,服務器將擔負更多的工作,對數據庫的訪問各應用程序的執行在服務器上完成.而其余如數據請求、加工,結果返回以及動態網頁的生成等工作全部由 web服務器完成.
系統的組成功能 (如圖 1所示):

圖1 教務成績管理分析系統功能圖
各模塊主要功能如下:
(1)學生管理模塊主要完成學生基本信息 (班級、學號、姓名、專業…個人系統登錄用戶名、密碼等)的錄入,修改,刪除,班級學生,專業學生的統計;
(2)教師管理模塊主要完成教師其本信息 (姓名,性別、專業、…個人系統登錄用戶名、密碼等),以及教師賬號的開啟與關閉;
(3)班級管理管理模塊,主要完成班級的其本信息數據,班級入學年分,專業,班級人數、班級名稱、等信息的錄入,修改,刪除管理;
(4)成績管理模塊,學生和班級成績的查詢,不及格課程的查詢,成績總分排名;
(5)班級課程管理模塊設置班級的每個學期的課程,任課教師,周課時;
(6)數據的輸出和上報模塊將需要上報的數據打印,形成書面數據存檔和管理;
(7)教師課程成績的輸入模塊,教師登錄系統后,選擇本個所任教的班級和課程,系統會自動給出相應班級的學生,教師只要輸入相應有成績,提交后成績就會保存在系統中;
(8)教師課程成績,班級課程成績查詢模塊,主要實現教師對本人所任課程成績的查詢,班級課程成績查詢;
(9)學生個人信息查詢模塊,主要完成對學生本人在校期間,所有學期,所有課程成績的查詢,本系統只要學生個人登錄系統后,就后將個人所有課程成績顯現出來,且是分學期形式,如果只有一個學期,則只顯示一個學期成績.
本系統與現有學生成績管理系統的最大不同點是,在現有成績管理系統中,主要采用如下兩種方式:
一是采用定字段名法來進行,即在管理成績時,對每個班級都用一個表來進行,如甲班有 (語文、計算機、物理、數據結構),建立表時,字段名就為語文、計算機、物理、數據結構,且每個學期一個表,這樣,就會造成數據庫中表的數量相當龐大.
如一個一般學校有 60個班級,每個班級為 6個學期,每個學期建一個表,那么數據庫僅成績表的數量就應 =60*6=360,隨著時間的增長,數據庫中具體成績表的數量是相當龐大.
二是采如簡單字段當,如,用于保存學生成績信息,包含 stud-code,course-code,exam-code,sc ore四個字段,分別表示學生編號、課程編號、考試代碼和考試成績,其中以 stud-code,course code和 exam-code字段為主鍵,這樣的形式,這樣,就會造成數據庫成績表記錄過多.
如一上學校有 3000名學生,每個學生在校期間有近 50門程程,如采用這樣的形式,那數據庫成績表中記錄數就應 =3000*50,隨著時間的推移,數據庫的成績表中的記錄很多,很容易達到表允許記錄的限制,且記錄過多,就會造成系統查詢時間過長,降低系統的工作效率.而本系統采用的是類字段、字段加權法,來實現成績的管理.
具體是這樣,在學生成績管理表,每個同學所有成績只占一條紀錄,且所有學生的成績數據都在同一個表中,對于成績的讀取,采用外加權值法來進行,即另用一加權字表來增加班級課程名表 (有班級名,學期名,課程名,課程索引號字段),如班級甲第一學期課程 (語文、計算機、物理、數據結構),設定語文為 1,計算機為 2,物理為 3,數據結構為 4,這樣可以大縮小成績表中紀錄的個數和數據庫中具體成績表數量,提高系統效率.如 60個班級 3000人的學校,進行成績管理,成績表中記錄個數為3000個,是簡單字段的 50分之一,數據庫中成績表個 1,僅增加一加權字段表來進行字段標題顯示,是定字字段名的法表的個數的 180分之一,所以可以大大提高系統的效率.且加權字字段表中記錄的個數僅為班級數與班級課程數的乘積,乘積為 50*60=3000,與成績表的數據相當.所以可以大大提高系統的效率.
采用類字段及字段加權實現成績管理的方法,可以大大減少系統數據庫成績數據表的數量或減少系統數據庫成績數據表中記錄的數量,采用本文所提方法進行管理與現有成績管理系統方法比較.
10000同學,300個班級,每個班級大約 50門課程,采用簡單字段成績數據表記錄數對比.

表1 與簡單字段比較
同時采用定字段名,按班級學期建立成績表,成績表數對比.

表2 與定字段名相比較
由于在系統成績表中成績數據的字段名是不定的,但輸入具體數據前,由管理員給字段名標題值設定,設定后,教師輸入具體的學生成績只能在設定的范圍內,具體是這樣實現的:
如給每個學生設定每個學期最多課程數為 12,一般也不會超過 12.那么甲班第 1學期課程索引為x,成績應放入的字段為:前 n字段 +x字段內.
甲班第 2學期課程索引為 y,成績應放入的字段為:前 n字段 +12+y.
甲班第 3學期課程索引為 z成績應放入的字段為:前 n字段 +12+12+z.
第 4,第 5,第 6,第 7,第 8…學期可以依此類推.
輸出某個人或者某個班級成績時,如第一學期成績,先從加權表中讀取課名,依次顯示,然后定位依次讀取字段即可完成成績信息顯示.

系統使用的數據庫為 microsoft sql server 2000,安全級別達到 C2級,SQL SERVER是伸縮、可靠、易用的數據庫,在支持網絡分布式開發方面有明顯的優勢.
訪問界面采用了 session認證,且定期銷毀 session對象,超時需重新登錄.密碼采用 md5,將數據庫中含有密碼部分進行加密.現在網絡中使用比較頻繁的是 md5,md5的全稱是 message-digest algorithm 5(信息 -摘要算法),在 90年代初由 mit laboratory for computer science和 rsa data security inc的ronald l.rivest開發出來 ,經 md2、md3和 md4發展而來.它的作用是讓大容量信息在用數字簽名軟件簽署私人密匙前被“壓縮”成一種保密的格式 (就是把一個任意長度的字節串變換成一定長的大整數).并且,由于 md5算法的使用不需要支付任何版權費用,所以在一般的情況下 (非絕密應用領域.但即便是應用在絕密領域內,md5也不失為一種非常優秀的中間技術),md5怎么都應該算得上是非常安全的了.MD5是沒有反向算法,不能解密的.人家即使知道經加密后存在數據庫里的像亂碼一樣的密碼,他也沒辦法知道原始密碼了.
本文介紹了一個基于類字段實現成績管理的方法,使用本方法進行成績管理可以大大提高系統的執行效率,減少成績管理的復雜度.本人覺得本觀點方法對現今管理信息系統是有一定的幫助的,如在醫院的病人管理信息系統中,給病人記錄時,可能有些項病因不能確定,但可以先錄入數據,在以后確定病因后,給出確定病因字段名加權,就可以清楚地顯示出所需要的信息.
[1]浙江容博教育科技有限公司——浙江省中小學學籍管理系統[EB/OL].www.cnsyzx.com/syzx2006/soft/Show-Soft.asp,2006-12-08.
[2]滕沖.基于B/S結構的醫學院學生成績管理系統的設計與實現[D].武漢:華中師范大學學位論文,2001.
TP311.3
A
1008-4681(2010)02-0062-03
2010-03-04;
2010-03-20
席先杰 (1972-),男,湖南常德人,臺州職業技術學院計算機系講師,碩士.研究方向:軟件設計、數據庫應用.
(責任編校:簡子)