亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Java技術(shù)的考試系統(tǒng)關(guān)鍵點(diǎn)研究

        2022-12-25 21:29:06蘇婉怡揣小龍趙國(guó)松王煜堯
        無(wú)線互聯(lián)科技 2022年18期
        關(guān)鍵詞:頁(yè)面數(shù)據(jù)庫(kù)用戶

        蘇婉怡,揣小龍,趙國(guó)松,王煜堯

        (吉林農(nóng)業(yè)科技學(xué)院,吉林 吉林 130000)

        0 引言

        隨著計(jì)算機(jī)軟件應(yīng)用技術(shù)在高校的普及,線上教育教學(xué)模式已成為一種新的教育手段和方法。傳統(tǒng)的筆試考試已經(jīng)難以滿足課程考試的需求,線上考試系統(tǒng)成為一種新的考試方法,一種當(dāng)前高校課程考核的新手段[1]。

        線上考試已經(jīng)是一個(gè)成熟的技術(shù)領(lǐng)域,考試系統(tǒng)通過(guò)在線的方式可以隨時(shí)隨地進(jìn)行考試,不再受眾多因素約束。試卷會(huì)根據(jù)設(shè)置好的參數(shù)進(jìn)行隨機(jī)組卷,通過(guò)極簡(jiǎn)化的操作流程減少了管理人員不必要的重復(fù)操作,后續(xù)能夠?qū)崿F(xiàn)自動(dòng)化處理。

        1 系統(tǒng)框架

        Spring Boot是基于Spring的全新單體框架,與Spring相比,集成了第三方庫(kù)配置,使搭建和開(kāi)發(fā)變得更容易,讓開(kāi)發(fā)人員更加注重業(yè)務(wù)模塊,增加了功能的多樣性[2]。

        Spring Cloud是一套當(dāng)下流行的微服務(wù)框架,是Spring Boot的有序集合,將各個(gè)獨(dú)立的Spring Boot系統(tǒng)通過(guò)接口間的調(diào)用組合起來(lái),形成一個(gè)微服務(wù)系統(tǒng)[3]。

        通過(guò)深入分析系統(tǒng)所需的功能,發(fā)現(xiàn)使用Spring Cloud框架會(huì)更方便。各子系統(tǒng)間粘連性不高,可進(jìn)行獨(dú)立的開(kāi)發(fā),更節(jié)約開(kāi)發(fā)成本和時(shí)間。

        2 數(shù)據(jù)庫(kù)設(shè)計(jì)

        首先,對(duì)系統(tǒng)功能進(jìn)行需求分析,做出功能模塊。其次,根據(jù)功能模塊得到所需的各種屬性,根據(jù)屬性做出系統(tǒng)各個(gè)功能的表。最后,為避免將多屬性寫(xiě)進(jìn)一張表里出現(xiàn)錯(cuò)誤,將其分為多個(gè)部分。當(dāng)有些功能需要共同使用的表的數(shù)量超過(guò)一個(gè)時(shí),使用數(shù)據(jù)庫(kù)的左鏈接可以得到相關(guān)信息。

        3 系統(tǒng)設(shè)計(jì)中的關(guān)鍵問(wèn)題及解決方法

        3.1 考試方面

        3.1.1 試題模塊

        題庫(kù)的導(dǎo)入導(dǎo)出使用的是EasyExcel技術(shù),EasyExcel是Excel的開(kāi)源項(xiàng)目,在節(jié)約內(nèi)存的條件下支持讀寫(xiě)Excel。

        導(dǎo)入Excel表格,前端將通過(guò)API傳值到后端,之后存入數(shù)據(jù)庫(kù)。前端即為編寫(xiě)頁(yè)面,負(fù)責(zé)將文件的值傳到后端。

        后端的編寫(xiě):首先,引入依賴;其次,在controller層寫(xiě)一個(gè)接口承接前端傳輸?shù)臄?shù)據(jù),讀取Excel數(shù)據(jù)的方法為“ExcelUtil.readExcel(file)”;隨后通過(guò)在service 接口層中寫(xiě)入這個(gè)方法的接口,實(shí)現(xiàn)類里有存入題目的方法體;最后,在dao數(shù)據(jù)層使用實(shí)現(xiàn)類中的方法體和數(shù)據(jù)的添加代碼,可以將題目存入數(shù)據(jù)庫(kù)中進(jìn)行使用。

        3.1.2 試卷模塊

        本系統(tǒng)具有自動(dòng)組卷功能,在此功能中使用了遺傳算法。遺傳算法借鑒了達(dá)爾文進(jìn)化論中自然選擇和遺傳學(xué)中基因突變、基因重組原理的方法[4]。

        (1)設(shè)試題庫(kù)中有m道題,將這m道題編為A1,A2,A3……,當(dāng)A1為1時(shí)該題被選中,A1為0時(shí)則該題未被選中。需要注意的是,編碼時(shí)應(yīng)將相同類型的題目放在一起。同時(shí),為了避免試卷中出現(xiàn)重復(fù)的知識(shí)點(diǎn),各知識(shí)點(diǎn)在每條染色體中的編碼必須相同。

        (2)生成隨機(jī)初始體Z(0),設(shè)群體規(guī)模為H,根據(jù)經(jīng)驗(yàn)或試驗(yàn)數(shù)據(jù),在100~250中確定適應(yīng)度數(shù)。

        (3)將個(gè)體按照適應(yīng)度逐一遞減的順序進(jìn)行排序,如個(gè)體適應(yīng)度值沒(méi)達(dá)到規(guī)定范圍,則對(duì)該個(gè)體進(jìn)行淘汰,并從庫(kù)中選擇新的個(gè)體替代。

        (4)相同題型整段進(jìn)行交叉。令RANDOM(N)為0,n的隨機(jī)數(shù)i(N為題型數(shù),i為整數(shù)),若交叉條件滿足RANDOM(N)

        (5)題目的適應(yīng)度值達(dá)到預(yù)先設(shè)定值時(shí),在輸出最優(yōu)解后,算法停止。

        3.1.3 防切屏模塊

        為了控制切屏次數(shù),首先,要在Vue生命周期的mounted里面添加一個(gè)監(jiān)聽(tīng)事件visibilitychange;其次,為事件添加一個(gè)函數(shù),在此函數(shù)中獲取頁(yè)面元素的狀態(tài)document.VisibilityState;最后,調(diào)用后臺(tái)接口,獲取在考試管理中是否設(shè)置了開(kāi)啟切屏功能以及可切屏的最大次數(shù)和剩余次數(shù)的數(shù)據(jù)。

        Window.addEventListener(“visibilitychage”, this.pageHidden)

        上述即為添加事件監(jiān)聽(tīng)頁(yè)面顯示與隱藏事件的代碼,當(dāng)頁(yè)面的內(nèi)容變得可見(jiàn)或者被隱藏時(shí),就會(huì)觸發(fā)visibilitychange事件[5]。

        3.1.4 答題模塊

        本系統(tǒng)采用前后端分離的架構(gòu)實(shí)現(xiàn)該功能,當(dāng)用戶答完一道題后,通過(guò)API傳到后端。使用Ajax中的get,post,put等方法傳遞參數(shù),參數(shù)通常是通過(guò)juery或者是body體傳遞。

        數(shù)據(jù)傳到后端業(yè)務(wù)層后,先經(jīng)由controller層,該層是控制類,是前端請(qǐng)求的入口,負(fù)責(zé)前后端的交互一層。隨后到達(dá)service業(yè)務(wù)層,該層包括了service接口和serviceImpl實(shí)現(xiàn)類,其中service接口可實(shí)現(xiàn)接口與實(shí)現(xiàn)類的解耦,代碼的調(diào)用先于代碼的實(shí)現(xiàn),可以先寫(xiě)好接口,用于controller層的調(diào)用,后續(xù)再到實(shí)現(xiàn)類去實(shí)現(xiàn)與數(shù)據(jù)庫(kù)交互接口,編寫(xiě)方法體。最后在dao層,該層Java與數(shù)據(jù)庫(kù)連接,使用實(shí)現(xiàn)類中的方法體和具體數(shù)據(jù)庫(kù)添加、修改、刪除的代碼,即可將用戶的答案存入數(shù)據(jù)庫(kù)中。

        3.1.5 時(shí)間模塊

        規(guī)定時(shí)間收卷是每場(chǎng)考試的結(jié)果,線上考試同樣也不例外。在Java中實(shí)現(xiàn)收卷功能主要應(yīng)用了具有定時(shí)調(diào)用、能固定時(shí)間執(zhí)行功能的Timer和TimerTask類。

        首先,定義一個(gè)Run方法中包含任務(wù)代碼的TimerTask的子類;其次,要實(shí)例化Timer類,創(chuàng)建計(jì)時(shí)器后臺(tái)線程,將任務(wù)對(duì)象(new RemindTask () )實(shí)例化;最后,用schedule方法指定執(zhí)行計(jì)劃,用一個(gè)參數(shù)delay延遲執(zhí)行的毫秒數(shù),即在delay毫秒后第一次執(zhí)行來(lái)表示TimerTask對(duì)象,另一個(gè)參數(shù)period則是重復(fù)執(zhí)行的時(shí)間間隔,表示開(kāi)始執(zhí)行前的延時(shí)時(shí)間。

        3.1.6 判卷模塊

        判卷的本質(zhì)是題庫(kù)中的正確答案與提交答案的對(duì)比。這個(gè)模塊在bean中實(shí)例化對(duì)象,后端controller層編寫(xiě)判卷的接口。調(diào)用題庫(kù)系統(tǒng)先遍歷題庫(kù),找到同一個(gè)題,然后使用一個(gè)增強(qiáng)for循環(huán),里面用if語(yǔ)句判斷題庫(kù)中的正確答案與提交的答案是否相同,相同則加分,不相同則不加分。一直重復(fù)這兩個(gè)操作完成所有題。前端顯示分?jǐn)?shù)的接口來(lái)承接后端接口,前端即可顯示用戶得分。

        3.2 用戶方面

        3.2.1 密碼模塊

        考試周期較長(zhǎng)是考試的特征。每個(gè)學(xué)生注冊(cè)賬號(hào),難免會(huì)出現(xiàn)狀況,所以編寫(xiě)密碼模塊。

        用戶需要提交賬號(hào)和新密碼,前端接收到信息,通過(guò)接口將參數(shù)傳給后臺(tái)controller層。給controller類的方法創(chuàng)建外來(lái)資源訪問(wèn)的名稱和相對(duì)應(yīng)的請(qǐng)求方法,接收到前臺(tái)傳來(lái)的賬號(hào)和密碼參數(shù)值后,生成6位隨機(jī)數(shù),并使用MD5方法對(duì)前臺(tái)傳來(lái)用戶輸入的密碼進(jìn)行加密處理,隨后再加鹽值生成出最終數(shù)據(jù)庫(kù)所需存儲(chǔ)的用戶密碼,將用戶新密碼的明碼和隨機(jī)生成的6位鹽值存儲(chǔ)于數(shù)據(jù)庫(kù)中,最后把經(jīng)過(guò)加密的密碼加入map。

        3.2.2 用戶登錄模塊

        為避免在考試過(guò)程中出現(xiàn)切換客戶端的情況,要保證用戶登錄的唯一性,以確??荚嚥粫?huì)出現(xiàn)多人登錄同一個(gè)賬號(hào),進(jìn)行多人答同一套試卷的行為,即一端登錄另一端便會(huì)強(qiáng)制下線。考試中每個(gè)人都需要一個(gè)Session,人數(shù)越多對(duì)Session的需求也越多,而大量Session存在服務(wù)器上會(huì)占用許多內(nèi)存,容易使服務(wù)器崩潰而導(dǎo)致系統(tǒng)無(wú)法使用,因此使用Cookie而非Session。

        登錄時(shí)以用戶的id為key在緩存中保存時(shí)間戳,在Cookie中以一個(gè)全局變量為key保存時(shí)間戳。Cookie保存在瀏覽器本地,緩存保存在服務(wù)端。用戶在另一個(gè)終端登錄,會(huì)觸發(fā)相同的代碼,更新在服務(wù)端的緩存key相同,時(shí)間戳value就會(huì)發(fā)生變化。

        接下來(lái)在每個(gè)頁(yè)面的引入功能寫(xiě)入功能js文件即可,寫(xiě)一個(gè)實(shí)現(xiàn)每次載入頁(yè)面都會(huì)定時(shí)器10執(zhí)行的查詢后臺(tái)的flag對(duì)應(yīng)的緩存value,并與本地Cookie中的時(shí)間戳相比較,如果不一致,則說(shuō)明用戶在別的客戶端登錄過(guò),可以清空Cookie強(qiáng)制退出,由于后一次登錄更改服務(wù)器緩存的時(shí)間戳,所以前一次的登錄會(huì)被強(qiáng)制退出。

        3.3 資源管理方面

        3.3.1 數(shù)據(jù)模塊

        首先,在前端HTML中添加視頻上傳的頁(yè)面,在js中添加上傳視頻/圖片的方法和組件,視頻/圖片上傳的前端執(zhí)行便完成。其次,新建一個(gè)文件,寫(xiě)視頻播放的頁(yè)面,再寫(xiě)接口將前端的值傳到后端,在后端controller層寫(xiě)兩個(gè)接口。隨后,在service業(yè)務(wù)層中,寫(xiě)service接口和serviceImpl實(shí)現(xiàn)類。需要添加這兩個(gè)數(shù)據(jù)庫(kù)視頻表和圖片的實(shí)體類,這里的變量必須和數(shù)據(jù)庫(kù)的字段一樣,否則會(huì)報(bào)錯(cuò)。最后,在dao層寫(xiě)用于后端鏈接數(shù)據(jù)庫(kù)增、刪、改、查等操作的接口,視頻便能存入數(shù)據(jù)庫(kù)。

        3.3.2 視頻模塊

        編寫(xiě)前端代碼。寫(xiě)出進(jìn)度條模型用代碼,運(yùn)行代碼檢查是否正確,確認(rèn)無(wú)誤后將寫(xiě)完的代碼放進(jìn)項(xiàng)目中,并且修改進(jìn)度條下數(shù)據(jù)的獲取途徑,改為request。

        寫(xiě)兩個(gè)接口,一個(gè)用于獲取進(jìn)度條數(shù)據(jù),一個(gè)用于刷新進(jìn)度條數(shù)據(jù)。前端寫(xiě)好這兩個(gè)接口是實(shí)現(xiàn)前后端數(shù)據(jù)交互的過(guò)程之一。

        該項(xiàng)目中的進(jìn)度條主要用來(lái)體現(xiàn)觀看視頻的進(jìn)度,而觀看視頻進(jìn)度主要代碼邏輯在于觀看的時(shí)間和視頻總時(shí)間的比較,進(jìn)度條的數(shù)據(jù)計(jì)算方式是:百分?jǐn)?shù)=(觀看的時(shí)間/視頻的總時(shí)間)×100%。在controller層中新增兩個(gè)接口接前端,隨后在service業(yè)務(wù)層中,寫(xiě)service接口和serviceImpl實(shí)現(xiàn)類。最后在dao層,這層Java與數(shù)據(jù)庫(kù)連接,將進(jìn)度存入數(shù)據(jù)庫(kù)中,下次觀看時(shí)直接從上次觀看處繼續(xù)播放。

        4 結(jié)語(yǔ)

        線上教育已經(jīng)成為一種新興的輔助教育模式,為了更充分地發(fā)揮線上教育優(yōu)勢(shì),本系統(tǒng)結(jié)合線上教育的實(shí)際情況,使用前后端分離的Spring Cloud框架做了線上考試系統(tǒng)。數(shù)據(jù)處理使用Redis緩存,MySQL儲(chǔ)存用戶信息,保證學(xué)習(xí)和考試功能的正常運(yùn)行。在考試系統(tǒng)實(shí)現(xiàn)過(guò)程中,對(duì)關(guān)鍵問(wèn)題進(jìn)行分析,并確定解決問(wèn)題相關(guān)技術(shù)和方法,例如:使用了遺傳算法來(lái)自動(dòng)組卷、廣度優(yōu)先遍歷題庫(kù),哈希算法來(lái)處理密碼等,這些算法和技術(shù)為線上輔助教學(xué)及考試提供保障。雖然為系統(tǒng)順利開(kāi)發(fā)實(shí)現(xiàn)做了充足的準(zhǔn)備,也具備了系統(tǒng)開(kāi)發(fā)實(shí)現(xiàn)的條件,但是這些算法都只是針對(duì)客觀題設(shè)計(jì)實(shí)現(xiàn),無(wú)法完成主觀題相關(guān)解答。

        猜你喜歡
        頁(yè)面數(shù)據(jù)庫(kù)用戶
        大狗熊在睡覺(jué)
        刷新生活的頁(yè)面
        數(shù)據(jù)庫(kù)
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        數(shù)據(jù)庫(kù)
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        如何獲取一億海外用戶
        天天爽夜夜爽人人爽| 中文字幕乱码琪琪一区| 亚洲av日韩综合一区尤物| 少妇性l交大片7724com| 亚洲精品无码av中文字幕 | 国产精品白浆无码流出| 国产成人亚洲精品一区二区三区 | 饥渴少妇一区二区三区| 国产精品高清网站| 国产成人av性色在线影院色戒| 国产精品流白浆喷水| 久久精品国语对白黄色| 久久青青草原国产毛片| 狠狠色噜噜狠狠狠888米奇视频| 亚洲色欲大片AAA无码| 少妇高潮免费在线观看| 亚洲av无码专区国产不卡顿| 人妻丰满熟妇av无码区免| 一区二区久久不射av| 亚洲av无一区二区三区综合| 少妇久久久久久人妻无码| 久久国产精品二国产精品| 2021年性爱喷水视频| 久久免费亚洲免费视频| 一二三四日本中文在线| 久久国产精品二区99| 国产精品国产三级国产专区51区| 精品国产一区二区三区av| 精品一区二区三区无码免费视频| 最新国产成人在线网站| 男人天堂插插综合搜索| 女人被狂躁c到高潮视频| 亚欧国产女人天堂Av在线播放| 中文字幕成人精品久久不卡| 色吧噜噜一区二区三区| 国产精品嫩草影院av| 99成人无码精品视频| 东风日产车是不是国产的 | av天堂手机免费在线| 欧美日韩视频在线第一区| 久久人人做人人妻人人玩精|