999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java Web的高??荚嚺抛到y

2018-07-28 07:12:14胡秀梅章宇琦吳迪吳海峰
科技視界 2018年12期

胡秀梅 章宇琦 吳迪 吳海峰

【摘 要】本文基于spring+ struts2+ Hibernate框架,設計實現了一套用于高??荚嚨呐抛到y,以替代目前考試過程中的人工排座。該系統具有自動、快速、穩定的特點,既避免了當前人工排座過程中由人工操作失誤而引起的各類問題,又大大減輕了教務工作者的工作量,提高了高校信息化水平。

【關鍵詞】Java Web;考試;排座

中圖分類號: TP391.13 文獻標識碼: A 文章編號: 2095-2457(2018)12-0120-003

DOI:10.19694/j.cnki.issn2095-2457.2018.12.052

0 引言

考試是高校教學過程中不可或缺的一環,每學期末在考試前教務工作人員都要結合當前班級、科目、教室使用情況進行考試座位的編排。以筆者所在學校為例,全校有超過200個班級,按每個班級考10門課程計算,需要安排的場次就超過2000次。由此可見該項工作需要耗費大量的人力和時間。

目前有一些學者對考試的自動排座展開了研究。婁清[1]利用VBA在Excel中開發了普通高中的考試排座系統,給出了詳細的模塊設計和代碼參考;李正慧[2]簡要的從排課系統數據庫中關鍵性數據表的設計和排課界面功能的實現等方面介紹了整個排課數據庫的設計思路;周玉芬[3]等針對高??荚嚨奶攸c,用VC++編寫了一個考場隨機排座系統,實現了考場人員座次的隨機排序、顯示和打印等功能;徐欣[4]等利用Microsoft Visual FoxPro6.0開發了一套考試隨機排位系統,實現了考場的分配、學生座位的隨機排座、考試時間、場次安排、打印考試座位表等功能,并進行了測試和應用。

由以上調研可以看出,考試的排座問題是每個學校都面臨的重要問題,如何使其自動化實現已經得到了學者們的關注,并產生了一些相關研究成果。然而當前對排座系統的研究和應用還不夠深入和全面,沒有與高校考試安排靈活性高、變化性大的特點相結合,研發的系統也主要以本地測試或者普通桌面軟件為主,無法適用于多人集中辦公的場景。

針對這個現狀,我們利用目前主流的Spring+Struts2+Hibernate三層框架技術,采取面向對象的思想,結合MVC模式實現了一套適用于高??荚嚨淖詣优抛到y。

1 關鍵技術

1.1 MySQL數據庫

MySQL是一種關系數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。MySQL所使用的 SQL 語言是用于訪問數據庫的最常用標準化語言。

1.2 三層框架

Spring框架

Spring是一個輕量級控制反轉(IoC)和面向切面(AOP)的容器框架。Spring框架是由于軟件開發的復雜性而創建的。Spring使用的是基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅僅限于服務器端的開發。從簡單性、可測試性和松耦合性角度而言,絕大部分Java應用都可以從Spring中受益。

Struts2框架

Struts2是一個基于MVC設計模式的Web應用框架,它本質上相當于一個servlet,在MVC設計模式中,Struts2作為控制器(Controller)來建立模型與視圖的數據交互。Struts 2以WebWork為核心,采用攔截器的機制來處理用戶的請求,這樣的設計也使得業務邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解為WebWork的更新產品。

Hibernate框架

Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數據庫表建立映射關系,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用。

2 設計與實現

本系統分為三大模塊,即超級管理員、教務處和輔導員。超級管理員管理學院表、班級表、課程表、教室詳情表、用戶表。對這些表中的數據具有增加、修改、刪除、查看的權限。這些表都是屬于學校固定信息。同時還有對教務處、輔導員的權限的配置功能。教務處管理時間表、考試安排表。主要功能為對考試時間的安排,對全校班級對應課程考試安排的增、刪、改、查。輔導員可以查看考試安排表,安排考試排座。

整個系統結構如圖1 所示。

2.1 數據庫表的設計

如圖2為系統的數據庫表設計結構圖。每一個方塊為一個表結構,方塊上面一層為表名,下面為表的字段。表與表之間的連線代表表之間的關系。

表關系介紹:

(1)學院表關聯班級表,有了學院才會有班級,為一對多的關系;

(2)考試信息表關聯班級表、考試時間地點表、課程表,而考試時間地點表是課程和班級表聯合主鍵生成,所以班級與課程是這兩者表的主要部分,構成上面的四角關系;

(3)班級課程表則是課程表與班級表映射出來的一張表,因為兩者為多對多的關系;

(4)用戶表是一張單獨的表;

(5)考試時間地點表則從教室表獲取教室信息。

表主要字段介紹:

(1)教室詳情表中的座位詳情:(n1*m1+n2*m2+n3*m3),其中n代表有幾排,m表示每排有幾個座位,其中m =k1+k2+k3,代表每隔k個有一個過道;

(2)用戶表中的標志位:1代表超級管理員,2代表教務處,3代表輔導員;

(3)排座表的設計:學院、班級、課程、教室、人數、座次表。座次表在數據庫中以字符串的形式顯示,字符串中的書寫以鍵值對的形式書寫。例如:“01=學生A ,02=學生B…”。

(2)排座算法

智能排座算法是該系統的核心,該算法利用后端的動態數據,排出最優化的座位方案,算法包含沖突檢測功能。算法流程如圖3所示。

上述算法思路清晰,結構較為簡單,實現起來比較容易,其大致流程為:

第一步,系統讀取后端數據庫的考試計劃、教室信息、班級信息和課程信息,并將這些數據加載到內存;

第二步,將考試計劃按照班級人數從小到大順序排列,教室容納人數按照從小到大順序排列,先安排人數少的班級,再安排人數多的班級。

第三步,遍歷考試計劃中的每一項,找到合理的教室,記錄并鎖定該時間段的對應教室使用,防止出現一教室多用。

第四步,將排好的每一項考試座次表寫入到Excel文件并存儲,供后期各學院打印下載。

(3)主要代碼

系統的核心代碼及相關注釋如下所示。

//班級的dao 層

StudentClassDao dao;

public void setDao(StudentClassDao dao) {

this.dao = dao;

}

//教室的dao 層

ClassroomDao dao;

public void setDao(ClassroomDao dao) {

this.dao = dao;

}

//排座功能的實現,兩個參數,一個是班級對象,一個是教室對象

public void arraySets(StudentClass studentC,Classroom classroom){

//查詢數據庫,獲取班級人數

StudentClass studentC2=dao.queryStudentClassById(studentC.id);

Integer studentClassNum=studentC2.getNum();

//查詢數據庫,獲取教室容量

Classroom classroom2=dao.queryClassroomById(classroom.id);

Integer roomNum=classroom2.getNum();

//定義一個數組,數組的長度為班級人數,此數組作為班級學生,進行編號

int sR[]=new int[studentClassNum];

for (int i = 0; i < sR.length; i++) {

sR[i]=i+1;

}

//定義一個數組,數組的長度為教室容量,此數組做為教室座位號,進行編號

int cR[] = new int[roomNum];

for (int i = 0; i < cR.length; i++) {

cR[i]=i+1;

}

Random random = new Random();

//定義一個字符串數組,用來存放教室與學生的對應關系,長度為學生數量

String[] classToStu=new String[studentClassNum];

//遍歷教室

for (int i = 0,j=0; i < sR.length && j

//產生一個隨機編號,編號不大于學生最大編號

int z = random.nextInt(studentClassNum);

for (int k = 0; k < sR.length; k++) {

if(z==sR[k]){

classToStu[j]=i+":"+z;

sR[k]=0;

}else{

//是參數回歸,也就是重新這一次操作

i=i-2;

j=j-1;

//跳出for循環

break;

}}}}

3 結果測試

經過測試,系統可以正常運行,部分測試頁面截圖如下。

4 結語

本系統是根據高校教務管理人員的需求,結合高校學生信息管理的特點開發的,整個系統具有良好的實用性和可擴充性,已經考試應用于考試安排中,能滿足院系環境下的考試管理需求。后續研究將從界面的美觀性、功能的完整性等方面加以改進,提高系統易用性和普適性,更好的服務于高校信息化工作。

圖4 系統主界面

圖5 座次表

【參考文獻】

[1]婁青.利用VBA在Excel中開發普通高中考試排座系[J].中國教育信息化,2012.

[2]李正慧.排課系統數據表的設計與功能的實現[J].數字技術與應用,2011.

[3]周玉芬,杜猛,宋明慧.使用VC++開發考場隨機排座系統[J].電腦編程技巧與維護,2008.

[4]徐欣,陸陽,金紅.考試排位系統[J].電子科技大學學報, 2003.

主站蜘蛛池模板: 国产国拍精品视频免费看| 国产xxxxx免费视频| 丁香综合在线| 亚洲v日韩v欧美在线观看| 亚洲日韩精品伊甸| 无码国产伊人| 天天色综合4| 欧美精品啪啪一区二区三区| 四虎永久在线| 真实国产乱子伦高清| 国产精品毛片在线直播完整版| 亚洲日本一本dvd高清| 高清无码手机在线观看| 欧美一区二区三区不卡免费| 久久久久久久久久国产精品| 国产性精品| 亚洲精品视频免费| 四虎在线观看视频高清无码| 国产成人免费| 国产成人一区| 日韩第一页在线| 亚洲成人动漫在线| 国产高清又黄又嫩的免费视频网站| 国产网站一区二区三区| 亚洲中文字幕在线观看| 亚洲永久色| 女人18毛片久久| 一级毛片a女人刺激视频免费| 精品一区二区三区无码视频无码| 91日本在线观看亚洲精品| 国产午夜人做人免费视频| 在线播放国产一区| 5555国产在线观看| 99爱视频精品免视看| 中文国产成人精品久久一| 亚洲开心婷婷中文字幕| 亚洲精品片911| 99精品视频播放| 小说区 亚洲 自拍 另类| 好吊妞欧美视频免费| 精品久久高清| 四虎影视库国产精品一区| 98精品全国免费观看视频| 91精品人妻互换| 欧美色图久久| 国产97色在线| 毛片久久网站小视频| 亚洲av日韩综合一区尤物| 婷婷伊人久久| 91久久国产综合精品| 亚洲热线99精品视频| 亚洲第一视频免费在线| 欧美伊人色综合久久天天| 成人福利在线看| 九色综合伊人久久富二代| 亚洲码一区二区三区| 中文字幕1区2区| 亚洲综合亚洲国产尤物| 午夜日b视频| 永久在线播放| 精品91在线| 欧美日韩免费观看| 2021亚洲精品不卡a| 精品偷拍一区二区| 亚洲伊人天堂| 亚洲IV视频免费在线光看| 国产免费网址| 欧美一级爱操视频| 香蕉久久国产精品免| 欧美天天干| 在线亚洲精品自拍| 国产成人你懂的在线观看| 激情無極限的亚洲一区免费| 女人爽到高潮免费视频大全| 精品伊人久久久香线蕉| 国产成人无码AV在线播放动漫| 99久久精品国产麻豆婷婷| 中文字幕精品一区二区三区视频| 一级毛片在线免费看| a级毛片在线免费观看| 一级毛片在线免费看| 成人无码区免费视频网站蜜臀|