畢業(yè)設(shè)計論文基于CS模式的小型局域網(wǎng)考試系統(tǒng)(java)_第1頁
畢業(yè)設(shè)計論文基于CS模式的小型局域網(wǎng)考試系統(tǒng)(java)_第2頁
畢業(yè)設(shè)計論文基于CS模式的小型局域網(wǎng)考試系統(tǒng)(java)_第3頁
畢業(yè)設(shè)計論文基于CS模式的小型局域網(wǎng)考試系統(tǒng)(java)_第4頁
畢業(yè)設(shè)計論文基于CS模式的小型局域網(wǎng)考試系統(tǒng)(java)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢 業(yè) 設(shè) 計 論 文題目:基于C/S模式的小型局域 網(wǎng)考試系統(tǒng) 系 別: 專 業(yè): 姓 名: 學(xué) 號: 指導(dǎo)教師: 摘要隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與普及,網(wǎng)絡(luò)文化伴隨著網(wǎng)絡(luò)時代的到來也應(yīng)運而生,作為一種新的文化形式已基本完備。本文概述了小型局域網(wǎng)考試系統(tǒng)的相關(guān)設(shè)計內(nèi)容,論文開始簡單的介紹了本次畢業(yè)設(shè)計的需求分析及設(shè)計背景,分析了目前各行各業(yè)信息化的進程,強調(diào)了無紙化考試對于現(xiàn)行教育事業(yè)的必要性,結(jié)合本次畢業(yè)實習(xí)的經(jīng)歷我確定了本次畢業(yè)設(shè)計的內(nèi)容。本文重點介紹了局域網(wǎng)考試系統(tǒng)的設(shè)計構(gòu)思,經(jīng)過認真的思考決定采用與平臺無關(guān)的Java系統(tǒng)開發(fā)語言,利用Java語言的安全性、健壯性、可移植性等特性有效的完成對

2、系統(tǒng)的開發(fā);詳細介紹了以客戶/服務(wù)器為模型(C/S模型)的局域網(wǎng)考試系統(tǒng)的總體功能結(jié)構(gòu),重點闡述了在實際的設(shè)計過程中遇到的各種問題及解決方法;本文還在設(shè)計階段對系統(tǒng)數(shù)據(jù)處理模塊設(shè)計類圖等做了簡單的介紹,對系統(tǒng)中涉及的一些主要的代碼進行了簡單的介紹;本文還對系統(tǒng)實現(xiàn)的主要功能做了簡單的概述,主要功能有:試卷錄入、試卷發(fā)放、發(fā)放考生信息單、發(fā)送即時通知、開啟考場監(jiān)控、調(diào)用輔助工具(計算器和記事本)、成績評定、成績查詢、成績導(dǎo)出等。本文的最后我寫了一下本次設(shè)計的感想,著重說出了本次設(shè)計中自己的得失以及該設(shè)計存在的不足之處。關(guān)鍵詞:Java,C/S模型,局域網(wǎng),考試系統(tǒng) IIAbstractWith

3、the development and the popularity of the Internet, cyberculture turns out on the appearance of cybertime, which is almost fully equipped as a new cultural form.This article outlines the small LAN design content related to examination system, the paper started a simple introduction to this graduatio

4、n project needs analysis and design background, analysis of the current process of information industries, emphasizing the paperless examination to the existing education the necessity of combining the experience of this graduation internship I'm sure the contents of this graduation project.This

5、 article focuses on the local area network examination system design idea, after careful thought decided to adopt a platform-independent Java system development language, the use of the Java language, security, robustness, portability and other features and effective completion of the system develop

6、ment; detailed introduces the client / server model (C / S model) LAN test system's overall functional structure, focusing on the actual design process encountered problems and solutions; paper still in the design stage of the system data processing module design class diagrams, and so do a brie

7、f introduction of the system involved in some major code was brief; article also achieve the main function of the system to do a simple overview of the main features are: paper entry, release papers to disseminate information on the candidates list, send instant notification, open examination room m

8、onitoring, call the auxiliary tool (calculator and notepad), performance evaluation, performance information, export and other achievements. The last article I wrote about this design thoughts, focusing uttered this design their own pros and cons as well as the design of existing deficiencies.Keywor

9、ds: Java, C / S model, LAN, examination systemIII目 錄摘要IAbstractII目 錄1第1章 緒論11.1設(shè)計背景11.2 設(shè)計的目的與意義21.3 開發(fā)環(huán)境介紹21.3.1 硬件環(huán)境21.3.2 軟件環(huán)境3第2章 需求分析42.1 系統(tǒng)可行性分析52.1.1社會可行性分析52.1.2 技術(shù)可行性分析52.1.3 經(jīng)濟可行性52.1.4 可行性分析結(jié)論62.2 系統(tǒng)功能分析6第3章 系統(tǒng)總體設(shè)計63.1 系統(tǒng)設(shè)計原理63.2 技術(shù)設(shè)計方案73.2.1 Java網(wǎng)絡(luò)編程73.2.2 Java對象的序列化83.2.3 Java多線程編程8第4章

10、系統(tǒng)詳細設(shè)計84.1系統(tǒng)功能設(shè)計84.2 模塊類設(shè)計94.3 界面設(shè)計10第5章 系統(tǒng)的實現(xiàn)與應(yīng)用115.1 服務(wù)器端的實現(xiàn)115.2客戶端的實現(xiàn)155.3 考試結(jié)果處理175.4 源程序清單18第6章 結(jié)論29參考文獻30致謝312第1章 緒論1.1設(shè)計背景隨著計算機技術(shù)和網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,計算機已經(jīng)應(yīng)用到各個領(lǐng)域。利用校園局域網(wǎng)在計算機上進行考試也越來越普遍。傳統(tǒng)的考試從出卷、制卷、評卷、登分工作量極大,而且人工出卷和評卷容易受到教師主觀因素的影響。網(wǎng)絡(luò)考試利用計算機自動的出卷和評卷,大大的減輕了教師的工作量。Java語言作為一種網(wǎng)絡(luò)編程語言,它具有面向?qū)ο?、平臺獨立、多線程等特點,非常

11、適合網(wǎng)絡(luò)環(huán)境下開發(fā)應(yīng)用程序。Java提供的Socket技術(shù)也大大的簡化了原有的網(wǎng)絡(luò)操作過程,使得網(wǎng)絡(luò)應(yīng)用程序在開發(fā)的時候不必再考慮網(wǎng)絡(luò)底層的代碼設(shè)計,大大的縮短了設(shè)計的時間。1.2 設(shè)計的目的與意義為了適應(yīng)新形勢的發(fā)展,使其盡快在各類考試中發(fā)揮高效、便捷的作用,把老師從繁重的工作中解脫出來本次畢業(yè)設(shè)計我設(shè)計了一個簡單的小型局域網(wǎng)考試系統(tǒng)綠光考試系統(tǒng)。綠光考試系統(tǒng)旨在實現(xiàn)考試的無紙化管理,對一些科目的考試可以通過局域網(wǎng)(校園網(wǎng))進行,方便校方考務(wù)的管理,也方便了考生。為了能使系統(tǒng)適應(yīng)不同的操作系統(tǒng),我選擇了與平臺無關(guān)的開發(fā)語言Java;為了實現(xiàn)考場監(jiān)控等特色功能,我采用了C/S模式,因為B/S無

12、法滿足;為了保障系統(tǒng)通信,我采用了面向連接的TCP協(xié)議;為了讓用戶獲得更方便的操作,我努力使系統(tǒng)最終無需安裝即可使用,如通過對象序列化技術(shù)取代數(shù)據(jù)庫、增加記憶功能等;為了能使系統(tǒng)容易擴展新的功能我采用優(yōu)秀的設(shè)計模式進行系統(tǒng)架構(gòu)。綠光考試系統(tǒng)以其出色的功能特性為老師和學(xué)生帶來更高的工作和學(xué)習(xí)效率。1.3 開發(fā)環(huán)境介紹1.3.1 硬件環(huán)境編程工具:JDK+Eclipse+Rational Rose+Visio機型:聯(lián)想ThinkPad E40處理器名稱:AMD Athlon(tm) II P340 Dual-Core Processor 雙核硬盤驅(qū)動器:WDC WD1600AAJS-22WAAO系

13、統(tǒng)內(nèi)存:金士頓內(nèi)存2GB硬盤:希捷 ST9320325AS (320GB)顯示卡:ATI Mobility Radeon HD 5400 Series (1024 MB)網(wǎng)卡:Microsoft Virtual WiFi Miniport Adapter 11b/g/n Wireless LAN Mini-PCI Express Adapter IIRealtek PCIe GBE Family Controller顯示器:通用即插即用監(jiān)視器操作系統(tǒng): Microsoft Windows 7 旗艦版 Service Pack 1 (build 7601), 32-bit1.3.2 軟件環(huán)境1.

14、EclipseEclipse 是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。雖然大多數(shù)用戶很樂于將 Eclipse 當作 Java 集成開發(fā)環(huán)境(IDE)來使用,但 Eclipse 的目標卻不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個組件主要針對希望擴展 Eclipse 的軟件開發(fā)人員,因為它允許他們構(gòu)建與 Eclip

15、se 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。1這種平等和一致性并不僅限于 Java 開發(fā)工具。盡管 Eclipse 是使用Java語言開發(fā)的,但它的用途并不限于 Java 語言;例如,支持諸如C/C+、COBOL、PHP等編程語言的插件已經(jīng)可用,或預(yù)計將會推出。Eclipse 框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)?;?Eclipse 的應(yīng)用程序的一個突出例子是 IBM Rational Software Archit

16、ect,它構(gòu)成了 IBM Java 開發(fā)工具系列的基礎(chǔ)。2.JDKJDK(Java Development Kit)是Sun Microsystems針對Java開發(fā)員的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的Java SDK。JDK 是整個Java的核心,包括了Java運行環(huán)境、Java工具和Java基礎(chǔ)類庫。JDK是學(xué)好Java的第一步。而專門運行在x86平臺的Jrocket在服務(wù)端運行效率也要比Sun JDK好很多。從SUN的JDK5.0開始,提供了泛型等非常實用的功能,其版本也不斷更新,運行效率得到了非常大的提高。3.Rational RoseRational Rose包

17、括了統(tǒng)一建模語言(UML),OOSE,以及OMT。其中統(tǒng)一建模語言(UML)由Rational公司3位世界級面向?qū)ο蠹夹g(shù)專家Grady Booch、Ivar Jacobson、和Jim Rumbaugh通過對早期面向?qū)ο笱芯亢驮O(shè)計方法的進一步擴展而得來的,它為可視化建模軟件奠定了堅實的理論基礎(chǔ)。同時這樣的淵源也使Rational Rose力挫當前市場上很多基于UML可視化建模的工具,例如Microsoft的Visio2002、Oracle的Designer2000,還有PlayCase 、CA BPWin、CA ERWin、Sybase PowerDesigner等等。Rational Ros

18、e 是一個完全的、具有能滿足所有建模環(huán)境(Web開發(fā),數(shù)據(jù)建模,Visual Studio和 C+ )靈活性需求的一套解決方案。Rose 允許開發(fā)人員,項目經(jīng)理,系統(tǒng)工程師和分析人員在軟件開發(fā)周期內(nèi)在將需求和系統(tǒng)的體系架構(gòu)轉(zhuǎn)換成代碼,消除浪費的消耗,對需求和系統(tǒng)的體系架構(gòu)進行可視化,理解和精練。通過在軟件開發(fā)周期內(nèi)使用同一種建模工具可以確保更快更好的創(chuàng)建滿足客戶需求的可擴展的、靈活的并且可靠的應(yīng)用系統(tǒng)。Rational Rose的兩個受歡迎的特征是它的提供反復(fù)式發(fā)展和來回旅程工程的能力。Rational Rose允許設(shè)計師利用反復(fù)發(fā)展(有時也叫進化式發(fā)展),因為在各個進程中新的應(yīng)用能夠被創(chuàng)建,

19、通過把一個反復(fù)的輸出變成下一個反復(fù)的輸入。(這和瀑布式發(fā)展形成對比,在瀑布式發(fā)展中,在一個用戶開始嘗試之前整個工程被從頭到尾的完成。)然后,當開發(fā)者開始理解組件之間是如何相互作用和在設(shè)計中進行調(diào)整時,Rational Rose能夠通過回溯和更新模型的其余部分來保證代碼的一致性,從而展現(xiàn)出被稱為"來回旅程工程"的能力,Rational Rose是可擴展的,可以使用可下載附加項和第三方應(yīng)用軟件,它支持COM/DCOM (ActiveX),JavaBeans和Corba組件標準.4.Microsoft Office Visio 2007Microsoft Office Visio

20、 2007便于IT和商務(wù)專業(yè)人員就復(fù)雜信息、系統(tǒng)和流程進行可視化處理、分析和交流的軟件。使用具有專業(yè)外觀的 Office Visio 2007圖表,可以促進對系統(tǒng)和流程的了解,深入了解復(fù)雜信息并利用這些知識做出更好的業(yè)務(wù)決策。Microsoft Office Visio幫助您創(chuàng)建具有專業(yè)外觀的圖表,以便理解、記錄和分析信息、數(shù)據(jù)、系統(tǒng)和過程。大多數(shù)圖形軟件程序依賴于藝術(shù)技能。然而,在您使用 Visio 時,以可視方式傳遞重要信息就像打開模板、將形狀拖放到繪圖中以及對即將完成的工作應(yīng)用主題一樣輕松。使用 Office Visio 2007,可以通過多種圖表,包括業(yè)務(wù)流程圖、軟件界面、網(wǎng)絡(luò)圖、工作

21、流圖表、數(shù)據(jù)庫模型和軟件圖表等直觀地記錄、設(shè)計和完全了解業(yè)務(wù)流程和系統(tǒng)的狀態(tài)。通過使用 Office Visio Professional 2007 將圖表鏈接至基礎(chǔ)數(shù)據(jù),以提供更完整的畫面,從而使圖表更智能、更有用。第2章 需求分析傳統(tǒng)的學(xué)校教學(xué)中,進行一場考試,要求老師打印試卷、安排考試、監(jiān)考、收集試卷、評改試卷,這是一個繁雜的過程,需要大量人力、物力與時間的投入,已經(jīng)越來越不適應(yīng)學(xué)校信息化建設(shè)與現(xiàn)代教學(xué)的需要。而網(wǎng)絡(luò)考試系統(tǒng),正是信息化建設(shè)的產(chǎn)物,它是傳統(tǒng)考場的延伸,它可以利用計算機網(wǎng)絡(luò)方便地對學(xué)生進行考試,大大簡化傳統(tǒng)考試的過程,因此網(wǎng)絡(luò)考試是電子化教學(xué)的不可缺少的輔助手段。在當今信息

22、時代,計算機技術(shù)與網(wǎng)絡(luò)技術(shù)越來越廣地應(yīng)用于各個領(lǐng)域,改變著人們的學(xué)習(xí)、工作、生活乃至思維方式,也引起了教育領(lǐng)域的重大變革。將計算機與網(wǎng)絡(luò)技術(shù)應(yīng)用于現(xiàn)代高等教育中,是現(xiàn)代高等教育發(fā)展的需要,也是改革教育模式,提高學(xué)校教學(xué)效果和教學(xué)效率、提高科研和管理水平的必要手段。2.1 系統(tǒng)可行性分析可行性分析是對現(xiàn)行系統(tǒng)進行初步調(diào)查和研究之后的結(jié)論,它反映了新系統(tǒng)開發(fā)策略。下面分別從社會可行性、技術(shù)可行性以及經(jīng)濟可行性三方面進行可行性分析。2.1.1社會可行性分析由于學(xué)校學(xué)生人數(shù)數(shù)量眾多,因而通過電腦化操作可以減少紙張的使用,同時由于數(shù)據(jù)直接通過局域網(wǎng)傳輸,可以減少信息傳遞時間,提高效率,這個系統(tǒng)很大程度上

23、方便了老師和學(xué)生。因此從社會可行性分析角度來說, 該系統(tǒng)的開發(fā)和設(shè)計是可行的。2.1.2 技術(shù)可行性分析本系統(tǒng)是一個基于C/S結(jié)構(gòu)的小型局域網(wǎng)系統(tǒng),采用面向?qū)ο蠹夹g(shù)、序列化技術(shù)、各種Java流行框架的應(yīng)用等Java先進技術(shù)開發(fā)的應(yīng)用程序,現(xiàn)有的開發(fā)技術(shù)已非常成熟,且被廣泛應(yīng)用于各行各業(yè),利用現(xiàn)有技術(shù)完全可以達到功能目標。2.1.3 經(jīng)濟可行性在經(jīng)濟上,本系統(tǒng)只是針對機房中小型局域網(wǎng)進行設(shè)計,旨在減輕教學(xué)壓力。除此之外,在可擴充性方面,系統(tǒng)采用生命周期法把一個復(fù)雜的系統(tǒng)開發(fā)工作分解成一些相對獨立的部分,可以分階段實施,為以后的擴充提供方便,另外,系統(tǒng)開發(fā)時,充分考慮到,系統(tǒng)以后的可能擴展,因此對

24、于二次開發(fā),將會更加方便,也即是說,系統(tǒng)的適應(yīng)性很強,可以長期使用。在很大程度上減輕了在考試方面的經(jīng)濟投入,節(jié)省一部分教育投入。根據(jù)分析研究,使用本套住院信息管理系統(tǒng)對于整個住院部門來說并不是一個很大的負擔,因而在經(jīng)濟上是可行的。2.1.4 可行性分析結(jié)論通過在社會、技術(shù)、經(jīng)濟三方面的可行性研究分析,發(fā)現(xiàn)系統(tǒng)的開發(fā)滿足這三方面的要求,因此一致認為系統(tǒng)應(yīng)該立即開發(fā)。2.2 系統(tǒng)功能分析在局域網(wǎng)中的考試系統(tǒng)應(yīng)該滿足服務(wù)器端與客戶端的通信,服務(wù)器端必須滿足試卷錄入、試卷發(fā)放、試卷評判、考試時間設(shè)置等功能;客戶端應(yīng)該滿足在線答題、提交試卷等功能。第3章 系統(tǒng)總體設(shè)計3.1 系統(tǒng)設(shè)計原理系統(tǒng)采用C/S設(shè)

25、計模式,運用Socket建立服務(wù)器與客戶端的連接。服務(wù)器,使用Server Socket監(jiān)聽指定的端口,端口可以隨意指定(由于1024以下的端口通常屬于保留端口,在一些操作系統(tǒng)中不可以隨意使用,所以建議使用大于1024的端口),等待客戶連接請求,客戶連接后,會話產(chǎn)生;在完成會話后,關(guān)閉連接??蛻舳耍褂肧ocket對網(wǎng)絡(luò)上某一個服務(wù)器的某一個端口發(fā)出連接請求,一旦連接成功,打開會話;會話完成后,關(guān)閉Socket。Socket接口是TCP/IP網(wǎng)絡(luò)的API,Socket接口定義了許多函數(shù)或例程,程序員可以用它們來開發(fā)TCP/IP網(wǎng)絡(luò)上的應(yīng)用程序。要學(xué)Internet上的TCP/IP網(wǎng)絡(luò)編程,必須

26、理解Socket接口。Socket接口設(shè)計者最先是將接口放在Unix操作系統(tǒng)里面的。如果了解Unix系統(tǒng)的輸入和輸出的話,就很容易了解Socket了。網(wǎng)絡(luò)的Socket數(shù)據(jù)傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個類似于打開文件的函數(shù)調(diào)用Socket(),該函數(shù)返回一個整型的Socket描述符,隨后的連接建立、數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^該Socket實現(xiàn)的。3.2 技術(shù)設(shè)計方案3.2.1 Java網(wǎng)絡(luò)編程所謂socket通常也稱作"套接字",應(yīng)用程序通常通過"套接字"向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。以J2SDK-1.3為例

27、,Socket和Server Socket類庫位于java .net包中。Server Socket用于服務(wù)器端,Socket是建立網(wǎng)絡(luò)連接時使用的。在連接成功時,應(yīng)用程序兩端都會產(chǎn)生一個Socket實例,操作這個實例,完成所需的會話。對于一個網(wǎng)絡(luò)連接來說,套接字是平等的,并沒有差別,不因為在服務(wù)器端或在客戶端而產(chǎn)生不同級別。一個完整的socket有一個本地唯一的socket號,由操作系統(tǒng)分配。最重要的是,socket 是面向客戶/服務(wù)器模型而設(shè)計的,針對客戶和服務(wù)器程序提供不同的socket系統(tǒng)調(diào)用??蛻綦S機申請一個socket (相當于一個想打電話的人可以在任何一臺入網(wǎng)電話上撥號呼叫),系

28、統(tǒng)為之分配一個socket號;服務(wù)器擁有全局公認的 socket ,任何客戶都可以向它發(fā)出連接請求和信息請求(相當于一個被呼叫的電話擁有一個呼叫方知道的電話號碼)。socket利用客戶/服務(wù)器模式巧妙地解決了進程之間建立通信連接的問題。服務(wù)器socket 半相關(guān)為全局所公認非常重要。假如通信雙方?jīng)]有任何一方的socket 固定,就好比打電話的雙方彼此不知道對方的電話號碼,要通話是不可能的。根據(jù)連接啟動的方式以及本地套接字要連接的目標,套接字之間的連接過程可以分為三個步驟:服務(wù)器監(jiān)聽,客戶端請求,連接確認。服務(wù)器監(jiān)聽:是服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實時監(jiān)控網(wǎng)

29、絡(luò)狀態(tài)。客戶端請求:是指由客戶端的套接字提出連接請求,要連接的目標是服務(wù)器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號,然后就向服務(wù)器端套接字提出連接請求。連接確認:是指當服務(wù)器端套接字監(jiān)聽到或者說接收到客戶端套接字的連接請求,它就響應(yīng)客戶端套接字的請求,建立一個新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端,一旦客戶端確認了此描述,連接就建立好了。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽狀態(tài),繼續(xù)接收其他客戶端套接字的連接請求。3.2.2 Java對象的序列化對于一個存在Java虛擬機中的對象來說,其內(nèi)部的狀態(tài)只是保存在內(nèi)存中。JVM退出之后,內(nèi)存資

30、源也就被釋放,Java對象的內(nèi)部狀態(tài)也就丟失了。而在很多情況下,對象內(nèi)部狀態(tài)是需要被持久化的,將運行中的對象狀態(tài)保存下來(最直接的方式就是保存到文件系統(tǒng)中),在需要的時候可以還原,即使是在Java虛擬機退出的情況下。對象序列化機制是Java內(nèi)建的一種對象持久化方式,可以很容易實現(xiàn)在JVM中的活動對象與字節(jié)數(shù)組(流)之間進行轉(zhuǎn)換,使得Java對象可以被存儲,可以被網(wǎng)絡(luò)傳輸,在網(wǎng)絡(luò)的一端將對象序列化成字節(jié)流,經(jīng)過網(wǎng)絡(luò)傳輸?shù)骄W(wǎng)絡(luò)的另一端,可以從字節(jié)流重新還原為Java虛擬機中的運行狀態(tài)中的對象。3.2.3 Java多線程編程在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類

31、來創(chuàng)建。通常有兩種方法來創(chuàng)建線程:其一,使用型構(gòu)為Thread(Runnable) 的構(gòu)造子將一個實現(xiàn)了Runnable接口的對象包裝成一個線程,其二,從Thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對象即為線程。值得注意的是Thread類已經(jīng)實現(xiàn)了Runnable接口,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。Java語言支持多個線程的同時執(zhí)行,并提供多線程之間的同步機制(關(guān)鍵字為synchronized)。第4章 系統(tǒng)詳細設(shè)計4.1系統(tǒng)功能設(shè)計4.1.1菜單欄主要功能項1 導(dǎo)入考場設(shè)置2 導(dǎo)入考試試卷3 導(dǎo)出考試結(jié)

32、果為TXT4 導(dǎo)出考試結(jié)果為HTML5 導(dǎo)出考試結(jié)果為EXCEL6 調(diào)用系統(tǒng)工具計算器7 調(diào)用系統(tǒng)工具記事本8 查看幫助4.1.2工具欄主要功能項1 試卷錄入2 考試設(shè)置3 考場監(jiān)控4 結(jié)果查詢5 系統(tǒng)設(shè)置4.1.3監(jiān)考選項卡主要功能項1 發(fā)放考生信息單2 發(fā)放試卷3 發(fā)送即時通知4 開啟監(jiān)控4.2 模塊類設(shè)計在系統(tǒng)UI模塊的設(shè)計過程中設(shè)計了相關(guān)的類,具體類的設(shè)計如圖4.1所示圖4.1 系統(tǒng)UI模塊設(shè)計類圖在系統(tǒng)通信/控制模塊的設(shè)計過程中設(shè)計了相關(guān)的類,具體類的設(shè)計如圖4.2所示圖4.2 系統(tǒng)通信/控制模塊設(shè)計類圖在系統(tǒng)實體/資源模塊的設(shè)計過程中設(shè)計了相關(guān)的類,具體類的設(shè)計如圖4.3所示圖4.

33、3 系統(tǒng)實體/資源模塊設(shè)計類圖在系統(tǒng)數(shù)據(jù)處理模塊的設(shè)計過程中設(shè)計了相關(guān)的類,具體類的設(shè)計如圖4.4所示圖4.4 系統(tǒng)數(shù)據(jù)處理模塊設(shè)計類圖4.3 界面設(shè)計在界面設(shè)計中采用如下的三種原則,界面整體采用菜單欄、工具欄、選項卡、狀態(tài)欄結(jié)構(gòu)設(shè)計;軟件具有自動記憶功能,運行后自動填充已保存的設(shè)置;設(shè)計遵循用戶體驗的KISS原則,操作方便快捷。系統(tǒng)主界面的設(shè)計如圖4.5所示圖4.5 系統(tǒng)主界面設(shè)計圖第5章 系統(tǒng)的實現(xiàn)與應(yīng)用5.1 服務(wù)器端的實現(xiàn)在服務(wù)器剛剛開始運行的時候會彈出一個歡迎界面,顯示結(jié)果如圖5.1所示圖5.1 系統(tǒng)歡迎界面歡迎界面顯示一定時間后會顯示系統(tǒng)服務(wù)器端的登錄界面,顯示結(jié)果如圖5.2所示圖

34、5.2 服務(wù)器端登錄界面登錄成功后進入系統(tǒng)服務(wù)器端主界面,顯示結(jié)果如圖5.3所示圖5.3 系統(tǒng)主界面(考場監(jiān)考界面)在系統(tǒng)主界面可以錄入需要進行考試的試題,試題錄入界面如圖5.4所示圖5.4 試卷錄入界面另外在主界面可以對考試進行考試時間限定、發(fā)放及時信息等設(shè)置,并且還可以修改系統(tǒng)的登錄密碼如圖5.5所示圖5.5 系統(tǒng)設(shè)置界面在考試過程中服務(wù)器端可以對客戶端的屏幕進行監(jiān)控,監(jiān)控結(jié)果如圖5.7所示圖5.7 考場監(jiān)控界面考試結(jié)束后可以隊參加考試的考生成績進行查詢,查詢界面如圖5.8所示圖5.8 結(jié)果查詢界面5.2客戶端的實現(xiàn)客戶端安裝成功后可以進入客戶端登錄界面,登錄界面如圖5.9所示圖5.9 客

35、戶端登錄界面登錄成功后出現(xiàn)考試信息界面,提示學(xué)生在考試中應(yīng)該注意的問題如圖5.10所示圖5.10 考試信息界面考試信息界面顯示結(jié)束后學(xué)生要填寫考生信息單,填寫界面如圖5.11所示圖5.11 考生信息填寫后界面信息單填寫結(jié)束就可以進入答題界面進行答題,如圖5.12所示圖5.12 答題界面5.3 考試結(jié)果處理系統(tǒng)測試采用了黑盒測試的方法進行系統(tǒng)測試,各功能點測試結(jié)果正常,考試結(jié)果成功導(dǎo)出??荚嚱Y(jié)果的有效導(dǎo)出是考試系統(tǒng)的一個重要功能,本設(shè)計提供了三種考試結(jié)果導(dǎo)出方式,分別是TXT(如圖5.13)、HTML(如圖5.14)、EXCEL(如圖5.15)。圖5.13 考試結(jié)果導(dǎo)出的TXT文檔圖5.14 考

36、試結(jié)果導(dǎo)出的HTML文檔圖5.15 考試結(jié)果導(dǎo)出的EXCEL文檔5.4 源程序清單5.4.1項目文件組織結(jié)構(gòu)為了更清晰的了解項目文件的組織結(jié)構(gòu),現(xiàn)將項目文件的的各個項目截圖如圖5.16、圖5.17所示圖5.16 項目源代碼文件組織結(jié)構(gòu)圖5.17 項目配置/數(shù)據(jù)文件組織結(jié)構(gòu)5.4.2項目模塊關(guān)鍵代碼/* * 試卷實體類 */package com.vesense.bean;import java.io.Serializable;public class Page implements Serializableprivate String title;private String notice;p

37、rivate int questionNum;private int eachScore;private Question questions;public int getEachScore() return eachScore;public void setEachScore(int eachScore) this.eachScore = eachScore;public String getNotice() return notice;public void setNotice(String notice) this.notice = notice;public int getQuesti

38、onNum() return questionNum;public void setQuestionNum(int questionNum) this.questionNum = questionNum;public String getTitle() return title;public void setTitle(String title) this.title = title;public Question getQuestions() return questions;public void setQuestions(Question questions) this.question

39、s = questions;/* * 系統(tǒng)資源類 */package com.vesense.res;import javax.swing.ImageIcon;public class R public static final ImageIcon IMAGE_WELCOME = new ImageIcon(R.class.getResource("welcome.jpg");public static final ImageIcon IMAGE_LOGIN_HEAD = new ImageIcon(R.class.getResource("head.jpg&qu

40、ot;);public static final ImageIcon IMAGE_MANAGER_SEARCH = new ImageIcon(R.class.getResource("search.png");public static final ImageIcon IMAGE_MANAGER_EXAM = new ImageIcon(R.class.getResource("exam.png");public static final ImageIcon IMAGE_MANAGER_PAGE = new ImageIcon(R.class.getR

41、esource("page.png");public static final ImageIcon IMAGE_MANAGER_SETUP = new ImageIcon(R.class.getResource("setup.png");public static final ImageIcon IMAGE_MANAGER_RESULT = new ImageIcon(R.class.getResource("result.png");public static final ImageIcon IMAGE_MANAGER_CONF =

42、 new ImageIcon(R.class.getResource("conf.png");public static final ImageIcon IMAGE_MANAGER_EXAM2 = new ImageIcon(R.class.getResource("exam_2.png");public static final ImageIcon IMAGE_MANAGER_PAGE2 = new ImageIcon(R.class.getResource("page_2.png");public static final Ima

43、geIcon IMAGE_MANAGER_SETUP2 = new ImageIcon(R.class.getResource("setup_2.png");public static final ImageIcon IMAGE_MANAGER_RESULT2 = new ImageIcon(R.class.getResource("result_2.png");public static final ImageIcon IMAGE_MANAGER_CONF2 = new ImageIcon(R.class.getResource("conf_

44、2.png");public static final ImageIcon IMAGE_STUDENT_CHECKED = new ImageIcon(R.class.getResource("checked.png");public static final ImageIcon IMAGE_STUDENT_NOTCHECKED = new ImageIcon(R.class.getResource("not_checked.png");public static final ImageIcon IMAGE_PAGE_NOTE = new Im

45、ageIcon(R.class.getResource("note.png");public static final ImageIcon IMAGE_MANAGER_RUN = new ImageIcon(R.class.getResource("running.gif");public static final ImageIcon IMAGE_EXAM_E1 = new ImageIcon(R.class.getResource("e1.png");public static final ImageIcon IMAGE_EXAM_

46、E2 = new ImageIcon(R.class.getResource("e2.png");public static final ImageIcon IMAGE_EXAM_E3 = new ImageIcon(R.class.getResource("e3.png");public static final ImageIcon IMAGE_EXAM_E4 = new ImageIcon(R.class.getResource("e4.png");public static final ImageIcon IMAGE_MONIT

47、OR_NO = new ImageIcon(R.class.getResource("no.png");public static final String FILE_LOGIN_CONFIG = "conf/perties"public static final String FILE_NET_CONFIG = "conf/perties"public static final String FILE_DATA_DEFAULT_EXAM = "data/exam/default.exam&q

48、uot;public static final String FILE_DATA_DEFAULT_PAGE= "data/page/default.page"public static final String FILE_EXPORT_DEFAULT_TXT= "data/export/default.txt"public static final String FILE_EXPORT_DEFAULT_HTML= "data/export/default.htm"public static final String FILE_EXPO

49、RT_DEFAULT_EXCEL= "data/export/default.xls"public static final String FILE_IIB_JXL= "lib/jxl.jar"/* * 對象序列化類 */package com.vesense.data;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;i

50、mport java.io.ObjectOutputStream;public class ObjUtil public static Object read(String name) Object obj = null;ObjectInputStream input = null;try input = new ObjectInputStream(new FileInputStream(new File(name);obj = input.readObject(); catch (IOException e) e.printStackTrace(); catch (ClassNotFound

51、Exception e) e.printStackTrace();finallyif (input != null)try input.close(); catch (IOException e) e.printStackTrace();return obj;public static void write(String name,Object obj) ObjectOutputStream output = null;try output = new ObjectOutputStream(new FileOutputStream(new File(name);output.writeObje

52、ct(obj);output.flush(); catch (IOException e) e.printStackTrace();finallyif (output != null)try output.close(); catch (IOException e) e.printStackTrace();/* * 文件內(nèi)容操作類 */package com.vesense.util;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import jav

53、a.io.OutputStreamWriter;public class FileUtil public static void toTXT(String buffer,String file) OutputStreamWriter writer = null;try writer = new OutputStreamWriter(new FileOutputStream(file); catch (FileNotFoundException e) e.printStackTrace();try writer.write(buffer);writer.close(); catch (IOExc

54、eption e) e.printStackTrace();/* * 系統(tǒng)配置類 */package com.vesense.util;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.Properties;public class Config private String name;private Properties pro; public Config(String name) = name; pro =

55、 new Properties(); try pro.load(new FileInputStream(name); catch(IOException e) e.printStackTrace(); public String getProperty(String key) return pro.getProperty(key); public void setProperty(String key, String value) pro.setProperty(key,value); try pro.store(new FileOutputStream(name),"")

56、; catch(Exception e) e.printStackTrace(); /* * 考試結(jié)果導(dǎo)出為TXT文檔 */private void toTXT() if (students.size() <= 0) return;StringBuffer buffer = new StringBuffer();buffer.append("學(xué)號t姓名t院系t專業(yè)t班級t科目t分數(shù)rn");for (int i = 0; i < students.size(); i+) Student stu = students.get(i);buffer.append(st

57、u.getSno() + "t" + stu.getName() + "t"+ stu.getDept() + "t" + stu.getMajor() + "t"+ stu.getCls() + "t" + stu.getCourse() + "t"+ stu.getScore() + "rn");FileUtil.toTXT(buffer.toString(), R.FILE_EXPORT_DEFAULT_TXT);JOptionPane.showMessageDialog(this, "考試結(jié)果已成功導(dǎo)出至默認目錄!");/* * 考試結(jié)果導(dǎo)出為HTML文檔 */private void toHTML() if (students.size() <= 0) return;StringBuffer buffer = new StringBuf

溫馨提示

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

評論

0/150

提交評論