席先杰
(臺州職業(yè)技術(shù)學(xué)院計算機(jī)系,浙江臺州 318000)
基于類字段的成績管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)*
席先杰
(臺州職業(yè)技術(shù)學(xué)院計算機(jī)系,浙江臺州 318000)
基于類字段的成績管理系統(tǒng)可采用 asp.net技術(shù)和 sql數(shù)據(jù)庫,且對學(xué)生成績的管理采用類字段,并通過類字段加權(quán)設(shè)計方法來實(shí)現(xiàn)成績數(shù)據(jù)的集中管理.如此來進(jìn)行成績管理,可以大大減少數(shù)據(jù)庫中表的數(shù)量和記錄的數(shù)量.
成績;成績管理;類字段
隨著網(wǎng)絡(luò)技術(shù)特別是 internet技術(shù)的普及和發(fā)展,資源的利用由傳統(tǒng)應(yīng)用轉(zhuǎn)向基于 internet/web的服務(wù)模式,因而大部分學(xué)校都應(yīng)用基于網(wǎng)絡(luò)技術(shù)和計算機(jī)信息技術(shù)的學(xué)生成績管理系統(tǒng)來進(jìn)行學(xué)生成績的管理.本人綜觀現(xiàn)已使用的大多成績管理系統(tǒng),發(fā)現(xiàn)現(xiàn)有成績管理系統(tǒng)在成績數(shù)據(jù)的管理和實(shí)現(xiàn)上存在一定的不足:成績表中數(shù)據(jù)記錄眾多,系統(tǒng)的查詢速度不快,效率不高;或成績數(shù)據(jù)表個數(shù)眾多,系統(tǒng)管理復(fù)雜[1].針對成績管理系統(tǒng)的不足,本文提出了基于類字段的成績管理系統(tǒng),從而可以輕松地實(shí)現(xiàn)成績數(shù)據(jù)的管理與查詢.
系統(tǒng)采用 B/S(Browse/Server,瀏覽器 /服務(wù)器)[2]方式的網(wǎng)絡(luò)結(jié)構(gòu),在客戶端不需要開發(fā)任何用戶界面,而統(tǒng)一采用 web瀏覽器,通過 web瀏覽器向 web服務(wù)器提出請求,由 web服務(wù)器對數(shù)據(jù)庫進(jìn)行操作,并將結(jié)果逐級傳回客戶端.
在B/S體系構(gòu)系統(tǒng)中,用戶通過瀏覽器向分布在網(wǎng)絡(luò)上的服務(wù)器發(fā)出請求,服務(wù)器對瀏覽器的請求進(jìn)行處理,將用戶所需信息返回到瀏覽器,B/S結(jié)構(gòu)簡化了客戶機(jī)的工作,客戶機(jī)上只需配置少量的客戶端軟件,服務(wù)器將擔(dān)負(fù)更多的工作,對數(shù)據(jù)庫的訪問各應(yīng)用程序的執(zhí)行在服務(wù)器上完成.而其余如數(shù)據(jù)請求、加工,結(jié)果返回以及動態(tài)網(wǎng)頁的生成等工作全部由 web服務(wù)器完成.
系統(tǒng)的組成功能 (如圖 1所示):
圖1 教務(wù)成績管理分析系統(tǒng)功能圖
各模塊主要功能如下:
(1)學(xué)生管理模塊主要完成學(xué)生基本信息 (班級、學(xué)號、姓名、專業(yè)…個人系統(tǒng)登錄用戶名、密碼等)的錄入,修改,刪除,班級學(xué)生,專業(yè)學(xué)生的統(tǒng)計;
(2)教師管理模塊主要完成教師其本信息 (姓名,性別、專業(yè)、…個人系統(tǒng)登錄用戶名、密碼等),以及教師賬號的開啟與關(guān)閉;
(3)班級管理管理模塊,主要完成班級的其本信息數(shù)據(jù),班級入學(xué)年分,專業(yè),班級人數(shù)、班級名稱、等信息的錄入,修改,刪除管理;
(4)成績管理模塊,學(xué)生和班級成績的查詢,不及格課程的查詢,成績總分排名;
(5)班級課程管理模塊設(shè)置班級的每個學(xué)期的課程,任課教師,周課時;
(6)數(shù)據(jù)的輸出和上報模塊將需要上報的數(shù)據(jù)打印,形成書面數(shù)據(jù)存檔和管理;
(7)教師課程成績的輸入模塊,教師登錄系統(tǒng)后,選擇本個所任教的班級和課程,系統(tǒng)會自動給出相應(yīng)班級的學(xué)生,教師只要輸入相應(yīng)有成績,提交后成績就會保存在系統(tǒng)中;
(8)教師課程成績,班級課程成績查詢模塊,主要實(shí)現(xiàn)教師對本人所任課程成績的查詢,班級課程成績查詢;
(9)學(xué)生個人信息查詢模塊,主要完成對學(xué)生本人在校期間,所有學(xué)期,所有課程成績的查詢,本系統(tǒng)只要學(xué)生個人登錄系統(tǒng)后,就后將個人所有課程成績顯現(xiàn)出來,且是分學(xué)期形式,如果只有一個學(xué)期,則只顯示一個學(xué)期成績.
本系統(tǒng)與現(xiàn)有學(xué)生成績管理系統(tǒng)的最大不同點(diǎn)是,在現(xiàn)有成績管理系統(tǒng)中,主要采用如下兩種方式:
一是采用定字段名法來進(jìn)行,即在管理成績時,對每個班級都用一個表來進(jìn)行,如甲班有 (語文、計算機(jī)、物理、數(shù)據(jù)結(jié)構(gòu)),建立表時,字段名就為語文、計算機(jī)、物理、數(shù)據(jù)結(jié)構(gòu),且每個學(xué)期一個表,這樣,就會造成數(shù)據(jù)庫中表的數(shù)量相當(dāng)龐大.
如一個一般學(xué)校有 60個班級,每個班級為 6個學(xué)期,每個學(xué)期建一個表,那么數(shù)據(jù)庫僅成績表的數(shù)量就應(yīng) =60*6=360,隨著時間的增長,數(shù)據(jù)庫中具體成績表的數(shù)量是相當(dāng)龐大.
二是采如簡單字段當(dāng),如,用于保存學(xué)生成績信息,包含 stud-code,course-code,exam-code,sc ore四個字段,分別表示學(xué)生編號、課程編號、考試代碼和考試成績,其中以 stud-code,course code和 exam-code字段為主鍵,這樣的形式,這樣,就會造成數(shù)據(jù)庫成績表記錄過多.
如一上學(xué)校有 3000名學(xué)生,每個學(xué)生在校期間有近 50門程程,如采用這樣的形式,那數(shù)據(jù)庫成績表中記錄數(shù)就應(yīng) =3000*50,隨著時間的推移,數(shù)據(jù)庫的成績表中的記錄很多,很容易達(dá)到表允許記錄的限制,且記錄過多,就會造成系統(tǒng)查詢時間過長,降低系統(tǒng)的工作效率.而本系統(tǒng)采用的是類字段、字段加權(quán)法,來實(shí)現(xiàn)成績的管理.
具體是這樣,在學(xué)生成績管理表,每個同學(xué)所有成績只占一條紀(jì)錄,且所有學(xué)生的成績數(shù)據(jù)都在同一個表中,對于成績的讀取,采用外加權(quán)值法來進(jìn)行,即另用一加權(quán)字表來增加班級課程名表 (有班級名,學(xué)期名,課程名,課程索引號字段),如班級甲第一學(xué)期課程 (語文、計算機(jī)、物理、數(shù)據(jù)結(jié)構(gòu)),設(shè)定語文為 1,計算機(jī)為 2,物理為 3,數(shù)據(jù)結(jié)構(gòu)為 4,這樣可以大縮小成績表中紀(jì)錄的個數(shù)和數(shù)據(jù)庫中具體成績表數(shù)量,提高系統(tǒng)效率.如 60個班級 3000人的學(xué)校,進(jìn)行成績管理,成績表中記錄個數(shù)為3000個,是簡單字段的 50分之一,數(shù)據(jù)庫中成績表個 1,僅增加一加權(quán)字段表來進(jìn)行字段標(biāo)題顯示,是定字字段名的法表的個數(shù)的 180分之一,所以可以大大提高系統(tǒng)的效率.且加權(quán)字字段表中記錄的個數(shù)僅為班級數(shù)與班級課程數(shù)的乘積,乘積為 50*60=3000,與成績表的數(shù)據(jù)相當(dāng).所以可以大大提高系統(tǒng)的效率.
采用類字段及字段加權(quán)實(shí)現(xiàn)成績管理的方法,可以大大減少系統(tǒng)數(shù)據(jù)庫成績數(shù)據(jù)表的數(shù)量或減少系統(tǒng)數(shù)據(jù)庫成績數(shù)據(jù)表中記錄的數(shù)量,采用本文所提方法進(jìn)行管理與現(xiàn)有成績管理系統(tǒng)方法比較.
10000同學(xué),300個班級,每個班級大約 50門課程,采用簡單字段成績數(shù)據(jù)表記錄數(shù)對比.
表1 與簡單字段比較
同時采用定字段名,按班級學(xué)期建立成績表,成績表數(shù)對比.
表2 與定字段名相比較
由于在系統(tǒng)成績表中成績數(shù)據(jù)的字段名是不定的,但輸入具體數(shù)據(jù)前,由管理員給字段名標(biāo)題值設(shè)定,設(shè)定后,教師輸入具體的學(xué)生成績只能在設(shè)定的范圍內(nèi),具體是這樣實(shí)現(xiàn)的:
如給每個學(xué)生設(shè)定每個學(xué)期最多課程數(shù)為 12,一般也不會超過 12.那么甲班第 1學(xué)期課程索引為x,成績應(yīng)放入的字段為:前 n字段 +x字段內(nèi).
甲班第 2學(xué)期課程索引為 y,成績應(yīng)放入的字段為:前 n字段 +12+y.
甲班第 3學(xué)期課程索引為 z成績應(yīng)放入的字段為:前 n字段 +12+12+z.
第 4,第 5,第 6,第 7,第 8…學(xué)期可以依此類推.
輸出某個人或者某個班級成績時,如第一學(xué)期成績,先從加權(quán)表中讀取課名,依次顯示,然后定位依次讀取字段即可完成成績信息顯示.
系統(tǒng)使用的數(shù)據(jù)庫為 microsoft sql server 2000,安全級別達(dá)到 C2級,SQL SERVER是伸縮、可靠、易用的數(shù)據(jù)庫,在支持網(wǎng)絡(luò)分布式開發(fā)方面有明顯的優(yōu)勢.
訪問界面采用了 session認(rèn)證,且定期銷毀 session對象,超時需重新登錄.密碼采用 md5,將數(shù)據(jù)庫中含有密碼部分進(jìn)行加密.現(xiàn)在網(wǎng)絡(luò)中使用比較頻繁的是 md5,md5的全稱是 message-digest algorithm 5(信息 -摘要算法),在 90年代初由 mit laboratory for computer science和 rsa data security inc的ronald l.rivest開發(fā)出來 ,經(jīng) md2、md3和 md4發(fā)展而來.它的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密匙前被“壓縮”成一種保密的格式 (就是把一個任意長度的字節(jié)串變換成一定長的大整數(shù)).并且,由于 md5算法的使用不需要支付任何版權(quán)費(fèi)用,所以在一般的情況下 (非絕密應(yīng)用領(lǐng)域.但即便是應(yīng)用在絕密領(lǐng)域內(nèi),md5也不失為一種非常優(yōu)秀的中間技術(shù)),md5怎么都應(yīng)該算得上是非常安全的了.MD5是沒有反向算法,不能解密的.人家即使知道經(jīng)加密后存在數(shù)據(jù)庫里的像亂碼一樣的密碼,他也沒辦法知道原始密碼了.
本文介紹了一個基于類字段實(shí)現(xiàn)成績管理的方法,使用本方法進(jìn)行成績管理可以大大提高系統(tǒng)的執(zhí)行效率,減少成績管理的復(fù)雜度.本人覺得本觀點(diǎn)方法對現(xiàn)今管理信息系統(tǒng)是有一定的幫助的,如在醫(yī)院的病人管理信息系統(tǒng)中,給病人記錄時,可能有些項(xiàng)病因不能確定,但可以先錄入數(shù)據(jù),在以后確定病因后,給出確定病因字段名加權(quán),就可以清楚地顯示出所需要的信息.
[1]浙江容博教育科技有限公司——浙江省中小學(xué)學(xué)籍管理系統(tǒng)[EB/OL].www.cnsyzx.com/syzx2006/soft/Show-Soft.asp,2006-12-08.
[2]滕沖.基于B/S結(jié)構(gòu)的醫(yī)學(xué)院學(xué)生成績管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].武漢:華中師范大學(xué)學(xué)位論文,2001.
TP311.3
A
1008-4681(2010)02-0062-03
2010-03-04;
2010-03-20
席先杰 (1972-),男,湖南常德人,臺州職業(yè)技術(shù)學(xué)院計算機(jī)系講師,碩士.研究方向:軟件設(shè)計、數(shù)據(jù)庫應(yīng)用.
(責(zé)任編校:簡子)