譚武
(廣東省商業職業技術學校,廣東 廣州 510360)
基于Web的考務管理系統的設計與實現
譚武
(廣東省商業職業技術學校,廣東 廣州 510360)
隨著教學管理模式的改革與發展,以及學校辦學規模的逐漸擴大,考務管理工作的復雜度和難度都在大幅度地提高,如何高效、無誤地完成考務工作,給考務工作者留下了一個很大的難題。本文提出了人工與自動相結合的考場編排算法,并采用SSH框架與Ajax技術設計并實現了基于Web的網絡化、智能化的考務管理系統。
考務管理;考場編排;算法;SSH框架;Ajax技術
隨著教學管理模式的改革與發展,以及學校辦學規模的逐漸擴大,考務管理工作的復雜度和難度都在大幅度的提高,如何高效、無誤地完成考務工作,給考務工作者留下了一個很大的難題。
目前大部分學校的考務管理工作還是停留在人工操作上,考場編排容易出現漏排、多排和沖突等情況。盡管有一部分學校已經啟用了信息化的考務管理系統,但這些系統往往存在著諸多不足,主要表現在:系統缺少自動安排考試的功能,考試安排的主要工作還是要靠人工完成;系統缺少檢驗安排結果的功能;系統的操作極其繁瑣,相關信息的提示不足,安排考試時仍需要翻查各種文件資料和做各種標記。
正是由于人工安排的困難和現有系統存在的諸多不足,開發一個智能化的考務管理系統是非常有必要的。
學校的考試類型可分為兩大類:第一類是學期教學計劃內考試,主要以期末考試、學科補考的形式出現,由學校自行組織;第二類是國家、省、市級的統一考試,如全國大學生英語四、六級考試,省級或國家級計算機等級考試等,這類考試一般是校外組織、校內實施,[1]而本系統的設計主要是針對前者。
考務管理系統的主要功能是實現學校的考務管理。該系統分為四個模塊:用戶管理模塊、考試數據管理模塊、考場編排模塊和查詢打印模塊。用戶管理模塊的功能主要是添加、刪除系統的用戶,并設置系統用戶的權限。考試數據管理模塊是考務管理系統的基礎模塊。該模塊的功能是管理各種用于編排考場的信息,主要包括教學計劃、科目、班級、課室、考試時間、試卷、監考員等。該模塊又可以分為教學計劃管理、科目管理、班級管理、課室管理、考試時間管理和監考員管理等子模塊。考場編排包括自動編排和人工編排。自動編排:系統根據考試的基本信息,自動完成所有考試科目的考試安排工作,包括安排考試時間、考試班級、考場、監考員等,并自動完成校對工作。人工編排:考務員根據考務管理系統提供的考試基本信息的提示信息,安排每一個考試科目的考試時間、考試班級、考場、監考員等,并自動完成校對工作。查詢打印模塊的功能是查詢考試、考場信息和打印考場安排的各種信息。考務管理系統的功能結構如圖1所示。

傳統的開發模式,由于開發出來的Web應用系統結構模糊不清,可擴展性差,無法重用,而且系統難于維護和升級,已被廣大開發者所遺棄。J2EE是一套全然不同于傳統應用開發的技術架構,包含許多組件,主要可簡化且規范應用系統的開發與部署,進而提高可移植性、安全與再用價值。J2EE為搭建具有可伸縮性、靈活性、易維護性的商務系統提供了良好的機制。
本系統的架構是基于J2EE的三層架構,三層即數據層、業務層和表現層。系統采用SSH框架來實現這三層的分離與合作。SSH框架整合了Struts、Spring和Hibernate三大主流開源框架,分別應用于系統的表示層、業務邏輯層和數據持久層,實現了層間解耦,具有高可擴展性、高性能和高安全性的特點,使J2EE企業級開發更加快捷高效。[2]考務管理系統的層次結構及基本業務流程如圖2所示。

下面以科目管理子模塊為例,說明系統的實現原理。
在表示層中,首先用戶通過“科目管理頁面”提交管理科目的請求(Request),然后Struts根據配置文件(strutsconfig.xml)將ActionServlet接收到的Request委派給“科目管理Action”處理。在業務層中,管理服務組件的Spring IoC容器負責向“科目管理Action”提供相應的業務組件“科目管理”,通過業務組件“科目管理”所提供的方法來實現業務邏輯的處理。同時,Spring通過依賴注入的方式為業務組件“科目管理”注入“科目DAO”組件,從而通過“科目DAO”組件提供的方法對“科目”組件進行操作。而在持久層中,則依賴于Hibernate的對象化映射,將對“科目”組件的操作映射為對數據庫的操作,從而實現了對數據庫中相對應的表“科目”的更新。
為了提高系統的易用性、改善用戶體驗,系統在SSH框架之上結合Ajax技術開發實現。Ajax(Asynchronous JavaScript and XML)[3]是異步JavaScript和XML的簡稱,是一種能以異步的方式與服務器端進行交互的客戶端Web開發技術。
Ajax是多種技術的一種綜合應用,包括了JavaScript、XHTML、CSS、DOM、XML和XSTL,以及最重要的一個對象XMLHttpRequest。其中,使用XHTML和CSS實現數據信息的統一化、標準化顯示;使用DOM實現瀏覽器端豐富的動態顯示效果以及與服務器端的交互;使用XML和XSTL進行瀏覽器和服務器兩端的數據信息交換與處理。[4]
考務管理系統的主要工作是編排考場,在考場的編排方式上,一般分為自動編排、手工編排和自動與手工編排結合等。[1]自動編排考場需要設計編排的算法,由于考場編排工作的復雜性和特殊性,導致在實現編排算法時受到較多的限制,所以一般的考務管理系統并沒有實現自動編排的功能。手工編排考場的關鍵是實現考場相關信息的動態顯示和編排結果的驗證、核對。手工編排對考務管理人員的邏輯思維能力和思維的嚴密性提出了較高的要求,否則編排就非常容易出錯。所以,在考場的編排方式上最好是采用自動編排和手工編排相結合的方式。下文將詳細介紹自動編排算法的設計與實現。
考場自動編排算法的設計應遵循以下原則:(1)正確性。考場編排所需的數據,包括科目、班級、考場、監考員,必須保證是正確的。其次,考場編排的結果要保證不能存在沖突。(2)合理性。第一,在安排考試時,某個班的考試不能安排得過于集中,考試應合理分布。譬如,不能出現像一個班第一天有2次考試,第三天也有2次考試,而第二天卻1次考試都沒有的情況。第二,教師的監考次數應基本持平,不能出現有些教師的監考次數較多,而某些教師的監考次數較少的現象。第三,考場的安排應盡量合理,避免出現有些考場空余座位較多,而有些考場則座位不夠的情況。(3)高效性。指的是考場自動編排算法的設計應保證系統能在較短的時間內編排完成,避免出現讓用戶等待的時間太長的情況。
除了以上原則外,考場自動編排算法的設計還要考慮以下實際情況。
班級人數超過一定數量(一般為25人)時,同一班級同一個科目的考試將分為兩個考場進行,學號為單號的一個考場,其余的在另外考場;同一個考場同一時間段可以同時進行兩個班級不同科目的考試,也可以只進行一個班級一個科目的考試;安排考場時,班級人數不能多于課室所能容納的人數;教師的監考次數由各個部門指定,但是所指定的監考總次數應大于或等于考試的次數;教師的具體監考任務由教務員安排,但是每個教師的監考次數不能大于各個部門指定的監考次數;盡量保證最后一時間段的考試所有班級都參加,也就是說應使得所有班級考試結束的時間基本保持一致。
基于以上設計原則與約束條件,考場自動編排算法的基本流程如圖3所示。

考場自動編排算法的主要流程包括“準備數據”、“自動編排考試的班級、科目”、“手動確定考試時間段和具體時間”、“自動編排考場”、“自動編排監考員”等。“準備數據”,包括教學計劃管理、科目管理、班級管理、考場管理、監考員管理等。“自動編排考試的班級、科目”,該步驟的主要任務是確定某個班級在哪個時間段考哪個科目。具體的流程如圖4所示。
“手動確定考試時間段和具體時間”,該步驟的任務是由考務員最終確定考試時間段的考試安排和每個時間段的具體時間。目的是保證考試時間的合理性和考試時間的合理分布。“安排考場”,該步驟的主要任務是為考試查找并安排合適的考場。考場的安排應遵循以下原則:(1)考場的容量以夠用為原則;(2)班級的人數應小于或等于考場的容量;(3)同一時間段,不能安排2個不同的班級在同一考場考同一個科目;(4)同一時間段,不能安排超過2個班級同時進行考試。具體的流程如圖5所示。“安排監考員”,該步驟的任務是為每一場考試安排相應的監考員。具體的流程如圖6所示。
考場自動編排算法的設計實現了考場編排的自動化與智能化,而“手工確定考試時間段和具體時間”功能的加入,又增加了系統的人性化和合理性,保證了考場編排結果的可用性。

考務管理系統的啟用,將有利于提高學校的服務水平和管理水平,有助于提高學校的信息化水平,提高考務管理工作的效率,能滿足學校考務管理工作的需要,將填補學校在考務管理方面信息化、自動化的空白,能解決實際的問題,在學校中有非常高的推廣價值。☉
[1]洪流,葉紅輝.高校考務管理系統的優化及實現[J].湖州師范學院學報,2008(4).
[2]郭廣軍,朱昭君,王劍波.基于SSH架構的課程作業與成績管理系統[J].微電子學與計算機,2010,27(8):157-160.
[3]LiZhiqiang.Studyon ApplicationofE-BusinessSystem Based on Ajax Technology.IEEE.2010:472-475.
[4]趙永屹,宿紅毅,胡韶輝.基于AJAX與J2EE的新型Web應用的設計與實現[J].計算機工程與設計,2007,28 (1):189-192.
(編輯:金冉)
TP311.52
B
1673-8454(2012)11-0037-03