趙衛(wèi)東
自主招生是指由高校自主確定入學標準、組織入學考試、實施招生錄取的招生模式,是高校招生錄取工作改革的重要環(huán)節(jié)。這種招生方式更加靈活和人性化,但是由于數(shù)據(jù)量大、時間緊等問題,若采用傳統(tǒng)方法進行,即考生填寫報名表→學校審核考生信息→通知考試時間和地點→準考證的發(fā)放→考試成績的查詢及錄取情況,操作流程非常繁瑣且易出錯。因此,開發(fā)一個安全、高效的自主招生報名錄取系統(tǒng)是每個高校亟待考慮和解決的問題。
一個完善、健全的高校自主招生報名錄取系統(tǒng)不僅可以提高工作效率、減輕管理工作上的負荷,同時還能夠提高招生管理工作的透明度,實現(xiàn)招生數(shù)據(jù)的規(guī)范化、自動化管理[1]。本文著眼于高校教學管理信息化建設,從自主招生的網(wǎng)上報名、信息審核、考試安排和錄取查詢等方面工作出發(fā),設計并實現(xiàn)了基于B/S模式的高校自主招生報名錄取系統(tǒng)。
由于自主招生的特殊性,高校自主招生報名錄取系統(tǒng)采用B/S模式進行設計,以互聯(lián)網(wǎng)為平臺,使用Web瀏覽器即可進入系統(tǒng)登錄操作。這樣,既方便了考生和考生家長的數(shù)據(jù)輸入,又方便了學校招生管理部門及時獲取信息并做出相應決策。
采用B/S設計模式,系統(tǒng)的表現(xiàn)層交給Web瀏覽器,主要完成考生和后臺數(shù)據(jù)的交互及查詢結果的輸出功能;系統(tǒng)的業(yè)務邏輯層主要利用服務器完成客戶端的驗證、計算、業(yè)務規(guī)則等功能;系統(tǒng)數(shù)據(jù)訪問層主要處理招生數(shù)據(jù)的增、刪、改、查等功能。
根據(jù)高校自主招生報名錄取系統(tǒng)的實際需求,系統(tǒng)用戶角色主要有家長學生端、系部管理員和學校管理員三類用戶,他們都具有不同的操作權限和操作內容。
家長學生端主要功能有:
1.報名信息瀏覽,瀏覽招生通知、操作指南等信息;
2.用戶注冊,根據(jù)考生的身份證號、姓名、監(jiān)護人手機號碼進行注冊,并以監(jiān)護人手機號碼作為登入密碼;
3.填寫資料,注冊完成后登入系統(tǒng)填寫孩子的詳細信息,填寫完成后需進行確認,確認保存后無法再修改;
4.選擇報名專業(yè),完成后,自動產(chǎn)生報名序號;
5.錄取結果查詢,該模塊提供了強大、靈活的查詢功能,如自定義查詢、按時間查詢、組合條件查詢等;
6.錄取補報,對于第一次報考沒有錄取的考生,可以關注學校發(fā)布的補錄信息,登錄系統(tǒng)進行錄取補報信息的填寫。
系部管理員主要功能有:
1.擬定招生計劃提交給學校審查;
2.對預錄取學生名單進行審核和管理;
3.對填報系部專業(yè)的家長學生用戶進行管理和信息維護。
學校端主要功能有:
1.發(fā)布招生計劃和招生公告;
2.對家長或學生提交的網(wǎng)上報名資料等信息進行核對、確認,確保信息準確無誤;
3.錄取工作完成后,學??蓪浫〗Y果信息在網(wǎng)站上進行公布;
4.查詢報名登記、確認、錄取等詳細信息,可以對信息進行報表統(tǒng)計、數(shù)據(jù)導出等。
系統(tǒng)流程圖是描述系統(tǒng)物理模型的工具,它常用來描述信息在系統(tǒng)內部的處理過程,可以用簡單的圖形表示輸入、處理、輸出之間的關系,說明信息在系統(tǒng)內部的流動、轉換、存儲和處理的情況[2,3]。報名錄取系統(tǒng)流程圖如圖1所示。
圖1 報名錄取系統(tǒng)流程圖
高校自主招生報名錄取系統(tǒng)使用MySQL數(shù)據(jù)庫,嚴格遵循各項設計要求和規(guī)范進行設計。對于數(shù)據(jù)庫結構的變動,開發(fā)小組成員全部采用SQL腳本執(zhí)行,按照規(guī)定,編寫腳本時必須添加作者、創(chuàng)建時間、描述等信息。經(jīng)過概念結構設計、邏輯結構設計和物理結構設計三個階段后,設計出了符合第三范式(3NF)要求的系統(tǒng)數(shù)據(jù)庫。
由于高校自主招生報名錄取系統(tǒng)數(shù)據(jù)對象多且關系復雜,共設計了十多張數(shù)據(jù)表,其中主要的數(shù)據(jù)表有:stu_Info(學生報名資料)、stu_Exam_Result(學生考試成績)、docu_Bulletin(招生文件公告)、pro_Approval(流程審批意見表)、enro_Plan(招生計劃)、plan_Detail(招生計劃目標詳細)、enro_Bulletin(學校招生公告)、enro_Address(學校招生地址配置)。數(shù)據(jù)表關系模型圖如圖2所示。
數(shù)據(jù)統(tǒng)計是自主招生報名錄取系統(tǒng)后臺管理的最重要的功能之一,它承擔著對各專業(yè)報名情況進行統(tǒng)計匯總的任務。通過此功能可以快速實現(xiàn)對報考考生基本情況、文理科報考人數(shù)比例、各專業(yè)報考成績匯總排名和考生志愿填寫情況進行分類統(tǒng)計,提高招生工作人員的工作效率。
為減輕系統(tǒng)開放期間并發(fā)操作壓力,提高程序代碼的可維護性,系統(tǒng)使用存儲過程來實現(xiàn)數(shù)據(jù)計算及統(tǒng)計工作。部分存儲過程的代碼如下所示:
1.按專業(yè)分類統(tǒng)計報考成績排名存儲過程
CREATE OR REPLACE PROCEDUREgetStuInfo
AS
BEGIN
select stuInfo.name,stuInfo.sex,stuInfo.phone,stuInfo.school,stuScore.totalScore from stuInfo,stuScore where stuInfo.stuIDNo= stuScore.stuIDNo
group by stuInfo.stuSpecialty
order bystuScore.totalScore;
END;
2.按專業(yè)分類統(tǒng)計男女生志愿填報情況的存儲過程
CREATE OR REPLACE PROCEDUREgetVoluntaryInfo()
AS
圖2 數(shù)據(jù)表關系模型圖
BEGIN
selectspecialtyName,count(*) as '報名人數(shù)',sex from stuInfo
group byspecialtyName with rollup
END;
為了確??忌鷶?shù)據(jù)輸入的有效性和合法性,需要對考生填寫的關鍵性數(shù)據(jù)進行校驗。數(shù)據(jù)合法性驗證既是為了確保輸入數(shù)據(jù)的正確性和有效性,也是為了避免惡意用戶進行非法數(shù)據(jù)輸入攻擊系統(tǒng),確保系統(tǒng)的安全性[4]。
正則表達式(regular expression)通常用來檢索、替換符合某種規(guī)則的文本,可以用于數(shù)據(jù)有效性驗證[5]。它的功能十分強大,又非常簡潔。自主招生報名錄取系統(tǒng)采用JS正則表達式對考生的姓名、密碼、手機號碼、身份證號碼、郵箱等關鍵信息進行驗證,既保證了考生數(shù)據(jù)輸入的正確性和合法性,又提高了系統(tǒng)的運行效率。系統(tǒng)中身份證號碼和考生號JS驗證代碼如下。
1.身份證號碼驗證
var yourCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"內蒙古",21:"遼寧",22:"吉林",23:"黑龍江",31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北",43:"湖南",44:"廣東",45:"廣西",46:"海南",50:"重慶",51:"四川",52:"貴州",53:"云南",54:"西藏",61:"陜西",62:"甘肅",63:"青海",64:"寧夏",65:"新疆",71:"臺灣",81:"香港",82:"澳門",91:"國外"}
functionisIdCard(idCard) {
var stuSum = 0;
var info = "";
if(!/^d{17}(d|x)$/i.test(idCard)) return "您的身份證號碼長度或格式填寫有誤!";
idCard = idCard.replace(/x$/i, "a");
if(yourCity[parseInt(idCard.substr(0, 2))] == null) return "您的身份證地區(qū)填寫有誤!";
stuBirthday = idCard.substr(6, 4) + "/" + Number(idCard.substr(10, 2)) + "/" + Number(idCard.substr(12, 2));
var date = new Date(stuBirthday);
if(stuBirthday != (date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + date.getDate())) return "您的身份證出生日期填寫有誤!";
for(var i = 17; i >= 0; i--) {
stuSum += (Math.pow(2, i) % 11) * parseInt(idCard.charAt(17 - i), 11);
}
if(stuSum % 11 != 1) return "您的身份證號碼填寫有誤!";
return true;
}
2.考生號驗證
functionisExamineeNum() {
var examineeNum= document.GetElementById("examineeNum").value;
var regularRule=/^1234[0-9][0-9][0-9][0-9][0-9][1,5,9]d{4}MYM/;
if(rules.test(examineeNum)){
}else{
return"您輸入的考生號有誤!";
}
return true;
}
由于系統(tǒng)業(yè)務數(shù)據(jù)涉及到學生和家長的隱私信息,系統(tǒng)在開發(fā)過程中,充分考慮了Web服務器端信息安全的重要性。因此,針對系統(tǒng)中數(shù)據(jù)的重要程度,開發(fā)小組構建了多級加密機制,如MD5不可逆數(shù)據(jù)加密算法、DES可逆數(shù)據(jù)加密算法等等。對重要業(yè)務數(shù)據(jù)實行全程加密,即存儲和傳輸時都進行了加密,保證重要數(shù)據(jù)在存儲時,不被內部其它無關人員訪問,重要數(shù)據(jù)在網(wǎng)絡傳輸時,不被外部非法人員惡意竊取。同時,用戶對數(shù)據(jù)的每一步重要操作均有操作日志記錄(例如:增加、刪除、修改等),便于在發(fā)生錯誤時,跟蹤錯誤產(chǎn)生的來源并進行修正。此外,為了確保運行安全,系統(tǒng)還增加了登錄認證、數(shù)據(jù)備份與恢復功能。
招生管理工作是每個高校最重要的工作內容之一,如果自主招生采用人工管理的方法,不僅需要投入大量的人力和物力,而且還很容易出錯[6]。為提高教學管理信息化水平,我們開發(fā)了高校自主招生報名錄取系統(tǒng),該系統(tǒng)的使用既提高了高校招生管理部門的工作效率,又規(guī)范了報考工作,同時也方便了報考考生。
本系統(tǒng)的特色主要有:
(1)B/S設計模式
B/S設計模式,不僅使系統(tǒng)開發(fā)降低了成本,共享性強,而且提高了系統(tǒng)的可擴展性和數(shù)據(jù)安全。
(2)兼具專用與通用特色
高校自主招生報名錄取系統(tǒng)開發(fā)之初主要是針對滁州職業(yè)技術學院自主招生的需求而設計的,具有一定的專用性。但由于各高校自主招生工作的共性,系統(tǒng)只要作少量修改,即可變?yōu)橥ㄓ玫母咝W灾髡猩鷪竺浫∠到y(tǒng)。