網(wǎng)絡(luò)編程實(shí)踐(Java)_英語標(biāo)準(zhǔn)化考試系統(tǒng)介紹_第1頁
網(wǎng)絡(luò)編程實(shí)踐(Java)_英語標(biāo)準(zhǔn)化考試系統(tǒng)介紹_第2頁
網(wǎng)絡(luò)編程實(shí)踐(Java)_英語標(biāo)準(zhǔn)化考試系統(tǒng)介紹_第3頁
網(wǎng)絡(luò)編程實(shí)踐(Java)_英語標(biāo)準(zhǔn)化考試系統(tǒng)介紹_第4頁
網(wǎng)絡(luò)編程實(shí)踐(Java)_英語標(biāo)準(zhǔn)化考試系統(tǒng)介紹_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、英語標(biāo)準(zhǔn)化考試系統(tǒng)介紹一、導(dǎo)讀(一) 程序功能介紹1. 客戶端1) 與服務(wù)端連接2) 選擇試題3) 計(jì)時(shí)考試4) 讀取試題內(nèi)容(新增內(nèi)容)5) 選擇題6) 填空題(新增內(nèi)容)7) 聽力題(新增內(nèi)容)2. 服務(wù)端1) 查看考生ip地址2) 監(jiān)聽考生的考試狀態(tài)(二) 正文:1. 設(shè)計(jì)分析1) 新增功能的需求分析2) 新增功能的設(shè)計(jì)2. 程序結(jié)構(gòu)3. 程序細(xì)節(jié)分析4. 新增功能的源程序分析5. 系統(tǒng)操作方法6. 調(diào)試結(jié)果(三) 難點(diǎn)重點(diǎn)總結(jié)(四) 結(jié)束語二、正文1. 設(shè)計(jì)分析隨著經(jīng)濟(jì)和科技的發(fā)展,英語四六級(jí)考試走向數(shù)字化是一個(gè)必然趨勢(shì)。而網(wǎng)絡(luò)的發(fā)展也為英語四六級(jí)考試面向大眾化提供一種可能。因此,設(shè)計(jì)

2、一個(gè)可以供英語四六級(jí)在線考試的系統(tǒng),具有一定的實(shí)踐意義。1) 新增功能的需求分析以及設(shè)計(jì)分析A. 讀取試題內(nèi)容。本系統(tǒng)在未修改之前,題目和選項(xiàng)是同時(shí)讀取的,這樣的做法,無法適應(yīng)像英語四級(jí)考試這一類型的帶閱讀題目的選擇題,因此,修改過后的系統(tǒng)把閱讀題的文章和選擇題分開讀取,當(dāng)點(diǎn)擊“下一題”時(shí),需閱讀的文章并不會(huì)隨之消失,而題目會(huì)隨之改變。B. 填空題一份正規(guī)的英語四六級(jí)考試卷子,除了有選擇題以外,還包括填空題。而本系統(tǒng)在修改之前,僅僅提供了選擇題的實(shí)現(xiàn)方法,并沒有給出填空題的實(shí)現(xiàn)方法。因此,本系統(tǒng)修改后,新增了可供用戶輸入的文本框來記錄填空題的答案。C. 聽力題為了適應(yīng)英語四六級(jí)的考試要求,本系

3、統(tǒng)新增了聽力播放功能,并且可以根據(jù)用戶的題號(hào)來選擇播放的聽力片段。2. 程序結(jié)構(gòu)英語標(biāo)準(zhǔn)化考試系統(tǒng)工程一:CStestSystem客戶端源程序工程二:CStestSystemServe服務(wù)端源程序Client.java主類Server.java主類ChoiceFile.java選擇試題文件界面ClientTestArea.java客戶端考試界面ReadTestquestion.java讀取試題文件計(jì)算考試分?jǐn)?shù)1) 客戶端A. Client.java:該java文件生成的類負(fù)責(zé)創(chuàng)建本系統(tǒng)的客戶端主窗口。該類含有main方法,程序從該類開始執(zhí)行。主窗口首先顯示服務(wù)器IP地址的界面,如果服務(wù)器連接成

4、功,就會(huì)在窗口中顯示選擇試題界面;如果連接失敗,則不顯示。B. ChoiceFile.java:該類創(chuàng)建的對(duì)象是Client窗口中的一個(gè)成員變量選擇試題文件界面,負(fù)責(zé)獲取服務(wù)器上試題文件的名字,并將名字添加到客戶端界面的下拉式列表中。C. ClinetTestArea.java:該類負(fù)責(zé)客戶端窗口中的考試界面,該界面可以讀取服務(wù)器的試題、顯示試題、向服務(wù)器提交答案、顯示考試所剩時(shí)間等。新增的功能包括讀取試題文本、填空題以及聽力題的修改都在本java文件中。2) 服務(wù)端A. Server.java:負(fù)責(zé)監(jiān)聽客戶的呼叫,為每個(gè)客戶啟動(dòng)一個(gè)線程,在該線程中實(shí)現(xiàn)和客戶的信息交流。B. ReadTest

5、question.java:該類負(fù)責(zé)讀取試題文件和計(jì)算考試分?jǐn)?shù)。新增功能的服務(wù)器端響應(yīng)時(shí)所做的修改都在本java文件中。3. 程序細(xì)節(jié)分析1) Client.javaA. 變量說明:變量名稱變量類型描述tfaddressTextFieldIP地址輸入框btncallButton呼叫按鈕btnstarttestButton開始考試按鈕lb1,lb2,lb3Label提示文本socketSocket客戶端套接字對(duì)象TestChoiceAreaChoiceFile選擇試題文件頁面TestAreaClientTestArea客戶考試界面B. 方法說明:方法名稱功能Client()創(chuàng)建客戶端窗口,把各個(gè)

6、空間布局到界面中actionPerformed(ActionEvent e)處理按鈕點(diǎn)擊觸發(fā)事件main(String args)程序入口4. 新增功能的源程序分析1) ClientTestArea.javaA. 新增變量變量名稱變量類型描述questionshowTestArea顯示題目說明btnmediaButton播放聽力的按鈕ppublic static int記錄當(dāng)前題目序號(hào)mpublic static int記錄當(dāng)播放聽力片段的序號(hào)TextFieldanswerenter記錄用戶輸入的填空題答案B. 修改思路通過一個(gè)全局變量p來記錄當(dāng)前用戶點(diǎn)擊“下一題”按鈕的次數(shù),結(jié)合if語句來判

7、斷該向服務(wù)器發(fā)出哪種請(qǐng)求指令。例如:點(diǎn)擊第一次時(shí),向服務(wù)器發(fā)送讀取文本請(qǐng)求,從服務(wù)器端獲取文本輸出到questionshow里面,并同時(shí)發(fā)出讀取下一題請(qǐng)求,從服務(wù)端獲得第一道題目輸出到testshow里面。當(dāng)點(diǎn)擊“提交答案”的按鈕時(shí),p增大1,再次點(diǎn)擊“下一題”按鈕時(shí),表示讀取第二題的題目,向服務(wù)器發(fā)出讀取下一題請(qǐng)求,則題目選擇區(qū)的題目會(huì)更改為第二題。以此類推,直到p=7時(shí),選擇題已經(jīng)完全讀取完畢,那么ABCD四個(gè)選項(xiàng)將不能再被點(diǎn)擊,再次點(diǎn)擊“下一題”時(shí),answerenter會(huì)被激活,用戶可以輸入填空題答案。直到p=10時(shí),第一大題結(jié)束,再次點(diǎn)擊“下一題”時(shí),又會(huì)想服務(wù)端發(fā)出讀取文本請(qǐng)求,從

8、服務(wù)器端獲取第二大題文本輸出到questionshow里面,并同時(shí)發(fā)出讀取下一題請(qǐng)求,從服務(wù)端獲得第二大題的第一個(gè)選擇題輸出到testshow里面。這時(shí),btnmedia也會(huì)被喚醒,用戶可以單擊“播放第1段聽力”收聽錄音,繼續(xù)做題。而全局變量m的功能與p類似,都是用來識(shí)別用戶做題進(jìn)度的標(biāo)識(shí)。變量m的作用是通過記錄btnmedia按鈕被點(diǎn)擊的次數(shù),來向服務(wù)端發(fā)出不同的請(qǐng)求,m=1時(shí),發(fā)出播放聽力1的請(qǐng)求,以此類推。C. 具體代碼2) Server.javaA. 新增變量變量名稱變量類型描述playerJavaSoundAudioClip播放音頻文件B. 修改思路通過修改代碼中的if語句的判斷標(biāo)準(zhǔn)

9、來響應(yīng)從服務(wù)端中接收的請(qǐng)求。播放聽力的實(shí)現(xiàn)花了比較多時(shí)間,起初,我所知道的能夠播放音頻文件的方法是基于Applet包的,但是本系統(tǒng)并不是Applet的程序,因此無法調(diào)用Applet包里的newAudioClip()方法來實(shí)現(xiàn)。因此,查了一些java的書和實(shí)例,最后發(fā)現(xiàn)了com.sun.media.sound這一個(gè)包里面的方法可以實(shí)現(xiàn)播放音頻文件和對(duì)音頻文件進(jìn)行控制。還有其他的方法,但是都沒有這個(gè)方法的代碼簡(jiǎn)潔,所以本系統(tǒng)中我就采用了這一方法。實(shí)現(xiàn)了播放聽力之后又出現(xiàn)一個(gè)新的問題就是,當(dāng)我再次點(diǎn)擊播放聽力的按鈕時(shí),若前一段聽力還沒有結(jié)束播放,就會(huì)導(dǎo)致兩段聽力重疊播放。而服務(wù)器端在接收客戶端發(fā)來的

10、請(qǐng)求時(shí)才會(huì)新建一個(gè)player來播放聽力,因此無法在player還沒有實(shí)例化的情況下對(duì)player進(jìn)行stop()操作。為了解決這個(gè)問題,我只好重新寫了一個(gè)if判斷語句,專門實(shí)例化一個(gè)聲音文件,并在實(shí)例化結(jié)束后馬上停止它的播放來解決這一個(gè)問題。C. 具體代碼3) ReadTestquestion.javaA. 新增變量變量名稱變量類型描述selectionsString數(shù)組記錄用戶輸入的答案correctAnswersString數(shù)組正確答案B. 修改思路把字符串用split()方法截取成字符串?dāng)?shù)組的一個(gè)個(gè)元素,通過equals()方法來進(jìn)行字符串?dāng)?shù)組元素值的比較,來實(shí)現(xiàn)用戶答案與標(biāo)準(zhǔn)答案的對(duì)

11、照,計(jì)算得分。輸出答案的時(shí)候也是同上述的方法,C. 具體代碼5. 系統(tǒng)操作方法1) 放開兩個(gè)工程分別運(yùn)行Client.java文件與Server.java文件。2) 在客戶端輸入IP地址,例如:127.0.0.1,點(diǎn)擊“呼叫”按鈕與服務(wù)器端連接。3) 成功連接后出現(xiàn)“選擇試題文件界面”。4) 選擇試題文件“A”,點(diǎn)擊“開始考試”。5) 點(diǎn)擊“讀取題目”l 考試計(jì)時(shí)開始。l “讀取題目”按鈕文本變成“讀取下一題”,并且不可點(diǎn)擊。l ABCD選項(xiàng)可選。6) 選擇一個(gè)答案,點(diǎn)擊“提交答案”按鈕。l “讀取下一題”按鈕可點(diǎn)擊l ABCD按鈕清空l “提交答案”按鈕不可點(diǎn)擊7) 再次點(diǎn)擊“讀取下一題”按

12、鈕l 試題內(nèi)容變成由第一題變?yōu)榈诙},閱讀文本不變。8) 交替點(diǎn)擊“讀取下一題”、選擇選項(xiàng)、“提交答案”,直到第八題時(shí)。l 系統(tǒng)進(jìn)入填空題答題區(qū)l ABCD選項(xiàng)不可選l 文本輸入框可輸入文本9) 交替點(diǎn)擊“讀取下一題”、輸入答案、“提交答案”,直到第十一題時(shí)。l 系統(tǒng)進(jìn)入第二大題聽力題l ABCD選項(xiàng)可選l 輸入文本框不可輸入文本l “播放聽力”按鈕可點(diǎn)擊10) 點(diǎn)擊“播放第1段聽力”l 播放聽力按鈕不可再次點(diǎn)擊,一段聽力只能播放一次11) 再次點(diǎn)擊“讀取下一題”l 未播完的聽力停止播放l 播放聽力按鈕的提示變成“播放第2段聽力”12) 交替點(diǎn)擊“讀取下一題”、播放聽力、選擇選項(xiàng)、“提交答案”

13、,直到第十五題時(shí)。l 試題A的全部試題讀完,讀取下一題按鈕不可點(diǎn)擊l 播放聽力按鈕也不可點(diǎn)擊13) 點(diǎn)擊“查看得分”按鈕14) 當(dāng)考試時(shí)間計(jì)時(shí)結(jié)束時(shí),“提交答案”按鈕不可點(diǎn)擊,考試結(jié)束。(五) 難點(diǎn)重點(diǎn)總結(jié)1. 使用com.sun.media.sound這一個(gè)包里面的方法來實(shí)例化一個(gè)播放音頻文件的player會(huì)占用系統(tǒng)很多資源,而且每一次要控制前一段聽力的停止都會(huì)新建一個(gè)player,又浪費(fèi)了很多系統(tǒng)資源,導(dǎo)致電腦變得很慢。2. 由于程序設(shè)計(jì)的局限性,這個(gè)系統(tǒng)只能播放一套四級(jí)題目的聽力,換成試題B時(shí),系統(tǒng)還是播放試題A的聽力。3. 系統(tǒng)沒有實(shí)現(xiàn)數(shù)據(jù)庫的連接,無法核對(duì)和顯示考生信息。4. 缺少登錄功能。(六) 結(jié)束語經(jīng)過一個(gè)學(xué)期的學(xué)習(xí),本系統(tǒng)是我第一次修改的比較大型的一個(gè)連網(wǎng)java程序,所以,盡管基本功能已經(jīng)實(shí)現(xiàn),但是局限性很多,并不能很好地體

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論