• 
    

    
    

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

      ?

      基于SQLServer的標(biāo)準(zhǔn)化考試系統(tǒng)設(shè)計與實(shí)現(xiàn)

      2019-05-23 10:44崔旭冉朱珍珍
      電腦知識與技術(shù) 2019年5期
      關(guān)鍵詞:軟件設(shè)計

      崔旭冉 朱珍珍

      摘要:標(biāo)準(zhǔn)化考試系統(tǒng)的設(shè)計與開發(fā)旨在完成各種標(biāo)準(zhǔn)化考試的系統(tǒng)界面運(yùn)行。通過設(shè)計并優(yōu)化該標(biāo)準(zhǔn)考試系統(tǒng),可實(shí)現(xiàn)選擇試題,考試計時,暫停計時,智能批改試題并給出得分的功能。本課題的具體功能需通過以下具體步驟實(shí)現(xiàn),首先利用Java Swing的相關(guān)知識設(shè)計考試系統(tǒng)界面,方便用戶對各個模塊進(jìn)行了解和使用,即將需要實(shí)現(xiàn)的功能分模塊呈現(xiàn),包括選擇試題模塊界面、考試內(nèi)容模塊界面、考試選擇答案模塊界面、答案核對模塊界面。用戶通過界面指南,完成選題、考試、練習(xí)、評分的具體功能。為使用戶交互更加方便高效,基于此添加連接SqlServer數(shù)據(jù)庫的登錄和注冊功能。

      關(guān)鍵詞:Java;軟件設(shè)計;SQLSever

      中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2019)05-0004-02

      1 設(shè)計概述

      本課題設(shè)計旨在完成集多功能于一體化的標(biāo)準(zhǔn)考試系統(tǒng),用戶可以自行選擇題庫中的任意一套試題進(jìn)行測試,每套試題的考試用時由試題文件給出;在練習(xí)的過程中,用戶也可以隨時暫停計時,以增加模擬考試練習(xí)的靈活性;考試過程中,開始讀取試題的同時,計時器計時,用戶提交答案后自動讀取下一題;每套題目有固定的作答時間,超出時間則不能再讀取任何題目;用戶每答完一道題目,可顯示本題正確答案以及所得分?jǐn)?shù)。

      2 設(shè)計分析

      上述具體功能則是基于Java語言的多線程知識編寫相關(guān)的方法,通過編寫監(jiān)聽改變方法實(shí)現(xiàn)對考試期間選擇不同答案的記錄、題號改變的記錄、試卷改變的記錄,主要監(jiān)聽點(diǎn)擊事件實(shí)現(xiàn)對“開始”“下一題”“暫停”按鈕的控制,即當(dāng)用戶進(jìn)入該頁面時首先選擇試題頁,點(diǎn)擊開始時進(jìn)入考試界面,同時調(diào)用讀取試題方法,考試過程中用戶在左界面區(qū)選擇選項,點(diǎn)擊下一題后,調(diào)用比對答案的方法,自動在右界面區(qū)呈現(xiàn)用戶答案和正確答案,最后通過總得分計算方法輸出得分。在用戶調(diào)用自定義線程結(jié)束方法時,或題目倒計時結(jié)束后,自動統(tǒng)計總分。為增加該考試系統(tǒng)的靈活性,增加系統(tǒng)暫停方法,即暫停方法被調(diào)用后,考試系統(tǒng)進(jìn)入練習(xí)模式,時間倒計時停止,同時可以由用戶自動選擇題號進(jìn)行針對訓(xùn)練。

      綜上,本系統(tǒng)的設(shè)計主要將運(yùn)用到Java Swing界面設(shè)計和Java 多線程知識,要求實(shí)現(xiàn)良好的用戶交互界面設(shè)計和多功能函數(shù)多線程運(yùn)行。

      3 具體實(shí)現(xiàn)

      3.1系統(tǒng)功能模塊設(shè)計

      首先明確該系統(tǒng)的總體功能實(shí)現(xiàn),在用戶界面的基礎(chǔ)上,實(shí)現(xiàn)選擇試卷、考試計時、題目批改與練習(xí)、成績統(tǒng)計的主要功能,之后為增加用戶交互感,添加連接數(shù)據(jù)庫的功能。

      分析系統(tǒng)各功能模塊可初步確定,在用戶界面設(shè)計模塊采用null布局格式,通過頂層容器JFrame的名字.setlayout(null),來設(shè)置其布局為空布局,當(dāng)要在空布局中添加空間或者其他中層容器時,需用setBounds()方法來輸入控件的x,y坐標(biāo)以及它們的寬度和長度。實(shí)現(xiàn)選擇、判分功能則是運(yùn)用itemStateChanged(ItemEvent e)選擇項發(fā)生改變時的回調(diào)事件(一般是在多個選項中選擇一個)和actionPerformed(ActionEvent e)組件的響應(yīng)事件的回調(diào)事件(如按鈕的按下、下拉列表的選擇等,一般是組件焦點(diǎn)按下回車鍵的效果)。選擇試題、讀取題目、對比答案、獲取成績則是自行構(gòu)造相應(yīng)的方法實(shí)現(xiàn),包括:readQuestions()、getAnswewr()、getScore()、zanting()、jixu()等。

      本課題的關(guān)鍵在于如何使用多線程實(shí)現(xiàn)多功能的并發(fā)執(zhí)行,如:在考試過程中對每個題目進(jìn)行倒計時,該計時功能為整個運(yùn)行過程的子線程,為此構(gòu)造自定義線程運(yùn)行的run()方法和線程中斷的stopRun()方法。

      3.2 主要功能模塊

      運(yùn)行Run()方法,啟動線程,并在此線程中完成倒計時功能,即考試開始與倒計時界面同步執(zhí)行。在時分秒不為0的時刻執(zhí)行當(dāng)前線程,并顯示當(dāng)前剩余時間。在倒計時結(jié)束后,設(shè)置“下一題”、“暫?!薄ⅰ斑x擇題目”為禁用狀態(tài),“開始”為啟用狀態(tài),并得到最后分?jǐn)?shù)?;诖?,中斷線程的方法即,使hour,min,sec均為0,此時多線程結(jié)束。

      讀取題目的readQuestions()方法,則是首先讀取題目文檔的第一行的每一套試題限制時間,通過輸入輸出流依次讀取文檔題目至中間面板上,并使用換行分隔符進(jìn)行分割讀取,并通過判斷依次讀取下一題。

      4 程序設(shè)計

      4.1 用戶界面設(shè)計

      用戶界面設(shè)計主要由Java Swing實(shí)現(xiàn),Swing是JAVA基礎(chǔ)類的一部分。Swing包括了圖形用戶界面(GUI)器件如:文本框,按鈕,分隔窗格和表。 Swing提供許多比AWT更好的屏幕顯示元素。它們用純Java寫成,所以同Java本身一樣可以跨平臺運(yùn)行。

      4.2 監(jiān)聽改變事件方法

      監(jiān)聽改變事件方法主要實(shí)現(xiàn)考試進(jìn)行過程中選擇答案、題號、選擇試卷的部分,即用戶可以自主判斷題目答案并進(jìn)行選擇和更改,題號隨“下一題”的點(diǎn)擊改變,試卷由用戶選擇決定。

      4.5監(jiān)聽點(diǎn)擊事件方法

      監(jiān)聽點(diǎn)擊事件,actionPerformed(ActionEvent e)方法,監(jiān)聽要點(diǎn)擊的按鈕為何。在點(diǎn)擊開始按鈕時,將選擇項按鈕、下一題、暫停等按鈕設(shè)置成可點(diǎn)擊狀態(tài),啟動線程,即用戶選擇試卷完畢后將選試卷一欄窗體隱藏,否則中斷線程。

      4.6讀取文檔題目方法

      讀取題目方法,使用Java語言中輸入輸出流的相關(guān)知識,將以.txt文件保存的試卷輸入到中間頁面布局的面板上。文件第一行為整套題目所給定的倒計時時間,以分隔符截取。使用線程睡眠每間隔1秒刷新一次,實(shí)現(xiàn)倒計時。讀取題目則是以換行為間隔符實(shí)現(xiàn),依次將每一行輸出。

      4.7校對答案方法

      使用輸入輸出流將保存在文件中的答案依次讀取,方法與讀取文檔類似。讀取完畢后關(guān)閉文件流。

      4.8線程的運(yùn)行與中斷方法

      本題實(shí)現(xiàn)倒計時與考試系統(tǒng)并發(fā)執(zhí)行的理論基礎(chǔ)是采用多線程的相關(guān)知識,主線程即main方法里的各個函數(shù)的實(shí)現(xiàn),子線程則是支持倒計時功能的函數(shù)。線程睡眠時間為1000毫秒,即每1秒刷新一次,同時添加同步鎖的機(jī)制,使得多線程運(yùn)行更協(xié)調(diào)。中斷線程可在時間片用完后執(zhí)行stopRun()方法。

      5 系統(tǒng)測試

      5.1 登錄注冊頁面實(shí)現(xiàn)

      5.2 用戶界面實(shí)現(xiàn)

      6 設(shè)計總結(jié)

      本課題的順利完成,首先連接數(shù)據(jù)庫實(shí)現(xiàn)用戶注冊和保存記錄登錄的功能,整體界面使用null結(jié)構(gòu)布局,空布局容器可以準(zhǔn)確地定位組件在容器中的位置和大小setBounds(int a,int b,int width,int height)的方法是所有組件都擁有的一個方法,組建調(diào)用該方法可以設(shè)置本身的大小和在容器中的位置。同時使用各組件、架構(gòu)、標(biāo)簽等豐富界面,完成用戶交互界面設(shè)計。

      在功能實(shí)現(xiàn)方面,使用Java多線程實(shí)現(xiàn),及支持多個線程同時運(yùn)行,如:計時與考試模塊同時運(yùn)行,在設(shè)置進(jìn)程同步的同時,又使用同步鎖防止多線程運(yùn)行的混亂,從而支持多種功能在同一系統(tǒng)下的可操作性、可實(shí)用性。監(jiān)聽事件是本系統(tǒng)功能得以實(shí)現(xiàn)的重要部分,使用getSources()方法監(jiān)聽觸發(fā)的是哪個按鈕,從而依次調(diào)用相關(guān)的方法。

      本課題的設(shè)計收獲在于補(bǔ)充學(xué)習(xí)了課堂之外的頁面布局的編程知識,同時能將多線程的知識靈活運(yùn)用到系統(tǒng)設(shè)計中,更鞏固了相關(guān)的編程基礎(chǔ)知識。

      參考文獻(xiàn):

      [1] 劉麗霞.基于SQLServer的數(shù)據(jù)庫技術(shù)及應(yīng)用[M].西安:西北工業(yè)大學(xué)出版社,2007.

      [2] 李春葆.數(shù)據(jù)結(jié)構(gòu)教程 [M]. 5版.北京:清華大學(xué)出版社,2017.

      [3] 耿祥義,張躍平.Java大學(xué)實(shí)用教程[M]. 4版.北京:清華大學(xué)出版社,2017.

      [4] 張劍飛.Java EE開發(fā)技術(shù)[M].黑龍江: 哈爾濱工業(yè)大學(xué)出版社,2013.

      【通聯(lián)編輯:謝媛媛】

      猜你喜歡
      軟件設(shè)計
      基于單片機(jī)SPCE061A的字幕機(jī)點(diǎn)陣式字母電子顯示屏的設(shè)計制作
      北流市| 资阳市| 德格县| 安阳市| 富裕县| 额敏县| 涟水县| 东乡族自治县| 甘谷县| 靖安县| 阳曲县| 黔西县| 汉寿县| 墨玉县| 汕头市| 乐亭县| 大冶市| 新源县| 陆河县| 永寿县| 江源县| 连州市| 合阳县| 七台河市| 祁东县| 大渡口区| 通道| 海林市| 河津市| 石家庄市| 阳信县| 越西县| 宜君县| 威信县| 平陆县| 龙州县| 鄂伦春自治旗| 泊头市| 政和县| 通榆县| 绥滨县|