畢業(yè)設(shè)計 ----網(wǎng)上考試系統(tǒng)_第1頁
已閱讀1頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  網(wǎng)上考試系統(tǒng)1 緒論</p><p><b>  1.1課題背景</b></p><p>  隨著人們對信息管理及其運用需求的日益迫切及信息技術(shù)的迅速發(fā)展,信息系統(tǒng)的整合及運用在辦公管理中得到越來越廣泛和深入的應用。在線考試系統(tǒng)是典型的集管理信息系統(tǒng)以及網(wǎng)絡(luò)編程技術(shù),是高校教學工作的重要工作內(nèi)容之一。但隨著高等學校管理工作的內(nèi)容、對象不斷變化,

2、煩瑣的手工操作和一般的計算機軟件已經(jīng)不能滿足現(xiàn)代化考試的需要。運用先進的管理信息系統(tǒng)及友好的界面,對學生息資源以及試題資源進行科學化和系統(tǒng)化管理,己經(jīng)成為高??荚囅到y(tǒng)的發(fā)展趨勢。</p><p>  目前,幾乎所有高校的教學工作部門都已經(jīng)建立了針對日常職能工作的管理信息系統(tǒng),例如,財務處的財務管理信息系統(tǒng)、教務處綜合教務系統(tǒng)、科研處的科研管理信息系統(tǒng)、圖書館的圖書檢索信息系統(tǒng)等。這些系統(tǒng)在很大程度上提高了部門的工

3、作效率和管理水平。然而,對于高校中的在線考試系統(tǒng)來說,目前還缺乏較為完善的系統(tǒng)化信息管理及其有效利用。</p><p>  正是認識到在線考試系統(tǒng)在整個學校信息化過程中的重要地位,才需要利用先進的系統(tǒng)開發(fā)工具和技術(shù),實現(xiàn)管理工作的信息化、科學化管理;真正做到“充分利用現(xiàn)有資源和信息”,開發(fā)出對現(xiàn)有信息的充分整合及操作,減少不必要的、繁雜的手工勞動,提高辦公效率,加快教育體制改革的進程。因此,建設(shè)開發(fā)一個功能完備、

4、操作簡便的在線考試系統(tǒng)己經(jīng)迫在眉睫。</p><p>  1.2主要內(nèi)容及目的</p><p>  在線考試是現(xiàn)階段研究開發(fā)的一個熱點。它是建立在國際互聯(lián)網(wǎng)上的應用系統(tǒng),客戶端的配置可以極為簡單,使考試不受地域的局限。一個完備的在線考試系統(tǒng)可以使用戶在網(wǎng)上學習過后及時檢驗自己的學習效果,已發(fā)現(xiàn)自己的不足,使得學習效率得到很大提高。在線考試系統(tǒng)中題目的生成、試卷的提交、成績的批閱等都可以在網(wǎng)

5、絡(luò)上自動完成。只要形成一套成熟的題庫就可以實現(xiàn)考試的自動化。這樣一來,教師所要做的只是精心設(shè)計題目、維護題庫,而不是組織考試,從而大大減輕了教師的負擔,這表明其經(jīng)濟性是相當可觀的。為了適應新形勢的發(fā)展,進行了這一系統(tǒng)的初步設(shè)計工作,也可以說是做一個初步的探索,希望它能夠在各類考試中發(fā)揮高效、便捷的作用,把老師從繁重的工作中解脫出來!該系統(tǒng)采用C/S模式來設(shè)計,服務器端采用Mysql數(shù)據(jù)庫系統(tǒng)和SWing組件來構(gòu)成考試的應用服務系統(tǒng),同時

6、可進行遠程系統(tǒng)維護和管理;客戶端采用Frame窗口來完成考試全過程。</p><p>  課題研究的內(nèi)容主要是針對學??荚嚨膶嶋H情況和自身特點,利用數(shù)據(jù)庫管理信息系統(tǒng)技術(shù)設(shè)計開發(fā)出一個基于C/S結(jié)構(gòu)的在線考試系統(tǒng),提高學生對知識的掌握以及教師對學生學習水平測試。按照系統(tǒng)開發(fā)的流程,首先通過詳細的系統(tǒng)需求分析,設(shè)計出系統(tǒng)的整體框架結(jié)構(gòu);在此基礎(chǔ)上,采用My Sql實現(xiàn)數(shù)據(jù)庫設(shè)計,利用服務器端的有好界面實現(xiàn)對試卷以及

7、學生信息信息的錄入、刪除、修改、瀏覽、查詢等功能。</p><p>  課題研究的主要目的是通過本畢業(yè)設(shè)計,將數(shù)據(jù)庫理論知識以及Socket網(wǎng)絡(luò)編程轉(zhuǎn)化為實踐經(jīng)驗,并藉此進一步理解數(shù)據(jù)庫理論;掌握數(shù)據(jù)庫應用程序的開發(fā)步驟、設(shè)計方法及編程技巧,熟練使用SQL語言,學會使用Java進行面向?qū)ο蟮木幊?;在編程的過程中,提高自己的動手能力,以及分析和解決問題的能力,為將來能夠開發(fā)出高效信息管理系統(tǒng)打好基礎(chǔ)。</p&

8、gt;<p><b>  1.3論文組織結(jié)構(gòu)</b></p><p>  第一部分:緒論。介紹了論文的選題背景、主要內(nèi)容和研究意義。</p><p>  第二部分:系統(tǒng)概述。對考試系統(tǒng)的發(fā)展趨勢和作用的概述。</p><p>  第三部分:需求分析。對系統(tǒng)需要解決的問題和具備功能進行需求分析。</p><p&g

9、t;  第四部分:系統(tǒng)總體設(shè)計。從整體上對整個系統(tǒng)的模塊進行概述。</p><p>  第五部分:系統(tǒng)實現(xiàn)。對服務器模塊實現(xiàn)方法的介紹。</p><p>  第六部分:系統(tǒng)測試。對問題的解決方法以及系統(tǒng)的測試進行概述。</p><p>  第七部分:總結(jié)與展望。對整個設(shè)計進行歸納總結(jié)和對未來的展望。</p><p><b>  2系

10、統(tǒng)概述</b></p><p>  2.1國內(nèi)外網(wǎng)上考試系統(tǒng)研究現(xiàn)狀與發(fā)展趨勢</p><p>  隨著計算機應用的迅猛發(fā)展,網(wǎng)絡(luò)應用不斷擴大,現(xiàn)在很多國外的大學和社會其他部門都已經(jīng)開設(shè)了遠程教育,通過計算機網(wǎng)絡(luò)實現(xiàn)異地教育和培訓,且這些應用正逐步深入到千家萬戶。人們迫切要求利用這些技術(shù)來進行網(wǎng)上在線考試,以減輕教師的工作負擔及提高工作效率,與此同時也提高了考試的質(zhì)量,從而使考

11、試更趨于公證、客觀,更加激發(fā)學生的學習興趣。</p><p>  例如目前許多國際著名的計算機公司所舉辦的各種認證考試絕大部分采用這種方式。在英國,已經(jīng)實現(xiàn)了英語資格考試的網(wǎng)上學習和水平認證全過程。</p><p>  遠程教育包括很多環(huán)節(jié),例如教學系統(tǒng)、答疑系統(tǒng)和考試系統(tǒng)等等。其中很重要的一個環(huán)節(jié)就是網(wǎng)上考試系統(tǒng),同時它也是最難實現(xiàn)的環(huán)節(jié)。</p><p>  在

12、我國,雖然遠程教育已經(jīng)蓬勃地發(fā)展起來,但是目前學校與社會上的各種考試大都采用傳統(tǒng)的考試方式,在此方式下,組織一次考試至少要經(jīng)過五個步驟,即人工出題、考生考試、人工閱卷、成績評估和試卷分析。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師的工作量將會越來越大,并且其工作將是一件十分煩瑣和非常容易出錯的事情,可以說傳統(tǒng)的考試方式已經(jīng)不能適應現(xiàn)代考試的需要。</p><p>  網(wǎng)上考試系統(tǒng)是建立在國際互聯(lián)網(wǎng)上的

13、應用系統(tǒng),客戶端的配置可以極為簡單,使考試不受地域的局限。</p><p>  2.2網(wǎng)上考試系統(tǒng)的作用</p><p>  一個完備的網(wǎng)上考試系統(tǒng)可以使用戶在網(wǎng)上學習過后及時檢驗自己的學習效果和已發(fā)現(xiàn)自己的不足,使得學習效率得到很大提高。在線考試系統(tǒng)中題目的生成、試卷的提交、成績的批閱等都可以在網(wǎng)絡(luò)上自動完成。只要形成一套成熟的題庫就可以實現(xiàn)考試的自動化。這樣一來,教師所要做的只是精心設(shè)

14、計題目、維護題庫,而不是組織考試,從而減輕了教師的負擔及提高工作效率,與此同時也提高了考試的質(zhì)量,從而使考試更趨于公證、客觀,更加激發(fā)學生的學習興趣。</p><p><b>  3系統(tǒng)需求分析</b></p><p>  該網(wǎng)絡(luò)考試系統(tǒng)主要采用Mysql數(shù)據(jù)庫、SQL語言,Java技術(shù),JDBC技術(shù)和MyEclipse工具,整體設(shè)計遵循軟件工程的方法,這幾種技術(shù)和方

15、法要實現(xiàn)一個軟件系統(tǒng),首先應該進行需求分析,這樣才能令設(shè)計出的軟件滿足用戶的各項功能。</p><p>  3.1 系統(tǒng)需要解決的主要問題</p><p>  首先,因為考試是面向特定的某些對象的,所以考試者進入系統(tǒng)應該進行身份驗證。因為本系統(tǒng)是針對具體科目的考試系統(tǒng),所以考試者進入考試系統(tǒng)后,不需要選擇考試的科目,只能針對本系統(tǒng)規(guī)定的科目進行考試。在線考試于一般的單機考試是不同的。鑒于考

16、試環(huán)境一般為機房,考試者之間的距離很近,為了在線考試做到規(guī)范,對于每個應試者來說,試卷的試題和題量都應是相同的,但試題并不相同。在線考試基于網(wǎng)絡(luò)環(huán)境,試卷應該從服務器的數(shù)據(jù)庫隨機抽取試題后動態(tài)生成的。另外,系統(tǒng)還應該對考試時間進行控制,時間到了會要求考試者交卷??荚囌哌x擇答案提交后,應該由計算機自動判卷,得到成績后顯示出來??荚囃戤吅?,可以返回登錄界面或繼續(xù)考試。此外,應該能夠方便、快捷的對在線考試系統(tǒng)管理。</p>&l

17、t;p>  3.2 系統(tǒng)相關(guān)原理的概述</p><p>  該網(wǎng)絡(luò)考試系統(tǒng)主要采用Mysql數(shù)據(jù)庫、SQL語言,Java技術(shù),JDBC技術(shù)和MyEclipse工具。下面就對這幾種技術(shù)做一個概述。</p><p>  3.2.1 MyEclipse 6.0概述 </p><p>  MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise W

18、orkbench ,簡稱MyEclipse)是對Eclipse IDE的擴展,利用它我們可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及應用程序服務器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML, Struts, JSF, CSS, JavaScript, SQL, Hibernate。</p><p>  在結(jié)構(gòu)上,MyEclipse的特征可

19、以被分為7類:</p><p> ?。?) J2EE模型   </p><p> ?。?) WEB開發(fā)工具   </p><p> ?。?) EJB開發(fā)工具  </p><p>  (4) 應用程序服務器的連接器  </p><p> ?。?) J2EE項目部署服務  

20、</p><p> ?。?) 數(shù)據(jù)庫服務  </p><p>  (7) MyEclipse整合幫助  </p><p>  對于以上每一種功能上的類別,在Eclipse中都有相應的功能部件,并通過一系列的插件來實現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進行單獨的擴展和升級。  &

21、lt;/p><p>  簡單而言,MyEclipse是Eclipse的插件,也是一款功能強大的J2EE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯。</p><p>  3.2.2 JDBC概述</p><p>  JDBC(Java Data Base Connectivity,Java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供

22、統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標準的API,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純 Java API 編寫數(shù)據(jù)庫應用程序,同時,JDBC也是個商標名。 </p><p>  有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個程序,為訪問Oracle數(shù)據(jù)庫

23、又專門寫一個程序,或為訪問Informix數(shù)據(jù)庫又編寫另一個程序等等,程序員只需用JDBC API寫一個程序就夠了,它可向相應數(shù)據(jù)庫發(fā)送SQL調(diào)用。同時,將Java語言和JDBC結(jié)合起來使程序員不必為不同的平臺編寫不同的應用程序,只須寫一遍程序就可以讓它在任何平臺上運行,這也是Java語言“編寫一次,處處運行”的優(yōu)勢。</p><p>  Java數(shù)據(jù)庫連接體系結(jié)構(gòu)是用于Java應用程序連接數(shù)據(jù)庫的標準方法。JD

24、BC對Java 程序員而言是API,對實現(xiàn)與數(shù)據(jù)庫連接的服務提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標準的接口,并為數(shù)據(jù)庫廠商及第三方中間件廠商 實現(xiàn)與數(shù)據(jù)庫的連接提供了標準方法。JDBC使用已有的SQL標準并支持與其它數(shù)據(jù)庫連接標準,如ODBC之間的橋接。JDBC實現(xiàn)了所有這些面向標準的 目標并且具有簡單、嚴格類型定義且高性能實現(xiàn)的接口。 </p><p>  Java 具有堅固、安全、易于使用

25、、易于理解和可從網(wǎng)絡(luò)上自動下載等特性,是編寫數(shù)據(jù)庫應用程序的杰出語言。所需要的只是 Java應用程序與各種不同數(shù)據(jù)庫之間進行對話的方法。而 JDBC 正是作為此種用途的機制。 </p><p>  JDBC 擴展了 Java 的功能。例如,用 Java 和 JDBC API 可以發(fā)布含有 applet 的網(wǎng)頁,而該 applet 使用的信息可能來自遠程數(shù)據(jù)庫。企業(yè)也可以用 JDBC 通過 Intranet 將所有

26、職員連到一個或多個內(nèi)部數(shù)據(jù)庫中(即使這些職員所用的計算機有 Windows、 Macintosh 和UNIX 等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用Java 編程語言,對從 Java 中便捷地訪問數(shù)據(jù)庫的要求也在日益增加。 </p><p>  MIS 管理員們都喜歡 Java 和 JDBC 的結(jié)合,因為它使信息傳播變得容易和經(jīng)濟。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是

27、儲存在不同數(shù)據(jù)庫管理系統(tǒng)上。新程序的 開發(fā)期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應用程序或只更新一次,然后將它放到服務器上,隨后任何人就都可得到最新版本的應用程序。對于 商務上的銷售信息服務, Java 和JDBC 可為外部客戶提供獲取信息更新的更好方法。 </p><p>  JDBC API 既支持數(shù)據(jù)庫訪問的兩層模型(C/S),同時也支持三層模型(B/S)。在兩層模型中,Java applet

28、或應用程序?qū)⒅苯优c數(shù)據(jù)庫進行對話。這將需要一個JDBC驅(qū)動程序來與所訪問的特定數(shù)據(jù)庫管理系統(tǒng)進行 通訊。用戶的SQL語句被送往數(shù)據(jù)庫中,而其結(jié)果將被送回給用戶。數(shù)據(jù)庫可以位于另一臺計算機上,用戶通過網(wǎng)絡(luò)連接到上面。這就叫做客戶機/服務器配置,其中用戶的計算機為客戶機,提供數(shù)據(jù)庫的計算機為服務器。網(wǎng)絡(luò)可以是 Intranet(它可將公司職員連接起來),也可以是 Internet。 </p><p>  在三層模型中

29、,命令先是被發(fā)送到服務的"中間層",然后由它將SQL 語句發(fā)送給數(shù)據(jù)庫。數(shù)據(jù)庫對 SQL 語句進行處理并將結(jié)果送回到中間層,中間層再將結(jié)果送回給用戶。MIS 主管們都發(fā)現(xiàn)三層模型很吸引人,因為可用中間層來控制對公司數(shù)據(jù)的訪問和可作的的更新的種類。中間層的另一個好處是,用戶可以利用易于使用的高級API,而中間層將把它轉(zhuǎn)換為相應的低級調(diào)用。最后,許多情況下三層結(jié)構(gòu)可提供一些性能上的好處。 </p><

30、p>  到目前為止,中間層通常都用 C 或 C++ 這類語言來編寫,這些語言執(zhí)行速度較快。然而,隨著最優(yōu)化編譯器(它把 Java 字節(jié)代碼轉(zhuǎn)換為高效的特定于機器的代碼)的引入,用 Java 來實現(xiàn)中間層將變得越來越實際。這將是一個很大的進步,它使人們可以充分利用 Java 的諸多優(yōu)點(如堅固、多線程和安全等特征)。JDBC 對于從Java的中間層來訪問數(shù)據(jù)庫非常重要。 </p><p>  簡單地說,JDB

31、C 可做三件事:與數(shù)據(jù)庫建立連接、發(fā)送 SQL 語句并處理結(jié)果。下列代碼段給出了以上三步的基本示例: </p><p>  Connection con = DriverManager.getConnection("jdbc:odbc:wombat","login","password");</p><p>  Statement

32、 stmt = con.createStatement(); </p><p>  ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1"); </p><p>  while (rs.next()) { </p><p>  int x = rs.getInt("a&

33、quot;); </p><p>  String s = rs.getString("b"); </p><p>  float f = rs.getFloat("c"); </p><p>  盡管JDBC在Java語言層面實現(xiàn)了統(tǒng)一,但不同數(shù)據(jù)庫仍舊有許多差異。為了更好地實現(xiàn)跨數(shù)據(jù)庫操作,于是誕生了Hibernate項目

34、,Hibernate是對JDBC的再封裝,實現(xiàn)了對數(shù)據(jù)庫操作更寬泛的統(tǒng)一和更好的可移植性。</p><p>  3.2.3 My Sql 簡介</p><p>  數(shù)據(jù)庫是與日常應用緊密相連的,在沒有出現(xiàn)數(shù)據(jù)庫之前,人們通過手工記錄處理各種信息。當需要記錄處理的信息非常多時,手工處理效率就顯得及其低下了。比如病人到醫(yī)院就醫(yī),需要通過掛號、就診、買藥、住院、治療、康復等一系列程序。掛號就要登

35、記病人姓名、性別、年齡等情況。買藥的時候醫(yī)院依據(jù)藥單從成千上萬種藥物中挑出符合要求的藥品,需要知道藥的品名、具體位置、庫存多少、存取多少等等。如果病人很多,醫(yī)院選藥就很復煩了。如果手工處理,工作量大,而且有可能調(diào)拿錯藥。這時如果通過數(shù)據(jù)庫處理,只需簡單地輸入藥品名就馬上可以知道具體位置、庫存還有多少等詳細情況。這樣是不是很方便、提高了效率,并且還避免了拿錯藥的情況。</p><p>  數(shù)據(jù)庫應用系統(tǒng)主要包括數(shù)據(jù)

36、庫(DataBase,簡稱DB)、數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System,簡稱DBMS)、數(shù)據(jù)庫應用3大部分。</p><p>  實際的數(shù)據(jù)庫可能相當復雜,對數(shù)據(jù)庫的操作就更加復雜。我了更有效地管理和操作數(shù)據(jù)庫,人們研制出數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System,簡稱DBMS)。DBMS是人們用于操作數(shù)據(jù)庫的軟件產(chǎn)品。我們平常說的數(shù)據(jù)庫Oracle、MS

37、 SQL Server、MySQL、Sybase、FoxPro、Access等等,都是屬于DBMS范疇。雖然這些DBMS產(chǎn)品的功能各有所異,但是基本功能到大同小異差不多。</p><p>  MySQL是現(xiàn)在流行的關(guān)系數(shù)據(jù)庫中其中的一種,相比其它的數(shù)據(jù)庫管理系統(tǒng)(DBMS)來說,MySQL具有小巧、功能齊全、查詢迅捷等優(yōu)點,關(guān)鍵的是它是免費的,可以在Internet上免費下載到,并可免費使用,對于一般中小型,甚至

38、大型應用都能夠勝任。</p><p>  3.2.4 多線程概述</p><p>  多線程是與單線程比較而言的,普通的Windows采用單線程程序結(jié)構(gòu),其工作原理是:主程序有一個消息循環(huán),不斷從消息隊列中讀入消息來決定下一步所要干的事情,一般是針對一個函數(shù),只有等這個函數(shù)執(zhí)行完之后,主程序才能接收另外的消息來執(zhí)行。比如子函數(shù)功能是在讀一個網(wǎng)絡(luò)數(shù)據(jù),或讀一個文件,只有等讀完這個數(shù)據(jù)或文件才

39、能接收下一個消息。在執(zhí)行這個子函數(shù)過程中你什么也不能干。但往往讀網(wǎng)絡(luò)數(shù)據(jù)和等待用戶輸入有很多時間處于等待狀態(tài),多線程利用這個特點將任務分成多個并發(fā)任務后,就可以解決這個問題。</p><p>  要學會Java中的多線程編程,就得知道如何實現(xiàn)支持多線程的類。Java中實現(xiàn)多線程的類有兩種方法:</p><p>  擴展java.lang.Thread類,用它覆蓋Thread類的run方法。

40、</p><p>  生成實現(xiàn)java.lang.Runnable接口的類并將其它的實例與java.lang.Thread實例相關(guān)聯(lián)。</p><p>  Thread類是負責向其它類提供線程支持的最主要的類,要使用一個類具有線程功能,在Java中只要簡單地從Thread類派生一個子類就可以了擴展Thread類,如printThread.java。</p><p>

41、;  Thread類最重要的方法是run方法。run方法是新線程執(zhí)行的方法,因此生成java.lang.Thread的子類時,必須有相應的run方法。</p><p><b>  3.3系統(tǒng)用戶特點</b></p><p>  本系統(tǒng)的用戶主要有:(1)學生用戶。由于本系統(tǒng)是用于學生考試的系統(tǒng),面向?qū)ο笫菙?shù)量眾多的學生。(2)老師用戶。老師是考試系統(tǒng)中關(guān)鍵的一環(huán),考試

42、系統(tǒng)能否推廣,老師起到?jīng)Q定性的作用,因為老師在不但要在考試之前命好題,還要組織考試,對試卷進行回收、批改。一個優(yōu)秀的考試系統(tǒng)要在不但要考慮到學生的使用方便性,還要顧及到老師的使用簡便性。</p><p><b>  3.4系統(tǒng)設(shè)計目標</b></p><p>  在線考試系統(tǒng)的設(shè)計目標是:用標準化的計算機機房,建立安全快捷的考試系統(tǒng),取代傳統(tǒng)的人工出題,人工改卷,人工

43、計分的模式,實現(xiàn)勞動力的解放,提高教育水平,最終設(shè)計出一個界面友好、操作簡單、便于維護的集成化的考試系統(tǒng)。</p><p><b>  3.5系統(tǒng)功能需求</b></p><p>  在線考試系統(tǒng)的開發(fā)主要包括客戶端的登陸系統(tǒng),服務端的數(shù)據(jù)庫管理系統(tǒng)。以及考試服務的開啟,對于前者要求能耐夠通過網(wǎng)絡(luò)進行數(shù)據(jù)的通信。而對于后者則要求能夠通過有好的界面操作數(shù)據(jù)實現(xiàn)對學生信息

44、以及試卷信息,和學生成績的有效管理,以及參加考試科目的發(fā)布。</p><p>  本系統(tǒng)主要用來實現(xiàn)對學生信息和考卷綜合信息的整合,通過網(wǎng)絡(luò)編程實現(xiàn)計算機上的考試,避免以往人工操作等繁雜的勞動,其主要功能包括考卷信息錄入、修改、刪除、瀏覽、綜合查詢以及學生信息的錄入和設(shè)定,以及參加考試信息的設(shè)定等工作。根據(jù)相關(guān)的調(diào)查研究以及結(jié)合實際工作生活中的體會,此在線考試系統(tǒng)的功能需求如下:</p><p

45、> ?。?)系統(tǒng)集成化,界面風格簡潔,易于操作;</p><p>  (2)服務端具有對考卷信息的錄入、修改、刪除、更新等功能;</p><p>  (3)服務端具有對學生信息的插入,瀏覽和查詢功能;管理員通過查看功能實現(xiàn)信息的可視化管理;</p><p> ?。?)服務端具有試卷選擇和對每個用戶發(fā)布的試題不相同的功能防止用戶之間的抄襲,并且能向各個用戶發(fā)布交

46、卷提醒的功能;</p><p> ?。?)客戶端具有用戶認證和接收服務端發(fā)布的試題以及自動記分并且提交成績的功能。</p><p>  3.6系統(tǒng)功能模塊設(shè)計</p><p>  為了實現(xiàn)系統(tǒng)集成化、界面簡潔及易于操作的要求,考試系統(tǒng)服務端將功能模塊劃分為開啟服務模塊、服務器配置模塊、試卷選擇功能模塊、試卷及試題添加功能模塊、在線考試用戶查看功能模塊、已經(jīng)持久化的學

47、生信息瀏覽功能模塊和學生信息的錄入功能模塊。</p><p>  考試系統(tǒng)服務端實現(xiàn)功能如下:</p><p> ?。?)開啟服務模塊:管理員通過友好的操作界面能夠開啟/停止考試系統(tǒng)的服務。</p><p>  (2)服務器配置模塊:該模塊為系統(tǒng)管理員操作,通過配置信息持久化的方式以及客戶端的連接參數(shù),從而使開啟服務模塊的功能能夠正常運轉(zhuǎn)。</p>&

48、lt;p> ?。?)試卷選擇功能模塊:該模塊功能的正常實現(xiàn)需要服務器配置模塊的正確配置。通過該功能模塊能夠?qū)崿F(xiàn)考試科目的選擇、所選科目試題的查看、考試題目數(shù)的設(shè)定以及對其中試題的增加和刪除功能;</p><p> ?。?)試卷及試題添加功能模塊:該功能模塊的正常運轉(zhuǎn)也需要服務器配置的成功。通過該模塊能夠?qū)崿F(xiàn)添加一個新科目,以及向指定科目添加試題的功能。</p><p> ?。?)在線

49、考試用戶查看功能模塊:該模塊的實現(xiàn)需要服務器的正常開啟,通過該模塊能夠?qū)崿F(xiàn)對正在參加在線考試的學生的查看。從而使教師能夠及時了解參加人數(shù)的輕快</p><p> ?。?)已經(jīng)持久化的學生信息瀏覽功能模塊:該功能模塊的使用需要服務器配置的成功,通過該功能模塊能夠?qū)崿F(xiàn)對已經(jīng)持久化的考生信息和成績的簡單查詢。</p><p>  (7)學生信息的錄入功能模塊:該模塊的實現(xiàn)需要服務器配置信息的正確

50、及成功。通過該功能模塊能夠?qū)崿F(xiàn)學生信息的持久化存儲便于后期的管理和查詢。</p><p>  3.7 系統(tǒng)體系結(jié)構(gòu)選擇</p><p>  目前流行的應用系統(tǒng)的系統(tǒng)結(jié)構(gòu)主要有兩種模式,即客戶機/服務器模式(C/S模式)和瀏覽器/服務器模式(B/S模式)。這兩種方式從本質(zhì)上說,都是基于提供了標準接口的后臺數(shù)據(jù)庫來實現(xiàn)的,但在具體實現(xiàn)上,兩種開發(fā)方法有很大差別。</p><

51、p>  C/S模式是當前數(shù)據(jù)庫應用程序中極為流行的一種方式,尤其是網(wǎng)絡(luò)技術(shù)的充分發(fā)展后,當前很多系統(tǒng)都采用這種方式進行構(gòu)造。它是為了解決傳統(tǒng)數(shù)據(jù)庫的弊端,適應網(wǎng)絡(luò)的發(fā)展而產(chǎn)生的。它包括前端和后臺兩部分,前端是面向用戶的人機界面,后臺是數(shù)據(jù)存儲與管理部分和文件服務器。其主要優(yōu)點是交互性強,在客戶端有一套完整的應用程序,在管理、統(tǒng)計分析、打印等方面功能較強,能提供安全的存取模式,對相同的任務,C/S模式完成速度更快。由于這種體系結(jié)構(gòu)把

52、數(shù)據(jù)和對數(shù)據(jù)的管理都統(tǒng)一放在了服務器上,因此就保證了數(shù)據(jù)的安全性和完整性,同時也可以充分利用服務器的高性能特點。</p><p>  B/S模式是TCP/IP協(xié)議和www服務在C/S方式上的一種應用和擴展,把用戶程序、服務器、網(wǎng)絡(luò)數(shù)據(jù)庫有機地結(jié)合起來。其特點是簡化了客戶端工作,客戶端無需連接數(shù)據(jù)庫,系統(tǒng)維護簡單,支持利用統(tǒng)一的用戶程序訪問不同的系統(tǒng),可以充分利用基于Internet的數(shù)據(jù)訪問方式和新的開發(fā)工具。&

53、lt;/p><p>  在線考試系統(tǒng)主要為了滿足學校對教員學生學習情況掌握的需要。根據(jù)對考試系統(tǒng)的功能和特點的分析,考慮到考試系統(tǒng)主要運用在學校機房并且服務器的配置不是很高的特點,所以在在線考試系統(tǒng)中,采用了交互性強,選作服務器的主機性能不要求很高并且通訊開銷較低,具有較強的數(shù)據(jù)操縱和事務處理能力的客戶機/服務器模式(C/S模式)實現(xiàn)。</p><p>  3.7.1 C/S模式介紹</

54、p><p>  所謂C/S模式是指具有主從分布與協(xié)作處理特征的計算機體系結(jié)構(gòu)。它是指用一個主機連接若干個客戶機,主機上安裝DBMS,以滿足客戶機對數(shù)據(jù)訪問的各種要求??蛻魴C具有單獨的處理事務的能力,可以對數(shù)據(jù)的輸入進行預處理,也可以對主機返回的結(jié)果進行再加工整理,并且與用戶進行交互式對話。</p><p>  它采用客戶機請求服務方式,即服務器根據(jù)請求提供相應的服務。該模式下所有的客戶機與數(shù)據(jù)

55、庫服務器相連,服務器負責數(shù)據(jù)的處理,客戶端負責與用戶的交互,向后臺的服務器發(fā)出請求,其數(shù)據(jù)業(yè)務流程如圖3-1所示: </p><p>  圖3-1 C/S模式結(jié)構(gòu)</p><p>  C/S結(jié)構(gòu)的數(shù)據(jù)交互性強,能夠處理大量的數(shù)據(jù)流,存取安全,處理速度快,界面友好。根據(jù)該特點,C/S模式適合于固定小范圍、安全性要求高、處理數(shù)據(jù)量大的領(lǐng)域。</p&g

56、t;<p>  3.7.2 C/S模式的主要技術(shù)特征</p><p> ?。?)共享資源,節(jié)約經(jīng)費</p><p>  服務器可以同時為多個客戶機提供服務,并且具有并發(fā)控制、封鎖等能力協(xié)調(diào)多用戶對于共享資源的訪問。</p><p><b> ?。?)不對稱協(xié)議</b></p><p>  在客戶機與服務器之

57、間存在著一種多對一的主從關(guān)系,客戶機是主動的,服務器是被動的。</p><p>  (3)基于消息的交換</p><p>  客戶機與服務器是一種一對藕合的系統(tǒng),它們通過消息傳遞機制互相協(xié)作,消息是服務請求與服務響應的媒介。</p><p><b>  4總體設(shè)計</b></p><p><b>  4.1系統(tǒng)

58、結(jié)構(gòu)圖</b></p><p>  根據(jù)需求分析,設(shè)計出了學生考試子系統(tǒng)和考試管理子系統(tǒng)。</p><p>  考試系統(tǒng)模塊如圖4-1所示:</p><p>  圖4-1 考試系統(tǒng)模塊總圖</p><p>  學生考試子系統(tǒng)分為三個模塊:學生登錄模塊,選擇科目模塊和開始考試模塊。如圖4-2所示:</p><p&

59、gt;  圖4-2學生考試子系統(tǒng)模塊</p><p>  考試管理子系統(tǒng)主要是針對管理員的,管理員可以通過登錄考試管理子系統(tǒng)查看學生信息,添加學生信息,添加試題和管理試卷。考試管理子系統(tǒng)的模塊如圖4-3所示:</p><p>  圖4-3考試管理子系統(tǒng)模塊</p><p>  4.2學生考試子系統(tǒng)</p><p>  本系統(tǒng)采用Java+JD

60、BC+MySQL的C/S模式來實現(xiàn)學生考試??荚嚱缑婷烙^,學生操作方便,主要由以下幾個模塊組成:</p><p><b> ?。?)用戶登陸 </b></p><p>  驗證學生的登陸信息是否合法,登記學生的登陸信息。考試開始時,考生在客戶端機器上使用學號和密碼登陸進入考試系統(tǒng)。所有考生的信息(包括學號,姓名和密碼)都保存在MySQL中的student表中。<

61、/p><p><b> ?。?)科目生成 </b></p><p>  接收服務器傳送的考試科目信息,生成科目列表,提供考試選擇科目界面,供考生選擇考試科目。</p><p>  當學生選擇好科目后,點擊開始考試就進入了考試界面。</p><p><b> ?。?)考試界面</b></p>

62、<p>  接受服務器端傳送的考卷信息,依次將每道題顯示出來,供學生進行考試。</p><p>  在考試界面的上面顯示出了考生信息,包括學號,姓名,密碼,和考試科目。考試界面的左邊顯示出了剩余的試題數(shù)量。</p><p>  考試界面的右邊顯示出了考生的剩余時間,當時間到時,系統(tǒng)會自動提交考生的試卷,并立刻顯示考生的分數(shù)。</p><p>  這時,

63、客戶端會自動的把考生的分數(shù)和考生的答卷發(fā)送到服務器端,服務器端會把考生的分數(shù)同時保存在MySQL數(shù)據(jù)庫中的xxxsco表中和xxx.sco文件中,供老師查看。(注意:xxx表示考試科目名稱,例如考生考試的是Java,他的分數(shù)就保存在MySQL中的javasco表中和java.sco文件中。)</p><p>  考試界面的最下面顯示的是試題的選項和考生可以做的操作。</p><p>  學

64、生考試子系統(tǒng)的用例圖如圖4-4所示:</p><p>  圖4-4 學生考試子系統(tǒng)用例圖</p><p>  4.3 考試管理子系統(tǒng)</p><p>  考試管理子系統(tǒng)主要是用來控制考生考試的后臺系統(tǒng),由于面向的操作管理用戶較少,又需實現(xiàn)較多、較復雜的功能,故采用較常用的后臺管理程序開發(fā)方法開發(fā)。 本系統(tǒng)主要有以下幾個模塊組成: 系統(tǒng)配置模塊,系統(tǒng)服務模塊,用戶管

65、理模塊,在線用戶模塊,試題管理模塊,試卷管理模塊。</p><p>  管理員登陸考試管理子系統(tǒng)后首先需要配置系統(tǒng)參數(shù),接著就可以進行開啟考試服務,管理學生,管理試題,設(shè)置試卷等操作。如圖4-5所示:</p><p>  圖4-5 考試管理子系統(tǒng)用例圖 </p><p>  4.4系統(tǒng)包結(jié)構(gòu)及類說明</p><p>  4.4.1系統(tǒng)主要

66、的包和類</p><p> ?。?)客戶端包結(jié)構(gòu):</p><p>  exam.model包:</p><p>  AnswerPaper.java類</p><p>  Paper.java類</p><p>  Request.java類</p><p>  Response.java類&

67、lt;/p><p>  Student.java類</p><p>  examclient包:</p><p>  LoginFrame.java類</p><p>  SelectSubjectFrame.java類</p><p>  ExamMainFrame.java類</p><p> 

68、 QuestionPanel.java類</p><p>  ExamClient.java類</p><p>  FillWidth.java類</p><p> ?。?)服務器端包結(jié)構(gòu):</p><p>  examserver.dao包:</p><p>  StudentDao.java接口</p>

69、<p>  StudentDaoFromMySQL.java類</p><p>  CourseDao.java接口</p><p>  CourseDaoFromMySQL.java類</p><p>  PaperDao.java接口</p><p>  PaperDaoFromMySQL.java類</p>

70、<p>  JDBCUtil.java工具類</p><p>  examserver.gui包:</p><p>  ServerFrame.java類</p><p>  ServerMain.java類</p><p>  examserver.gui.panel包:</p><p>  Service

71、Panel.java類</p><p>  ServiceProcessBar.java類</p><p>  ConfigPanel.java類</p><p>  UserManagePanel.java類</p><p>  OnLinePanel.java類</p><p>  QuestionPanel.ja

72、va類</p><p>  AddQuestionFrame.java類</p><p>  PaperManagePanel.java類</p><p>  MyDefaultTableModel.java類</p><p>  FillWidth.java類</p><p>  QueryWay.java類<

73、/p><p>  examserver.tools包:</p><p>  DateDeal.java類</p><p>  GetParameter.java類</p><p>  4.4.2 客戶端類圖及說明</p><p>  客戶端主要的類有LoginFrame,ExamClient,SelectSubjectFr

74、ame,QuestionPanel和ExamMainFrame。如圖4-6所示:</p><p><b>  圖4-6客戶端類圖</b></p><p><b>  主要類圖說明:</b></p><p> ?。?)LoginFrame, 它是登錄的主窗口,同時也包含了main()函數(shù)。它是運行客戶端的首要類。類說明如表4

75、-1所示:</p><p>  表4-1 LoginFrame類說明 </p><p> ?。?)ExamClient類主要用來與服務器端進行交互。它里面的方法都是用來</p><p>  發(fā)送和接受數(shù)據(jù)的。類說明如表4-2所示:</p><p>  表4-2 ExamClient類說明 </p>&l

76、t;p>  4.4.3 客戶端model類說明</p><p>  Student:純粹的一個javaBean,類里不包含任何業(yè)務代碼。類里定義的屬性</p><p>  有:學號,姓名,班級,密碼,在線,登陸時間。這個javaBean對應著MySQL數(shù)據(jù)庫里的student表。</p><p>  Question:試題類。屬性有:題號,題目描述,試題選項,

77、正確答案。其中試題選項用了一個ArrayList來存放。</p><p>  Paper:考卷類。只有一個試題屬性。使用了一個ArrayList來存放考試試題。這些考試試題都是隨機的從MySQL數(shù)據(jù)庫中相應的試題表中的取出的。</p><p>  AnswerPaper:答卷類。用了一個HashMap來存放考生的答案。其中HashMap中的key存放的是題號,value存放的是考生做的答案

78、。</p><p>  4.4.4 服務器端類圖及說明</p><p>  服務器端的類主要有ServerMain,ServerFrame,ServerPanel,ConfigPanel,</p><p>  UserManagePanel,OnLinePanel,QuestionPanel。如圖4-7所示:</p><p>  圖4-7

79、服務器端類圖</p><p><b>  主要類圖說明:</b></p><p> ?。?)ServerMain,此類只有一個功能。那就是啟動服務器端。它只包括一個方法:Main()方法。類說明如表4-3所示:</p><p>  表4-3 ServerMain類說明</p><p> ?。?)ServerFrame,此

80、類就是服務器端的Frame,里面有6個Panel。服務器端的界面設(shè)置都在這個類里。類說明如表4-4所示:</p><p>  表4-4 ServerFrame類說明</p><p> ?。?)ServerPanel,系統(tǒng)服務模塊的Panel。一些系統(tǒng)服務模塊的設(shè)置都在這個類里進行。里面有開始系統(tǒng)服務,停止系統(tǒng)服務和記錄系統(tǒng)日志功能。類說明如表4-5所示:</p><p&

81、gt;  表4-5 ServerPanel類說明</p><p>  4.4.5 服務器端DAO描述 </p><p>  DAO(Data Access Object)主要用于訪問數(shù)據(jù)庫。為了建立一個健壯的J2EE應用,應該將所有對數(shù)據(jù)源的訪問操作抽象封裝在一個公共API中。用程序設(shè)計的語言來說,就是建立一個接口,接口中定義了此應用程序中將會用

82、到的所有事務方法。在這個應用程序中,當需要和數(shù)據(jù)源進行交互的時候則使用這個接口,并且編寫一個單獨的類來實現(xiàn)這個接口在邏輯上對應這個特定的數(shù)據(jù)存儲。通過定義一些DAO接口,可以使程序的擴展性更好,同時也符合面向接口編程的設(shè)計模式。DAO包下的接口和實現(xiàn)類說明如表4-6所示:</p><p>  表4-6 DAO包下的類描述</p><p>  4.4.6 數(shù)據(jù)庫連接的工具類說明</p&

83、gt;<p>  工具類JDBCUtil主要用于連接數(shù)據(jù)庫。有了這個工具類后,在程序中用到數(shù)據(jù)庫連接時就不用再每次都重新生成了,避免了許多麻煩,提高了程序的可重用性和可維護性。數(shù)據(jù)庫的連接參數(shù)只需要在這個工具類里設(shè)置一次就可以了,非常的方便。一般情況下,由于工具類里面的函數(shù)是通過工具類直接來調(diào)用的,所以都把里面的屬性定義為靜態(tài)屬性,把里面的方法定義為靜態(tài)方法。在使用完資源后,都要求釋放資源,所以在工具類JDBCUtil里,

84、不僅有g(shù)etConnection()方法,還有release()方法用來釋放資源。當管理員不設(shè)置數(shù)據(jù)庫的連接參數(shù)時,系統(tǒng)就會采用在代碼里設(shè)置的默認連接參數(shù)。這些默認的連接參數(shù)是在一個靜態(tài)塊里設(shè)置的。代碼如下:</p><p><b>  static{ </b></p><p>  if(DRIVERNAME==null){</p><p>

85、  DRIVERNAME = "com.mysql.jdbc.Driver";</p><p><b>  }</b></p><p>  if(URL==null){</p><p>  URL="jdbc:mysql://localhost:3306/exam";</p><p&g

86、t;<b>  }</b></p><p>  if(USERNAME==null){</p><p>  USERNAME = "root";</p><p><b>  }</b></p><p>  if(PASSWORD==null){</p><p&

87、gt;  PASSWORD = "123456";</p><p><b>  }</b></p><p><b>  }</b></p><p>  工具類說明如表4-7所示:</p><p>  表4-7 工具類描述</p><p><b>

88、  5 服務器模塊</b></p><p>  服務器配置模塊主要考慮的是關(guān)于信息的存儲方式的選擇及配置,此設(shè)計主要實現(xiàn)了基于MySql數(shù)據(jù)庫的持久化存儲方式(但是根據(jù)Java的開閉設(shè)計原則,本設(shè)計提供了一個接口通過擴展接口實現(xiàn)多種方式的存儲無需更改源代碼只需擴展)。</p><p>  由于采用了JDBC技術(shù)來連接數(shù)據(jù)庫,所有首先需要管理員配置數(shù)據(jù)庫的連接參數(shù)。參數(shù)配置好

89、以后需要啟動服務,客戶端才能連接。</p><p><b>  5.1系統(tǒng)配置模塊</b></p><p>  該模塊主要用來配置數(shù)據(jù)庫的連接參數(shù)。(文件方式我們原先制作了,但是后來用了MySQL數(shù)據(jù)庫后,我們感覺有點多余,就又把它給去除了。)連接數(shù)據(jù)庫的參數(shù)主要有:驅(qū)動程序,連接參數(shù),有戶名和密碼,數(shù)據(jù)庫名。</p><p>  系統(tǒng)在工具類

90、GetParameter中配置了數(shù)據(jù)庫的默認連接參數(shù),這些參數(shù)的參數(shù)名和參數(shù)值都是保存在一個String類型的數(shù)組中:</p><p>  public static String[] keys = {</p><p>  "DriverName",</p><p>  "ConnParameter",</p>

91、<p>  "UserName",</p><p>  "Password",</p><p><b>  "DBName",</b></p><p><b>  "DataWay"</b></p><p>&

92、lt;b>  };</b></p><p>  public static String[] values = {</p><p>  "com.mysql.jdbc.Driver",</p><p>  "jdbc:mysql://127.0.0.1:3306/",</p><p>

93、;<b>  "root",</b></p><p><b>  "123456",</b></p><p><b>  "exam",</b></p><p><b>  "0"</b></p

94、><p><b>  };</b></p><p>  管理員也可以根據(jù)自己的需要配置數(shù)據(jù)庫的連接參數(shù),當管理員設(shè)置好數(shù)據(jù)庫的連接參數(shù)之后,點擊保存配置,就可以將數(shù)據(jù)庫的連接參數(shù)保存到服務器端的一個名為server.properties文件中,管理員可以直接查看這個文件或修改這個文件。保存配置的代碼如下:</p><p>  public stat

95、ic boolean saveProp(String[] keys,String[] values) throws IOException{</p><p>  if(keys.length==values.length){</p><p>  Properties prop = new Properties();</p><p>  FileOutputStrea

96、m fos = new FileOutputStream(new </p><p>  File(path));</p><p>  for(int i=0;i<keys.length;i++)</p><p>  prop.setProperty(keys[i], values[i]);</p><p>  prop.store(fo

97、s, "jihuaqiang");</p><p>  fos.flush();</p><p>  fos.close();</p><p><b>  }else</b></p><p>  return false;</p><p>  return true;</

98、p><p><b>  }</b></p><p>  系統(tǒng)就是通過讀取這個文件來獲得數(shù)據(jù)庫的連接的。讀取配置文件的代碼如下:</p><p>  public static Properties getProp() throws Exception{</p><p>  Properties prop = new Prop

99、erties();</p><p><b>  try {</b></p><p>  prop.load(new FileInputStream(new File(path)));</p><p>  } catch (FileNotFoundException e) {</p><p>  setDefault();

100、</p><p>  prop.load(new FileInputStream(new File(path)));</p><p>  } catch (IOException e) {</p><p>  setDefault();</p><p>  prop.load(new FileInputStream(new File(path

101、)));</p><p><b>  }</b></p><p>  return prop;</p><p><b>  }</b></p><p>  系統(tǒng)配置界面如圖5-1所示:</p><p>  圖5-1 系統(tǒng)配置界面</p><p><

102、;b>  5.2系統(tǒng)服務</b></p><p>  用來啟動服務器端的服務和停止服務器端的服務。只有管理員啟動了服務,客戶端才能進行登陸考試。</p><p>  當管理員啟動了服務后,就會有一個進度條一直在運動,用來提示管理員服務器端的服務正在運行當中。</p><p>  當管理員停止了服務或服務器端因為異常而終止了,進度條就會停止。用來提示

103、管理員服務器端的服務已經(jīng)停止了,客戶端的考生就能再進行考試了。</p><p>  此進度條,我們專門設(shè)計了一個類來實現(xiàn):</p><p>  public class ServiceProcessBar extends JLabel implements ActionListener{</p><p>  private Timer timer = null;&l

104、t;/p><p>  private boolean isPaintLeft = true;</p><p>  /** 漸變矩形的寬度 */</p><p>  private int width = 0;</p><p>  /** 漸變矩形的高度 */</p><p>  private int height = 0

105、;</p><p>  /** 漸變矩形的水平位置 */</p><p>  private int nowX = 0;</p><p>  /** 漸變舉行的垂直位置 */</p><p>  private int nowY = 0;</p><p>  /** 是否從左邊往右邊移動 */</p>&

106、lt;p>  private boolean isLeft = true;</p><p>  /** 是否開始滾動 */</p><p>  private boolean isBeginRoll = false;</p><p>  public ServiceProcessBar(int width,int height) {</p>&l

107、t;p>  setBackground(Color.WHITE);</p><p>  timer = new Timer(16,this);</p><p>  this.width = width*3/4;</p><p>  this.height = height;</p><p>  setSize(width,height)

108、;</p><p>  setPreferredSize(new Dimension(width,height));</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e) {</p><p>  if(isLeft){</p

109、><p>  if(nowX<=getWidth())</p><p><b>  nowX+=3;</b></p><p><b>  else</b></p><p>  isLeft = false;</p><p><b>  }else{</b&g

110、t;</p><p>  if(nowX>=-1*width)</p><p><b>  nowX-=3;</b></p><p><b>  else</b></p><p>  isLeft = true;</p><p><b>  }</b&g

111、t;</p><p>  repaint();</p><p><b>  }</b></p><p><b>  /**</b></p><p><b>  * 開始滾動滾動條</b></p><p><b>  */</b>&l

112、t;/p><p>  public void startRoll(){</p><p>  nowX = -1*this.width;</p><p><b>  nowY = 0;</b></p><p>  isBeginRoll = true;</p><p>  timer.start();&

113、lt;/p><p><b>  }</b></p><p><b>  /**</b></p><p>  * 停止?jié)L動滾動條。</p><p><b>  */</b></p><p>  public void stopRoll(){</p>

114、<p>  isBeginRoll = false;</p><p>  timer.stop();</p><p>  repaint();</p><p><b>  }</b></p><p><b>  }</b></p><p>  啟動服務和停止服務

115、的代碼如下:</p><p>  public void startServer() throws IOException {</p><p>  isServiceRun= true;</p><p>  server = new ServerSocket(6666);</p><p>  new Thread(this).start();

116、</p><p>  writeSysLog(DateDeal.getCurrentTime() + ",服務器服務啟動成功!等待學生進行考試...");</p><p><b>  }</b></p><p>  public void stopServer() throws IOException {</p>

117、<p>  isServerRun = false;</p><p>  if (server != null)</p><p>  server.close();</p><p>  server = null;</p><p>  writeSysLog(DateDeal.getCurrentTime() + ",

溫馨提示

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

評論

0/150

提交評論