趙海峰等
摘 要: 在分析考勤系統(tǒng)需求的基礎(chǔ)上,結(jié)合實(shí)際學(xué)生考勤信息錄入與匯總的特點(diǎn),設(shè)計(jì)了基于B/S結(jié)構(gòu)的課堂考勤系統(tǒng)。應(yīng)用該系統(tǒng)可方便地進(jìn)行學(xué)生考勤信息的錄入、修改與管理,并可進(jìn)行考勤信息的自動(dòng)匯總。系統(tǒng)依據(jù)權(quán)限實(shí)現(xiàn)了角色分類(lèi),可按角色登錄及查詢(xún)具體的考勤信息,并可進(jìn)行學(xué)生考勤信息的匯總和導(dǎo)出,提高了工作效率。
關(guān)鍵詞: B/S結(jié)構(gòu); 課堂考勤系統(tǒng); 考勤信息錄入; 考勤信息匯總
中圖分類(lèi)號(hào):P209 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2015)02-29-04
Design of attendance system based on B/S structure
Zhao Haifeng, Shi Mingxiang, Meng Qingxuan, Du Juan, Zhang Chunli, Zhang Lihua
(Beijing Modern Vocational and Technical College, Beijing 101300, China)
Abstract: After analyzing the attendance system requirement, combined with the characteristics of input and summary of the student attendance information, classroom attendance system based on B/S structure is designed. Applying this system can input, modify, manage and automatically summarize the attendance information. The role classification is realized by permission, anyone can log in at any time, check, summarize and output the exact attendance information, which improves working efficiency.
Key words: B/S structure; classroom attendance system; attendance information input; attendance information summary
0 引言
采取傳統(tǒng)的手工登錄方式進(jìn)行各項(xiàng)考勤,不僅信息輸入量大,容易出現(xiàn)錯(cuò)誤,而且需任課教師每周固定時(shí)間去各系部劃學(xué)生考勤,系部再進(jìn)行人工統(tǒng)計(jì)上報(bào)學(xué)生處,這樣的統(tǒng)計(jì)方式既不方便效率又低。根據(jù)我院的需求設(shè)計(jì)了一個(gè)考勤系統(tǒng),可為教師考勤報(bào)送提供方便,而且提高考勤匯總、分析的準(zhǔn)確性,減少人工錄入可能出現(xiàn)的失誤。各相關(guān)領(lǐng)導(dǎo)及部門(mén)可根據(jù)不同角色隨時(shí)登錄及查看具體的考勤信息,效率比較高。自主開(kāi)發(fā)及構(gòu)建的考勤系統(tǒng)可在后續(xù)的維護(hù)中進(jìn)行相應(yīng)的改進(jìn)、升級(jí)、增加相應(yīng)的功能,具有很強(qiáng)的靈活性與實(shí)用性。
1 需求分析
學(xué)生課堂考勤是教師管理課堂的一種方式,在課堂教學(xué)中有著一定的作用。通過(guò)前期的調(diào)研和業(yè)務(wù)流程分析,為考勤系統(tǒng)確定了如下功能需求[1]。
1.1 角色分類(lèi)
共分為普通教師、系輔導(dǎo)員、學(xué)生處教師、系統(tǒng)管理員四個(gè)角色。
1.2 業(yè)務(wù)流程
每學(xué)期開(kāi)始時(shí),首先由系統(tǒng)管理員在系統(tǒng)中設(shè)定本學(xué)期的考勤記錄的周數(shù)與第一周開(kāi)始的日期。普通教師開(kāi)學(xué)后每周登錄系統(tǒng),可以根據(jù)所授課程名與班號(hào)找到上課班級(jí)對(duì)應(yīng)的學(xué)生,根據(jù)病假、事假、曠課、遲到四項(xiàng)對(duì)學(xué)生的考勤信息進(jìn)行錄入,并允許在每周結(jié)束后兩天以?xún)?nèi)進(jìn)行考勤信息的修改。
考勤信息每周結(jié)束后進(jìn)行自動(dòng)匯總,根據(jù)每個(gè)學(xué)生的考勤信息按照病假、事假、曠課、遲到四項(xiàng)進(jìn)行匯總,統(tǒng)計(jì)從第一周到最近一周的每位學(xué)生的病假次數(shù)、事假次數(shù)、曠課次數(shù)與遲到次數(shù),并可導(dǎo)出Excel文件格式的統(tǒng)計(jì)分析表,方便相關(guān)人員掌握各班學(xué)生考勤情況。其中,普通教師可查看所帶班級(jí)學(xué)生的考勤情況,系輔導(dǎo)員可查看本系所有班級(jí)的學(xué)生考勤情況,學(xué)生處教師可查看學(xué)院所有班級(jí)學(xué)生的考勤情況。
1.3 功能劃分
普通教師:用戶(hù)信息查看、密碼修改、所授課程考勤信息錄入、所帶班級(jí)考勤匯總信息查看、所帶班級(jí)考勤匯總信息導(dǎo)出。
系輔導(dǎo)員:用戶(hù)信息查看、密碼修改、全系所有班級(jí)考勤匯總信息查看、全系所有班級(jí)考勤匯總信息導(dǎo)出。
學(xué)生處教師:用戶(hù)信息查看、密碼修改、全院所有班級(jí)考勤匯總信息查看、全院所有班級(jí)考勤匯總信息導(dǎo)出。
系統(tǒng)管理員:用戶(hù)信息查看、密碼修改、班級(jí)信息維護(hù)、學(xué)生信息維護(hù)、教師信息維護(hù)、班主任信息維護(hù)、課程表信息維護(hù)、系統(tǒng)信息維護(hù)。
其中,所帶班級(jí)考勤匯總信息查看、所帶班級(jí)考勤匯總信息導(dǎo)出、全系所有班級(jí)考勤匯總信息查看、全系所有班級(jí)考勤匯總信息導(dǎo)出、全院所有班級(jí)考勤匯總信息查看、全院所有班級(jí)考勤匯總信息導(dǎo)出都需要系統(tǒng)每周進(jìn)行考勤信息的自動(dòng)匯總。
2 系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)層次結(jié)構(gòu)設(shè)計(jì)
對(duì)于整個(gè)系統(tǒng)而言,為了簡(jiǎn)化系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā),便于以后的維護(hù)和升級(jí),把系統(tǒng)劃分為如圖1所示的邏輯層次[2]。
展示層:按照設(shè)計(jì)好的界面進(jìn)行考勤信息填寫(xiě)、考勤匯總信息查看、考勤匯總信息導(dǎo)出、系統(tǒng)信息維護(hù)、各種相關(guān)信息維護(hù)、用戶(hù)信息查看、用戶(hù)密碼修改。
業(yè)務(wù)層:為展示層的數(shù)據(jù)展示提供支持,涉及的主要模塊有:考勤信息存儲(chǔ)、考勤信息匯總輸出、考勤信息匯總導(dǎo)出、系統(tǒng)信息存儲(chǔ)、各種相關(guān)信息存儲(chǔ)、用戶(hù)信息查詢(xún)、用戶(hù)密碼存儲(chǔ),為這些模塊提供支持,并為連接和訪問(wèn)數(shù)據(jù)庫(kù)提供支持。
關(guān)系數(shù)據(jù)庫(kù)層:按照設(shè)計(jì)好主題的數(shù)據(jù)庫(kù),對(duì)業(yè)務(wù)層提供數(shù)據(jù)支持。其中,采用考勤信息匯總操作對(duì)已經(jīng)存在的考勤信息進(jìn)行每周自動(dòng)匯總,并采用關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)本系統(tǒng)所用到的各種相關(guān)考勤信息詳細(xì)數(shù)據(jù)。
2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)設(shè)計(jì)是程序設(shè)計(jì)的基礎(chǔ),是系統(tǒng)開(kāi)發(fā)的一部分。本系統(tǒng)采用SQL Server作為數(shù)據(jù)庫(kù),根據(jù)需求分析和系統(tǒng)的功能要求,設(shè)計(jì)基于B/S結(jié)構(gòu)的考勤系統(tǒng)的數(shù)據(jù)表和字段。
2.3 系統(tǒng)功能流程設(shè)計(jì)
2.3.1 考勤信息錄入流程設(shè)計(jì)
普通教師登錄系統(tǒng)后,根據(jù)sesssion里保存的教師職工號(hào)與從系統(tǒng)信息表里讀取的學(xué)年與學(xué)期信息,從課程表里讀取對(duì)應(yīng)課程的班號(hào)、課程號(hào)與課程名,并顯示在用戶(hù)界面中。當(dāng)用戶(hù)單擊某一個(gè)課程鏈接時(shí),通過(guò)班號(hào),在學(xué)生表中讀取到對(duì)應(yīng)的學(xué)生列表并顯示在用戶(hù)界面中。根據(jù)學(xué)年、學(xué)期、周次、課程號(hào)、班號(hào),從考勤信息表中查詢(xún)對(duì)應(yīng)的學(xué)生考勤信息,如果對(duì)應(yīng)的考勤信息存在,就將其顯示在用戶(hù)界面中。用戶(hù)可以根據(jù)情況進(jìn)行考勤信息的填寫(xiě)與修改,當(dāng)單擊保存時(shí)可以將對(duì)應(yīng)的考勤信息存儲(chǔ)到考勤信息表中。
2.3.2 考勤信息匯總流程設(shè)計(jì)
最近一周考勤信息填寫(xiě)后的第五天,系統(tǒng)自動(dòng)對(duì)已經(jīng)存在的考勤信息進(jìn)行匯總。匯總時(shí)根據(jù)考勤信息表中的已經(jīng)存儲(chǔ)的信息進(jìn)行匯總,匯總后的信息存儲(chǔ)到學(xué)生表中對(duì)應(yīng)的字段中。
2.3.3 考勤信息匯總信息導(dǎo)出
當(dāng)用戶(hù)需要導(dǎo)出某一個(gè)班級(jí)的考勤匯總信息時(shí),通過(guò)傳入的班號(hào)、學(xué)年、學(xué)期系統(tǒng)從學(xué)生表中讀取從第一周到最近一周的每一位學(xué)生的考勤匯總信息,從考勤信息表中讀取最近一周每一位學(xué)生的考勤詳細(xì)信息,根據(jù)這兩方面信息生成對(duì)應(yīng)班級(jí)的考勤匯總信息。
3 系統(tǒng)實(shí)現(xiàn)
3.1 系統(tǒng)整體實(shí)現(xiàn)方式
系統(tǒng)功能模塊的開(kāi)發(fā)采取MVC模型。其中采用JSP作為表現(xiàn)層向用戶(hù)展示功能的界面或結(jié)果;Servlet作為控制器層,用于完成表現(xiàn)層和邏輯層的通信;Java Class作為邏輯層,完成功能的后臺(tái)邏輯,如:相關(guān)數(shù)據(jù)訪問(wèn)等。JavaBean作為實(shí)體類(lèi)負(fù)責(zé)在各層之間傳送數(shù)據(jù)。
3.2 考勤信息自動(dòng)匯總的實(shí)現(xiàn)
通過(guò)SQL Server2005數(shù)據(jù)庫(kù)中的SQL Server代理來(lái)實(shí)現(xiàn)考勤信息自動(dòng)匯總。SQL Server代理中的作業(yè)可以設(shè)置定時(shí)任務(wù)[3]。具體設(shè)置上,建立的作業(yè)執(zhí)行間隔為一周,在星期五執(zhí)行相應(yīng)的步驟,開(kāi)始日期為學(xué)期的第一周的星期一,執(zhí)行的步驟為:
update student
set totalsick=A1.tsick,totalabsence=A1.tabsence,
totalabsent=A1.tabsent,totallate=A1.tlate
from (select studentid, sum(sick)as tsick, sum(absence)as
tabsence, sum(absent)as tabsent, sum(late)as tlate
from attendance group by studentid)as A1,student
where A1.studentid=student.studentid
update student
set academic=B1.academic,semester=B1.semester,nw=B1.nw
from (select academic,semester,nw from systemset)as B1,student
3.3 最終實(shí)現(xiàn)的系統(tǒng)
完成系統(tǒng)的開(kāi)發(fā)與數(shù)據(jù)庫(kù)設(shè)置后,最終完成的系統(tǒng)如圖2、圖3和圖4所示。
4 關(guān)鍵技術(shù)
4.1 J2EE
本系統(tǒng)采用J2EE來(lái)完成開(kāi)發(fā)。J2EE標(biāo)準(zhǔn)主要有三種子技術(shù)標(biāo)準(zhǔn):WEB技術(shù)、EJB技術(shù)和JMS。每種技術(shù)在應(yīng)用時(shí)都涉及兩個(gè)部分:容器部分和應(yīng)用部分[5]。
Web技術(shù)中除了Jsp/Servlet技術(shù)外,還需要JavaBeans或Java Class實(shí)現(xiàn)一些功能或者包裝攜帶數(shù)據(jù),所以Web技術(shù)最初簡(jiǎn)稱(chēng)為Jsp/Servlet+JavaBeans系統(tǒng)。
4.2 jQuery
本系統(tǒng)的部分更新采用jQuery來(lái)完成。jQuery是一個(gè)優(yōu)秀的Javascript框架。通過(guò)這種方式,可以使開(kāi)發(fā)者無(wú)須理會(huì)不同瀏覽器處理DOM對(duì)象時(shí)存在的差異,而是以jQuery對(duì)象支持的屬性和方法操作DOM對(duì)象。jQuery使用戶(hù)能更方便地處理HTML documents、events、實(shí)現(xiàn)動(dòng)畫(huà)效果,并且方便地為網(wǎng)站提供AJAX交互[6]。
4.3 POI
本系統(tǒng)的EXCEL文件格式的考勤信息匯總導(dǎo)出,采用POI類(lèi)庫(kù)來(lái)實(shí)現(xiàn)。
Apache POI是Apache軟件基金會(huì)的開(kāi)放源碼函式庫(kù),POI提供API給Java程序?qū)icrosoft Office格式檔案讀/寫(xiě)功能。其中,HSSF提供讀/寫(xiě)Microsoft Excel格式檔案的功能。
5 結(jié)束語(yǔ)
本文從需求分析出發(fā),設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于B/S結(jié)構(gòu)的學(xué)生課堂考勤系統(tǒng)。它的應(yīng)用有效地提高了學(xué)生考勤管理的效率。通過(guò)測(cè)試表明達(dá)到了預(yù)期效果,節(jié)約了人力成本,便于對(duì)考勤信息進(jìn)行統(tǒng)計(jì)匯總和分析,提高了學(xué)生管理工作的質(zhì)量。對(duì)于本系統(tǒng)而言,如何能更好地與學(xué)?,F(xiàn)存的教務(wù)系統(tǒng)進(jìn)行整合將成為下一個(gè)工作重點(diǎn)。
參考文獻(xiàn):
[1] 文昕.高??记诠芾硐到y(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].南昌大學(xué),2010.
[2] 周少鵬.人力資源管理系統(tǒng)考勤管理子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京郵
電大學(xué),2007.
[3] Brian Larson.Microsoft SQL Server 2005商業(yè)智能實(shí)現(xiàn)[M].清華大
學(xué)出版社,2008.
[4] 戴朝暉,吳敏.基于MVC模式的Web管理信息系統(tǒng)分析與設(shè)計(jì)[J].中
國(guó)工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2003.4.
[5] 李剛.輕量級(jí)Java EE企業(yè)應(yīng)用實(shí)戰(zhàn)(第3版)——Struts 2+Spring
3+Hibernate整合開(kāi)發(fā)[M].電子工業(yè)出版社,2011.
[6] 李剛.瘋狂Ajax講義——Prototype/jQuery+DWR+Spring+
Hibernate整合開(kāi)發(fā)[M].電子工業(yè)出版社,2012.