• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Java技術的考試系統(tǒng)關鍵點研究

      2022-12-25 21:29:06蘇婉怡揣小龍趙國松王煜堯
      無線互聯(lián)科技 2022年18期
      關鍵詞:代碼頁面考試

      蘇婉怡,揣小龍,趙國松,王煜堯

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

      0 引言

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

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

      1 系統(tǒng)框架

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

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

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

      2 數(shù)據(jù)庫設計

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

      3 系統(tǒng)設計中的關鍵問題及解決方法

      3.1 考試方面

      3.1.1 試題模塊

      題庫的導入導出使用的是EasyExcel技術,EasyExcel是Excel的開源項目,在節(jié)約內(nèi)存的條件下支持讀寫Excel。

      導入Excel表格,前端將通過API傳值到后端,之后存入數(shù)據(jù)庫。前端即為編寫頁面,負責將文件的值傳到后端。

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

      3.1.2 試卷模塊

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

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

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

      (3)將個體按照適應度逐一遞減的順序進行排序,如個體適應度值沒達到規(guī)定范圍,則對該個體進行淘汰,并從庫中選擇新的個體替代。

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

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

      3.1.3 防切屏模塊

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

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

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

      3.1.4 答題模塊

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

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

      3.1.5 時間模塊

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

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

      3.1.6 判卷模塊

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

      3.2 用戶方面

      3.2.1 密碼模塊

      考試周期較長是考試的特征。每個學生注冊賬號,難免會出現(xiàn)狀況,所以編寫密碼模塊。

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

      3.2.2 用戶登錄模塊

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

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

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

      3.3 資源管理方面

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

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

      3.3.2 視頻模塊

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

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

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

      4 結(jié)語

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

      猜你喜歡
      代碼頁面考試
      大狗熊在睡覺
      刷新生活的頁面
      創(chuàng)世代碼
      動漫星空(2018年11期)2018-10-26 02:24:02
      創(chuàng)世代碼
      動漫星空(2018年2期)2018-10-26 02:11:00
      創(chuàng)世代碼
      動漫星空(2018年9期)2018-10-26 01:16:48
      創(chuàng)世代碼
      動漫星空(2018年5期)2018-10-26 01:15:02
      Japanese Artificial Intelligence Robotto Take Entrance Examinations
      中學科技(2017年5期)2017-06-07 13:01:01
      你考試焦慮嗎?
      中學科技(2015年6期)2015-08-08 05:35:38
      準備考試
      同一Word文檔 縱橫頁面并存
      外汇| 吐鲁番市| 时尚| 托克逊县| 虞城县| 张家界市| 安图县| 视频| 湟中县| 阳江市| 宜川县| 安溪县| 班戈县| 金山区| 中阳县| 佛冈县| 福贡县| 昌平区| 阿尔山市| 永仁县| 通渭县| 贡山| 阿图什市| 华池县| 博罗县| 大安市| 大渡口区| 定日县| 五家渠市| 英山县| 济宁市| 顺昌县| 突泉县| 东光县| 民权县| 东丰县| 新巴尔虎右旗| 禹州市| 萍乡市| 哈巴河县| 临漳县|