彭 莉 喬銀銀 王 亮
(武漢工程職業(yè)技術(shù)學(xué)院 湖北 武漢:430080)
目前高校學(xué)生考勤記錄一般是教師通過學(xué)生管理手冊來記錄的,每次上課的時(shí)候教師以點(diǎn)名的方式依次手寫記錄學(xué)生到勤或缺勤情況,學(xué)期末根據(jù)每位學(xué)生的出勤情況算出平時(shí)成績。通常計(jì)算平時(shí)出勤成績需要一整天,并且還要逐一錄入到學(xué)生管理手冊上。這樣不僅耗費(fèi)課堂和期末統(tǒng)計(jì)時(shí)間,而且很難做到公平公正,因?yàn)椴皇敲看紊险n都有空余的時(shí)間來點(diǎn)名。
隨著數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)使用,基于.NET框架的三層結(jié)構(gòu)學(xué)生考勤系統(tǒng)可以替代教師完成考勤記錄工作,并最終生成統(tǒng)計(jì)報(bào)表,便于教師和輔導(dǎo)員隨時(shí)掌握全班的出勤情況,確保教學(xué)的正常秩序。
三層結(jié)構(gòu)得到廣泛使用是因?yàn)樗軌蚴箲?yīng)用系統(tǒng)結(jié)構(gòu)清晰、分工明確,便于后期擴(kuò)展和維護(hù)。分別包括表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層,如圖1所示。各層的作用如下:
(1)表現(xiàn)層:接收用戶提出的請求,以網(wǎng)頁的方式呈現(xiàn)給用戶,用戶通過表單提交或返回?cái)?shù)據(jù),實(shí)現(xiàn)系統(tǒng)和用戶之間數(shù)據(jù)的相互訪問。
(2)業(yè)務(wù)邏輯層:接收用戶通過瀏覽器發(fā)出的請求,然后將請求傳遞給數(shù)據(jù)訪問層,數(shù)據(jù)訪問層處理后返回結(jié)果給客戶端瀏覽器。業(yè)務(wù)邏輯層是實(shí)現(xiàn)表示層和數(shù)據(jù)訪問層之間信息傳遞的橋梁。
(3)數(shù)據(jù)訪問層:對(duì)數(shù)據(jù)進(jìn)行操作,如添加、修改和刪除等。主要為表示層或業(yè)務(wù)邏輯層提供數(shù)據(jù)服務(wù)。
圖1 三層結(jié)構(gòu)圖
RFID(Radio Frequency Identification),稱為射頻識(shí)別技術(shù),通過射頻信號(hào)對(duì)特定目標(biāo)進(jìn)行識(shí)別并讀寫相關(guān)數(shù)據(jù)。RFID具有讀寫方便、易于操控、識(shí)別速度快、使用壽命長、可以應(yīng)用于粉塵、油污和放射性環(huán)境等優(yōu)點(diǎn)。由于它的特點(diǎn),其產(chǎn)品市場應(yīng)用廣泛,如公交卡、食堂餐卡、門禁卡、銀行卡等,用于快速采集目標(biāo)對(duì)象的信息。
RFID系統(tǒng)主要由應(yīng)答器、閱讀器和應(yīng)用軟件系統(tǒng)三部分組成,如圖2所示。應(yīng)答器一般使用標(biāo)簽,每個(gè)標(biāo)簽具有唯一的電子編碼,附著在物體上標(biāo)識(shí)目標(biāo)對(duì)象。閱讀器是讀取或?qū)懭霕?biāo)簽信息的設(shè)備。應(yīng)用軟件系統(tǒng)將收集的數(shù)據(jù)進(jìn)行處理,并為人們所使用。
圖2 RFID系統(tǒng)結(jié)構(gòu)圖
工作原理:閱讀器發(fā)射特定頻率的電波,標(biāo)簽進(jìn)入磁場后,接收解讀器發(fā)出的射頻信號(hào),憑借感應(yīng)電流所獲得的能量發(fā)送出存儲(chǔ)在芯片中的數(shù)據(jù)信息,閱讀器依序接收解讀數(shù)據(jù),傳送給主機(jī)并由應(yīng)用程序做相應(yīng)的處理,從而自動(dòng)識(shí)別目標(biāo)對(duì)象。
根據(jù)學(xué)??记诘囊?,將學(xué)生考勤系統(tǒng)分為三個(gè)模塊:(1)考勤系統(tǒng)前端;(2)考勤系統(tǒng)管理;(3)硬件設(shè)備管理;系統(tǒng)功能架構(gòu)如圖3所示。各模塊功能如下:
考勤系統(tǒng)前端:實(shí)現(xiàn)學(xué)生貼卡并由系統(tǒng)根據(jù)預(yù)設(shè)參數(shù)做考勤狀態(tài)判斷,狀態(tài)有三種(到勤、遲到、曠課)。
考勤系統(tǒng)管理:主要實(shí)現(xiàn)基于RABC(Role-Based Acess Control)角色權(quán)限管理、學(xué)生學(xué)籍管理、班級(jí)信息管理、考勤管理以及系統(tǒng)設(shè)置等。
硬件設(shè)備管理:用于實(shí)現(xiàn)RFID,便于學(xué)生貼卡。
圖3 系統(tǒng)功能架構(gòu)圖
本系統(tǒng)創(chuàng)建的表有十二個(gè),表之間的關(guān)系如圖4所示。其中,按照數(shù)據(jù)庫表的作用分為兩部分:
圖4 系統(tǒng)數(shù)據(jù)庫表的關(guān)系圖
(1)系統(tǒng)權(quán)限管理。使用 RBAC(Role-Based Access Control),即基于角色的權(quán)限控制。為了實(shí)現(xiàn)RBAC,在數(shù)據(jù)庫中建立了5張表,包括SYS_USER_ROLE(用戶表)、SYS_ROLE(角色表)、SYS_M(jìn)ODULE(模塊表)、SYS_USER_ROL(用戶角色表)和SYS_ROLE_M(jìn)ODULE(角色權(quán)限表)。用戶表保存系統(tǒng)用戶的基本信息。角色表保存的是用戶所能扮演的角色信息,如教師、學(xué)生、管理員等。模塊表保存的是系統(tǒng)模塊信息,該表是一個(gè)樹狀結(jié)構(gòu)的表,如圖5所示。例如一個(gè)窗體下有許多按鈕,窗體和按鈕形成父子關(guān)系,按鈕上級(jí)模塊編號(hào)就是窗體的模塊編號(hào)。用戶角色表反映了一個(gè)系統(tǒng)用戶扮演了什么角色。角色權(quán)限表反映了一個(gè)角色有哪些模塊的權(quán)限,如教師和學(xué)生可以分配不同的模塊權(quán)限等等。
當(dāng)一個(gè)用戶登錄系統(tǒng),首先查看該用戶扮演了什么角色,然后查找該用戶扮演的角色具有哪些模塊的權(quán)限,得到用戶擁有的權(quán)限模塊后,就可以通過反射技術(shù),將這些模塊動(dòng)態(tài)的添加到系統(tǒng)菜單控件,展示給用戶,也就是說一個(gè)用戶扮演什么樣的角色就決定了該用戶登錄時(shí)可以看到哪些模塊。
圖5 模塊表的樹狀結(jié)構(gòu)圖
(2)學(xué)生考勤管理。主要包括StuInfo(學(xué)生信息表)、ClassInfo(班級(jí)信息表)、ClassUserInfo(班級(jí)表與系統(tǒng)用戶對(duì)應(yīng)表)、Kqin(考勤信息表)、KqinJiLu(考勤時(shí)間設(shè)置表)、KqinType(考勤類型表)和KqinReport(考勤報(bào)表)。學(xué)生隸屬于某個(gè)班級(jí),通過貼卡獲得到課時(shí)間,以此判斷考勤狀態(tài),并進(jìn)行統(tǒng)計(jì),最后生成班級(jí)考勤報(bào)表,如圖6所示。
以學(xué)生考勤系統(tǒng)為例,使用抽象工廠模式、反射機(jī)制和泛型來實(shí)現(xiàn)數(shù)據(jù)訪問層。
圖6 考勤系統(tǒng)報(bào)表統(tǒng)計(jì)圖
抽象工廠模式,可以向客戶端提供一個(gè)接口,使客戶端在不必指定產(chǎn)品的具體情況下,創(chuàng)建多個(gè)產(chǎn)品族中的產(chǎn)品對(duì)象。例如在程序中定義一個(gè)類,類會(huì)有很多方法,程序員使用此類的時(shí)候只需知道調(diào)用哪個(gè)方法得到哪個(gè)具體對(duì)象,而無須知道如何獲得。反射機(jī)制,即對(duì)于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法;對(duì)于任意一個(gè)對(duì)象,都能夠調(diào)用它的任意一個(gè)方法和屬性,從而動(dòng)態(tài)的調(diào)用對(duì)象的方法,創(chuàng)建對(duì)象實(shí)例。泛型,通過參數(shù)化類型來實(shí)現(xiàn)在同一代碼上操作多種數(shù)據(jù)類型,利用“參數(shù)化類型”將類型抽象化,實(shí)現(xiàn)靈活的復(fù)用。
(1)創(chuàng)建數(shù)據(jù)訪問層對(duì)象,通過在工廠(DALFactory)中用方法提供數(shù)據(jù)訪問對(duì)象的創(chuàng)建,代碼如下:
(2)實(shí)現(xiàn)業(yè)務(wù)邏輯層調(diào)用數(shù)據(jù)訪問層方法,關(guān)鍵代碼如下:
使用工廠模式易于交換產(chǎn)品系列,例如若要更換數(shù)據(jù)庫,SQL Server、Access或者Oracle三者之一,只需在App.config的配置文件中稍作修改,便可完成數(shù)據(jù)庫的更換。
基于.NET框架的三層結(jié)構(gòu)學(xué)生考勤系統(tǒng)的開發(fā)和使用,可以實(shí)現(xiàn)校園辦公自動(dòng)化,提高教師的工作效率。但是仍然存在不足,如能否將校園一卡通與考勤卡合二為一,同時(shí)具備餐卡、考勤卡、上網(wǎng)卡等多種功能,有效推動(dòng)高校學(xué)生教學(xué)管理規(guī)范化和系統(tǒng)化,切實(shí)為學(xué)生服務(wù)。
[1]俞露.基于ASP.NET學(xué)生成績管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù):學(xué)術(shù)交流,2013,9(2):679-682,685.
[2]樊利軍,王懷群,魏昊.基于RFID的學(xué)生考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].北京工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2013,12(2):10-13.
[3]劉萍.基于簡單工廠模式的三層架構(gòu)系統(tǒng)設(shè)計(jì)及應(yīng)用[J].中國科技信息,2013,(14):107-107,111.
[4]向雄.ASP.NET用戶權(quán)限管理研究[J].電腦編程技巧與維護(hù),2010,(10):35-38.
[5]張秋生,張星云.在.NET框架下開發(fā)三層結(jié)構(gòu)數(shù)據(jù)庫應(yīng)用程序[J].電腦編程技巧與維護(hù),2009,(22):59-60,87.