楊睿賢 林瑞燕
(廣州市執(zhí)信中學(xué),廣東 廣州 510000)
廣州市執(zhí)信中學(xué)是一所開明開放自由的學(xué)校,辦學(xué)成績驕人。學(xué)校有兩棟宿舍樓,一棟女生宿舍,一棟男生宿舍。學(xué)生分為走讀和住宿,非全封閉式管理。住宿學(xué)生午休或晚休時有特殊或緊急情況的可以請公假、事假或病假。住宿生中午可以申請在教室休息,也可以在宿舍休息。目前,學(xué)生進出宿舍,采用刷卡門禁系統(tǒng)輔助管理。
1.1 門禁系統(tǒng)購入較早,功能單一,學(xué)生使用飯卡刷卡進出,門禁系統(tǒng)僅記錄學(xué)生進出時間、學(xué)生姓名、工 卡)號、門進出性質(zhì)(閘門序號和進出)。
1.2 學(xué)生是否回宿可預(yù)見性有限。除了部分提前請假的,還有部分臨時請假或缺席 身體不舒服、社團/團委/學(xué)生會/班級等臨時活動或會議、學(xué)業(yè)原因留教室午休等)。
1.3 午休階段,在宿舍開放時間內(nèi),學(xué)生可以刷卡自由進出多次。
1.4 因為卡故障、忘記帶卡等原因,造成無法刷卡的,從特殊通道進出。
1.5 宿舍大門關(guān)閉有時間要求,超過時間回到宿舍的,會予以扣分處理。午休回宿時間高中三個年級一致。晚休回宿時間,高三年級可以比高一高二年級延遲15分鐘。
2.1 門禁系統(tǒng)數(shù)據(jù)無學(xué)生年級班別、住宿房號床號,特別是遇到有重名的,難以直觀識別。
2.2 學(xué)生多次進出刷卡,其最終在宿或不在宿狀態(tài)不易判斷。
2.3 宿舍大門關(guān)閉后開始考勤,學(xué)生人數(shù)多 如男生宿舍約600人,同時學(xué)生會有走動不在寢室內(nèi)情況,如打電話,吹頭發(fā)等),考勤宿管老師少(如午休兩位宿管老師),考勤時間短(如午休13:00開始考勤,同時學(xué)生開始午休,需要盡量控制在20分鐘內(nèi),以免影響學(xué)生休息),此外,還需要提醒一些學(xué)生注意事項或?qū)W生有疑問需要溝通等等,因此,考勤必須高效又準確。然而,在宿舍大門關(guān)閉后,從系統(tǒng)導(dǎo)出的數(shù)據(jù)中要篩選和識別出最終在宿舍的學(xué)生,并進行核對和考勤,時間過于緊迫。目前使用EXCEL函數(shù)對數(shù)據(jù)進行篩選,效率低下且繁雜。因此,實際操作中仍然以人工考勤為主,門禁刷卡的功能主要體現(xiàn)在防止非住宿生進入,以及后續(xù)檢查是否有遲到現(xiàn)象。
為提高考勤效率,保證考勤準確,減少人力在考勤時間上的投入,轉(zhuǎn)而更多精力在關(guān)注學(xué)生心理情緒、溝通交流、紀律維持等方面,我們對現(xiàn)有的門禁系統(tǒng)數(shù)據(jù)進行分析,優(yōu)化設(shè)計,使門禁系統(tǒng)得以發(fā)揮更大功效。
為解決該問題,我們使用了VB6.0 編寫數(shù)據(jù)分析程序,對刷卡系統(tǒng)產(chǎn)生的數(shù)據(jù)進行分析。
3.1 使用ISAM(Indexed Sequential Access Method,索引順序訪問方法)將門禁系統(tǒng)導(dǎo)出的Excel數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中。
3.2 通過Microsoft.Jet.OLEDB.4.0 操作數(shù)據(jù)庫中的數(shù)據(jù),將進出記錄與名單比對,獲取學(xué)生最后一次通過門禁通道的時間和進出的狀態(tài),生成全體住宿生的狀態(tài)文件。
3.3 使用正則表達式對學(xué)生的狀態(tài)進行篩選,輸出狀態(tài)異常的學(xué)生 如遲到,缺勤,離開等狀態(tài))。由于高一高二和高三年級的學(xué)生回宿時間不相同,且夏季與冬季亦有可能不同,不可以對時間的判斷一刀切,如果直接編寫在程序代碼中則在后續(xù)規(guī)則修改時難以維護,因此將規(guī)則寫入數(shù)據(jù)庫中,通過正則表達式的判斷,確定學(xué)生是否違反宿舍關(guān)于出入的規(guī)定。
圖1 系統(tǒng)中使用的正則表達式規(guī)則
正則表達式最初由Ken Thompson引入計算機領(lǐng)域。作為一種字符匹配工具,正則表達式方便編輯,易于閱讀,在宿舍規(guī)則修改時可以很方便的對數(shù)據(jù)處理程序進行同步更新。同時,正則表達式減少了編程工作量,在需要增加規(guī)則和排查錯誤時均十分方便。有效提高了開發(fā)效率,降低了維護成本,在未來宿規(guī)修改時仍能快速投入使用。
圖2 處理正則表達式代碼
3.4 顯示異常情況后,本程序可將結(jié)果導(dǎo)出為Excel表格,發(fā)送到負責(zé)各樓層的宿管手上,方便核對。
圖3 程序輸出結(jié)果
Visual Basic 6.0 的控件位置通過窗口上的坐標來確定,寫出的程序大多不能自動調(diào)節(jié)控件位置,經(jīng)常會出現(xiàn)無法在低分辨率屏幕上使用或者UI被過大的字體撐破的情況,本程序通過優(yōu)化界面設(shè)計方式解決了這一問題。
在程序進入時,首先運行的代碼便是控件位置調(diào)整的代碼,通過獲取窗體大小和字體大小,自動調(diào)整控件的位置,并保存到配置文件中。窗口大小的每一次變化都會觸發(fā)控件位置的調(diào)整,以符合窗口的形狀。
VB 6.0 中是不支持動畫效果的,在本程序中,通過控制窗口不斷重繪,在不影響程序運行速度的情況下,實現(xiàn)了窗口動畫,更加優(yōu)化的程序的使用體驗。
圖4 設(shè)計流程(功能實現(xiàn)及代碼)
通過程序設(shè)計,對系統(tǒng)數(shù)據(jù)進行處理,可以直接得到各年級缺席學(xué)生名單和遲到學(xué)生名單:(1)從門禁系統(tǒng)導(dǎo)出需要的時段的刷卡數(shù)據(jù)文檔。(2)文檔拖入程序窗口,數(shù)據(jù)分析生成。從數(shù)據(jù)導(dǎo)出至數(shù)據(jù)生成,耗時不到十秒,大大緩解了考勤時間壓力。宿舍管理老師通過名單,對缺勤學(xué)生進行復(fù)核,對在宿學(xué)生進行抽對,對遲到學(xué)生進行溝通,確保學(xué)生住宿安全,提高了各項管理效率和效果。另外需要注意的是,當(dāng)學(xué)生調(diào)換床位或?qū)嬍?,退宿或者新入住時,系統(tǒng)名單需及時更新。同時由于數(shù)據(jù)對卡的依賴性,要保證人卡的一致性。
門禁采用刷卡方式,在便利性方面仍然存在一定的局限性。在實際操作過程中不可避免地出現(xiàn)學(xué)生忘記帶卡、卡故障等情況,因此,應(yīng)將刷卡模式升級為生物識別技術(shù)模式,并同時與移動信息關(guān)聯(lián),直接與宿舍管理系統(tǒng)對接,做到管理即時化和可視化。目前正在摸索的通過神經(jīng)網(wǎng)絡(luò)模型自動識別人臉并自動記錄的方案或許能夠成為未來宿舍門禁系統(tǒng)發(fā)展的方向。