徐鑫 林宏 李國榮 蔡鵬霄 徐琴
摘 要:近年來,隨著實(shí)驗(yàn)報(bào)告管理系統(tǒng)的構(gòu)建與優(yōu)化,高校實(shí)驗(yàn)教學(xué)中的諸多問題得到了有效解決?;诖?,本文對高校實(shí)驗(yàn)報(bào)告管理系統(tǒng)構(gòu)建與優(yōu)化展開了深入的探究,以供參考。
關(guān)鍵詞:高校;實(shí)驗(yàn)報(bào)告管理系統(tǒng);構(gòu)建;優(yōu)化
中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A DOI:10.3969/j.issn.1003-6970.2021.03.018
本文著錄格式:徐鑫,林宏,李國榮,等.高校實(shí)驗(yàn)報(bào)告管理系統(tǒng)構(gòu)建與優(yōu)化的探究[J].軟件,2021,42(03):061-064
Construction and Optimization of University Experiment Report Management System
XU Xin, LIN Hong, LI Guorong, CAI Pengxiao, XU Qin
(Guizhou Education University, Guiyang? Guizhou? 550018)
【Abstract】:In recent years, with the construction and optimization of experimental report management system, many problems in experimental teaching in Colleges and universities have been effectively solved. Based on this, in this paper the construction and optimization of University experiment report management system is explored, for reference.
【Key words】:university;experiment report management system;construction;optimization
0 引言
近年來,隨著網(wǎng)絡(luò)智能技術(shù)水平的不斷提高,數(shù)字化教材、移動(dòng)學(xué)習(xí)平臺以及無紙化考試等在教育教學(xué)領(lǐng)域也得到了充分的應(yīng)用。在這一形勢下,傳統(tǒng)紙質(zhì)化的實(shí)驗(yàn)報(bào)告也在向無紙化與電子化的方向發(fā)展,實(shí)驗(yàn)報(bào)告管理系統(tǒng)的構(gòu)建與優(yōu)化也得到了各大高校實(shí)驗(yàn)室的高度重視。
1 實(shí)驗(yàn)報(bào)告管理系統(tǒng)構(gòu)建
實(shí)驗(yàn)報(bào)告管理系統(tǒng)的構(gòu)建需要滿足教師、學(xué)生以及管理員這三類用戶的具體需求。(1)管理員。現(xiàn)階段,由于無紙化報(bào)告管理系統(tǒng)主要是依托于實(shí)驗(yàn)教學(xué)綜合管理系統(tǒng)構(gòu)建而成的,因此其具備四大功能,分別為角色管理、系統(tǒng)維護(hù)管理、批閱欄目向管理以及數(shù)據(jù)查詢。其中,角色管理主要是針對批閱者權(quán)限而設(shè)置的,既可以制定專屬批閱,也可制定專人批閱[1];批閱欄目項(xiàng)管理主要是針對于報(bào)告批閱標(biāo)準(zhǔn)的一種綜合設(shè)置。簡單來講就是要依據(jù)報(bào)告的實(shí)際組成部分,設(shè)置出形式多樣的批閱欄目項(xiàng),以便教師在批閱欄目下,設(shè)置各種有針對性的評分標(biāo)準(zhǔn);系統(tǒng)維護(hù)管理的主要作用就是對系統(tǒng)運(yùn)行中的異常與故障實(shí)施應(yīng)急處理;而數(shù)據(jù)查詢則是要根據(jù)數(shù)據(jù)的類別,實(shí)現(xiàn)不同類別的查詢與數(shù)據(jù)匯總。(2)教師。教師部分是由評分標(biāo)準(zhǔn)設(shè)置、實(shí)驗(yàn)報(bào)告批閱與管理這兩大部分共同組成的。當(dāng)教師打開該系統(tǒng)后,就可以看到實(shí)驗(yàn)課表,并且可以根據(jù)課表中的項(xiàng)目制定個(gè)性化的評分標(biāo)準(zhǔn)。當(dāng)學(xué)生提交實(shí)驗(yàn)報(bào)告后,教師就可以對實(shí)驗(yàn)項(xiàng)目進(jìn)行篩選性批閱,而扣分根據(jù)會直接顯示在報(bào)告圖中。待教師完成實(shí)驗(yàn)報(bào)告的批改工作后,即可保存成草稿,并提交。同時(shí),針對批閱過程中存在問題的實(shí)驗(yàn)報(bào)告可以選擇重新批閱[2]。總的來講,實(shí)驗(yàn)報(bào)告管理是針對實(shí)驗(yàn)報(bào)告上傳質(zhì)量、頁碼順序以及保存狀態(tài)等多個(gè)流程的綜合控制。(3)學(xué)生。學(xué)生部分是由實(shí)驗(yàn)報(bào)告上傳與下載組成。當(dāng)學(xué)生進(jìn)入系統(tǒng)之后,可以根據(jù)自己的實(shí)際需要來自行下載并打印實(shí)驗(yàn)項(xiàng)目報(bào)告,在完成實(shí)驗(yàn)報(bào)告之后,即可通過拍照的方式上傳到選課系統(tǒng)當(dāng)中。而上傳后的實(shí)驗(yàn)報(bào)告在系統(tǒng)中所顯示的狀態(tài)為待批閱。但在上傳的過程中,若報(bào)告出現(xiàn)錯(cuò)誤或者是被教師退回,學(xué)生還可以重新上傳。
2實(shí)驗(yàn)報(bào)告管理系統(tǒng)的使用流程
首先,結(jié)合實(shí)際情況,系統(tǒng)管理員要在該項(xiàng)中合理設(shè)置角色權(quán)限與批閱欄目,由任課教師針對不同的實(shí)驗(yàn)項(xiàng)目設(shè)置不同的評分標(biāo)準(zhǔn)。而學(xué)生要結(jié)合具體的教學(xué)要求,通過實(shí)驗(yàn)教學(xué)綜合管理系統(tǒng)來預(yù)約相應(yīng)的實(shí)驗(yàn)項(xiàng)目,并將實(shí)驗(yàn)報(bào)告下載下來。待學(xué)生完成實(shí)驗(yàn)報(bào)告之后,則要使用手機(jī)將實(shí)驗(yàn)報(bào)告拍成照片,將其上傳到報(bào)告管理系統(tǒng)當(dāng)中由教師進(jìn)行批閱。其次,教師可以通過實(shí)驗(yàn)報(bào)告管理系統(tǒng)查看自己的實(shí)驗(yàn)成績以及教師的批閱反饋。待本學(xué)期結(jié)束后,系統(tǒng)管理員要將本學(xué)期學(xué)生的實(shí)驗(yàn)報(bào)告與成績進(jìn)行歸檔。
3構(gòu)建實(shí)驗(yàn)報(bào)告管理系統(tǒng)的主要技術(shù)
3.1 MyBatis操作數(shù)據(jù)庫
Mybatis作為目前主流java持久層框架,專注于數(shù)據(jù)庫性能訪問的安全性與高效性。在實(shí)際應(yīng)用當(dāng)中,Mybatis幾乎免除了所有的jdbc代碼及設(shè)置參數(shù)、獲取結(jié)果集的工作。通過配置簡單的xml或注解來配置映射代碼接口、java對象。
Java代碼操作數(shù)據(jù)庫原始對象為statement對象,原始對象對于sql注入的處理并不理想,改進(jìn)之后采用mybatis框架可以大大改善sql注入問題,對注入攻擊起到一定的抵御作用。如下代碼為mybatis對數(shù)據(jù)庫查詢的典型代碼:
# mysql配置信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost: 3306/report?useUnicode=true&characterEncoding=UTF-8&useSSL=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
// 數(shù)據(jù)庫查詢接口
public interface StudentMapper {
//查詢學(xué)生信息
List
}
//數(shù)據(jù)庫sql
select * from student_list
3.2實(shí)驗(yàn)報(bào)告提交與在線瀏覽
在實(shí)驗(yàn)報(bào)告管理系統(tǒng)中,在線瀏覽Office文檔屬于一種較為突出的技術(shù)難題。而多數(shù)情況下的做法就是把Office文檔轉(zhuǎn)換成Flash文件(swf格式),能夠直接呈現(xiàn)在網(wǎng)頁中[3]。如今在html5標(biāo)簽的支持下,pdf格式的實(shí)驗(yàn)報(bào)告,可以借助HTML的標(biāo)簽呈現(xiàn)在網(wǎng)頁上,以便教師在批閱的過程中實(shí)現(xiàn)在線瀏覽。在該系統(tǒng)中,先是將Word或者是Ex-cel版的實(shí)驗(yàn)報(bào)告,上傳到文檔服務(wù)器當(dāng)中,通過異步方式,由接口程序?qū)ι蟼鞯腤ord或Ex-cel實(shí)驗(yàn)報(bào)告進(jìn)行格式的轉(zhuǎn)換。
在文檔服務(wù)器中,要想將實(shí)驗(yàn)報(bào)告轉(zhuǎn)換成pdf格式,需要使用Linux的OpenOfffice,把文件的格式轉(zhuǎn)換成pdf格式,在jdk環(huán)境的基礎(chǔ)上,OpenOfffice在Linux服務(wù)器中,可以把文件轉(zhuǎn)換成為pdf格式,具體的轉(zhuǎn)換命令原型如下:
java-jarjodconverter-cli.jar 源文件路徑輸出pdf文件路徑
其中,轉(zhuǎn)換命令由java通過Runtime.getRuntime ().exec()方法調(diào)用,但這一過程需要耗費(fèi)較長的時(shí)間,并且Runtime是進(jìn)程阻塞的,極易導(dǎo)致文檔出現(xiàn)上傳較慢的情況,影響到用戶體驗(yàn)[4]?;诖?,就要選擇java的多線程執(zhí)行對象Thread,當(dāng)文檔被順利上傳后,只需要開啟一個(gè)含有轉(zhuǎn)換文件路徑的任務(wù)信息Thread,就可以在后臺自動(dòng)完成文件路徑的轉(zhuǎn)換,在這一過程中,用戶是不需要專門等待的。
3.3數(shù)據(jù)批量導(dǎo)入與導(dǎo)出
在多個(gè)場景中,實(shí)驗(yàn)報(bào)告管理系統(tǒng)均應(yīng)用到了數(shù)據(jù)的導(dǎo)出功能與批量導(dǎo)入功能。在進(jìn)行數(shù)據(jù)導(dǎo)入操作時(shí),要先將Excel數(shù)據(jù)導(dǎo)入的模板下載下來,并根據(jù)模板格式的相關(guān)要求來填寫、上傳、讀取數(shù)據(jù),并驗(yàn)證數(shù)據(jù)的合法性,待上述操作無誤后再將其批量式的插入到具體的數(shù)據(jù)表當(dāng)中。在讀取Excel內(nèi)容時(shí),java應(yīng)用到了Apache POI,實(shí)現(xiàn)Excel數(shù)據(jù)的批量導(dǎo)入。如下代碼原型充分呈現(xiàn)了利用Apache POI讀取Excel工作表時(shí)的幾種元素方法:
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(inputStream);//初始化實(shí)例
XSSFSheet sheet=xssfWorkbook.getSheet At(ExcelUrl);//讀取服務(wù)器上的Excel文件
int lastRowNum=sheet.getLastRowNum();//讀取工作表中的行數(shù)
Row row=sheet.getRow(i);//讀取工作表中的一行
for(Cell cell:row){//讀取工作表的一行中所有的單元格內(nèi)容
cell.setCellType(XSSFCell.CELL_TYPE_STRING);
String str=cell.getStringCellValue().trim();
}
從數(shù)據(jù)庫中導(dǎo)出的查詢記錄要以Excel表格的形式呈現(xiàn),應(yīng)用前端頁面,可將數(shù)據(jù)庫中查詢到的數(shù)據(jù)封裝成json格式,前端采用layui的table插件可以直接將數(shù)據(jù)渲染至頁面并導(dǎo)出成Excel表格。具體代碼如下:
table.render({
elem: '#currentTableId',//頁面渲染標(biāo)簽
url: '/student/selectPage',//數(shù)據(jù)獲取異步接口
defaultToolbar: ['exports', 'print', { //表格插件 包括導(dǎo)出為Excel文件、打印表格
title: '提示',
layEvent: 'LAYTABLE_TIPS',
icon: 'layui-icon-tips'
}],
cols: [[ //表頭設(shè)置
{type: "checkbox", width: 50},
{field: 'studentId', width: 120, title: '學(xué)生ID', sort: true},
{field:'studentName',width:280,title:'學(xué)生名稱'},
{field: 'studentSex',width:280,title:'學(xué)生性別'},
{field: 'studentClassName',width:150,title:'班級名稱'}
]],
limits: [10, 15, 20, 25, 50, 100], //表格分頁
limit: 15,
page: true,
skin: 'line,row',
even:true
});
3.4實(shí)驗(yàn)報(bào)告匯總打包
應(yīng)用java的lang包下的IO擴(kuò)展,可以實(shí)現(xiàn)實(shí)驗(yàn)報(bào)告的匯總與打包。在此環(huán)節(jié)當(dāng)中,要先查詢與遍歷實(shí)驗(yàn)報(bào)告原稿的上傳路徑,并將其存到數(shù)組files當(dāng)中,之后再使用ZipEntry實(shí)例來完成壓縮。進(jìn)行壓縮。把多個(gè)文檔壓縮成一個(gè)zip文件的代碼原型如下:
ZipOutputStream out=new ZipOutputStream (new FileOutputStream(zipPath)
for (int i=0; i < files.length; i++) {
FileInputStream fileInputStream=new FileInput Stream(srcFile[i]);
out.putNextEntry(new ZipEntry(srcFile[i].get Name()));//完成文件壓縮
int length;
while((length=fileInputStream.read(buffer))>0) {
out.write(buffer, 0, length);
}
out.closeEntry();
fileInputStream.close();
}
4運(yùn)行環(huán)境優(yōu)化
當(dāng)實(shí)驗(yàn)報(bào)告管理系統(tǒng)被正式應(yīng)用于各大高校的實(shí)驗(yàn)教學(xué)當(dāng)中時(shí),要針對高并發(fā)支持這一方面,對系統(tǒng)的運(yùn)行環(huán)境進(jìn)行優(yōu)化與調(diào)整,具體需要優(yōu)化的項(xiàng)目及相關(guān)優(yōu)化措施見表1。
5 結(jié)語
綜上所述,在實(shí)驗(yàn)教學(xué)中,實(shí)驗(yàn)報(bào)告管理系統(tǒng)的應(yīng)用,不僅可以有效彌補(bǔ)傳統(tǒng)紙質(zhì)實(shí)驗(yàn)報(bào)告在上交、批閱、反饋以及管理等多個(gè)環(huán)節(jié)中所存在的不足,幫助學(xué)生節(jié)省更多的時(shí)間與精力,同時(shí)也能夠明顯減輕教師的工作負(fù)擔(dān),大大提升實(shí)驗(yàn)報(bào)告的審批效率,提高實(shí)驗(yàn)報(bào)告管理的信息化水平。
參考文獻(xiàn)
[1] 呂狄亞,曹巖,董昕,等.實(shí)驗(yàn)室儀器管理系統(tǒng)的設(shè)計(jì)與實(shí)踐[J].衛(wèi)生職業(yè)教育,2017(2):156-158.
[2] 張弛,沈亦軍,張琛,等.基于SSM框架的高校智能化實(shí)驗(yàn)報(bào)告管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].赤峰學(xué)院學(xué)報(bào)(自然科學(xué)版),2021(1): 107-110.
[3] 朱倩.高職院校學(xué)生實(shí)驗(yàn)報(bào)告管理系統(tǒng)的分析與設(shè)計(jì)[J].四川職業(yè)技術(shù)學(xué)院學(xué)報(bào),2017(2):133-136.
[4] 達(dá)虎,賈彥平,李婷,等.重點(diǎn)實(shí)驗(yàn)室年度報(bào)告管理系統(tǒng)研究與設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2020(7):135-136+159.