版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、畢 業(yè) 設(shè) 計(jì) 論 文題目:基于C/S模式的小型局域 網(wǎng)考試系統(tǒng) 系 別: 專 業(yè): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 摘要隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與普及,網(wǎng)絡(luò)文化伴隨著網(wǎng)絡(luò)時(shí)代的到來(lái)也應(yīng)運(yùn)而生,作為一種新的文化形式已基本完備。本文概述了小型局域網(wǎng)考試系統(tǒng)的相關(guān)設(shè)計(jì)內(nèi)容,論文開(kāi)始簡(jiǎn)單的介紹了本次畢業(yè)設(shè)計(jì)的需求分析及設(shè)計(jì)背景,分析了目前各行各業(yè)信息化的進(jìn)程,強(qiáng)調(diào)了無(wú)紙化考試對(duì)于現(xiàn)行教育事業(yè)的必要性,結(jié)合本次畢業(yè)實(shí)習(xí)的經(jīng)歷我確定了本次畢業(yè)設(shè)計(jì)的內(nèi)容。本文重點(diǎn)介紹了局域網(wǎng)考試系統(tǒng)的設(shè)計(jì)構(gòu)思,經(jīng)過(guò)認(rèn)真的思考決定采用與平臺(tái)無(wú)關(guān)的Java系統(tǒng)開(kāi)發(fā)語(yǔ)言,利用Java語(yǔ)言的安全性、健壯性、可移植性等特性有效的完成對(duì)
2、系統(tǒng)的開(kāi)發(fā);詳細(xì)介紹了以客戶/服務(wù)器為模型(C/S模型)的局域網(wǎng)考試系統(tǒng)的總體功能結(jié)構(gòu),重點(diǎn)闡述了在實(shí)際的設(shè)計(jì)過(guò)程中遇到的各種問(wèn)題及解決方法;本文還在設(shè)計(jì)階段對(duì)系統(tǒng)數(shù)據(jù)處理模塊設(shè)計(jì)類圖等做了簡(jiǎn)單的介紹,對(duì)系統(tǒng)中涉及的一些主要的代碼進(jìn)行了簡(jiǎn)單的介紹;本文還對(duì)系統(tǒng)實(shí)現(xiàn)的主要功能做了簡(jiǎn)單的概述,主要功能有:試卷錄入、試卷發(fā)放、發(fā)放考生信息單、發(fā)送即時(shí)通知、開(kāi)啟考場(chǎng)監(jiān)控、調(diào)用輔助工具(計(jì)算器和記事本)、成績(jī)?cè)u(píng)定、成績(jī)查詢、成績(jī)導(dǎo)出等。本文的最后我寫了一下本次設(shè)計(jì)的感想,著重說(shuō)出了本次設(shè)計(jì)中自己的得失以及該設(shè)計(jì)存在的不足之處。關(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è)計(jì)背景11.2 設(shè)計(jì)的目的與意義21.3 開(kāi)發(fā)環(huán)境介紹21.3.1 硬件環(huán)境21.3.2 軟件環(huán)境3第2章 需求分析42.1 系統(tǒng)可行性分析52.1.1社會(huì)可行性分析52.1.2 技術(shù)可行性分析52.1.3 經(jīng)濟(jì)可行性52.1.4 可行性分析結(jié)論62.2 系統(tǒng)功能分析6第3章 系統(tǒng)總體設(shè)計(jì)63.1 系統(tǒng)設(shè)計(jì)原理63.2 技術(shù)設(shè)計(jì)方案73.2.1 Java網(wǎng)絡(luò)編程73.2.2 Java對(duì)象的序列化83.2.3 Java多線程編程8第4章
10、系統(tǒng)詳細(xì)設(shè)計(jì)84.1系統(tǒng)功能設(shè)計(jì)84.2 模塊類設(shè)計(jì)94.3 界面設(shè)計(jì)10第5章 系統(tǒng)的實(shí)現(xiàn)與應(yīng)用115.1 服務(wù)器端的實(shí)現(xiàn)115.2客戶端的實(shí)現(xiàn)155.3 考試結(jié)果處理175.4 源程序清單18第6章 結(jié)論29參考文獻(xiàn)30致謝312第1章 緒論1.1設(shè)計(jì)背景隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,計(jì)算機(jī)已經(jīng)應(yīng)用到各個(gè)領(lǐng)域。利用校園局域網(wǎng)在計(jì)算機(jī)上進(jìn)行考試也越來(lái)越普遍。傳統(tǒng)的考試從出卷、制卷、評(píng)卷、登分工作量極大,而且人工出卷和評(píng)卷容易受到教師主觀因素的影響。網(wǎng)絡(luò)考試?yán)糜?jì)算機(jī)自動(dòng)的出卷和評(píng)卷,大大的減輕了教師的工作量。Java語(yǔ)言作為一種網(wǎng)絡(luò)編程語(yǔ)言,它具有面向?qū)ο?、平臺(tái)獨(dú)立、多線程等特點(diǎn),非常
11、適合網(wǎng)絡(luò)環(huán)境下開(kāi)發(fā)應(yīng)用程序。Java提供的Socket技術(shù)也大大的簡(jiǎn)化了原有的網(wǎng)絡(luò)操作過(guò)程,使得網(wǎng)絡(luò)應(yīng)用程序在開(kāi)發(fā)的時(shí)候不必再考慮網(wǎng)絡(luò)底層的代碼設(shè)計(jì),大大的縮短了設(shè)計(jì)的時(shí)間。1.2 設(shè)計(jì)的目的與意義為了適應(yīng)新形勢(shì)的發(fā)展,使其盡快在各類考試中發(fā)揮高效、便捷的作用,把老師從繁重的工作中解脫出來(lái)本次畢業(yè)設(shè)計(jì)我設(shè)計(jì)了一個(gè)簡(jiǎn)單的小型局域網(wǎng)考試系統(tǒng)綠光考試系統(tǒng)。綠光考試系統(tǒng)旨在實(shí)現(xiàn)考試的無(wú)紙化管理,對(duì)一些科目的考試可以通過(guò)局域網(wǎng)(校園網(wǎng))進(jìn)行,方便校方考務(wù)的管理,也方便了考生。為了能使系統(tǒng)適應(yīng)不同的操作系統(tǒng),我選擇了與平臺(tái)無(wú)關(guān)的開(kāi)發(fā)語(yǔ)言Java;為了實(shí)現(xiàn)考場(chǎng)監(jiān)控等特色功能,我采用了C/S模式,因?yàn)锽/S無(wú)
12、法滿足;為了保障系統(tǒng)通信,我采用了面向連接的TCP協(xié)議;為了讓用戶獲得更方便的操作,我努力使系統(tǒng)最終無(wú)需安裝即可使用,如通過(guò)對(duì)象序列化技術(shù)取代數(shù)據(jù)庫(kù)、增加記憶功能等;為了能使系統(tǒng)容易擴(kuò)展新的功能我采用優(yōu)秀的設(shè)計(jì)模式進(jìn)行系統(tǒng)架構(gòu)。綠光考試系統(tǒng)以其出色的功能特性為老師和學(xué)生帶來(lái)更高的工作和學(xué)習(xí)效率。1.3 開(kāi)發(fā)環(huán)境介紹1.3.1 硬件環(huán)境編程工具:JDK+Eclipse+Rational Rose+Visio機(jī)型:聯(lián)想ThinkPad E40處理器名稱:AMD Athlon(tm) II P340 Dual-Core Processor 雙核硬盤驅(qū)動(dòng)器: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 是一個(gè)開(kāi)放源代碼的、基于Java的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開(kāi)發(fā)工具(Java Development Kit,JDK)。雖然大多數(shù)用戶很樂(lè)于將 Eclipse 當(dāng)作 Java 集成開(kāi)發(fā)環(huán)境(IDE)來(lái)使用,但 Eclipse 的目標(biāo)卻不僅限于此。Eclipse 還包括插件開(kāi)發(fā)環(huán)境(Plug-in Development Environment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開(kāi)發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclip
15、se 環(huán)境無(wú)縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開(kāi)發(fā)環(huán)境而言,所有工具開(kāi)發(fā)人員都具有同等的發(fā)揮場(chǎng)所。1這種平等和一致性并不僅限于 Java 開(kāi)發(fā)工具。盡管 Eclipse 是使用Java語(yǔ)言開(kāi)發(fā)的,但它的用途并不限于 Java 語(yǔ)言;例如,支持諸如C/C+、COBOL、PHP等編程語(yǔ)言的插件已經(jīng)可用,或預(yù)計(jì)將會(huì)推出。Eclipse 框架還可用來(lái)作為與軟件開(kāi)發(fā)無(wú)關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)?;?Eclipse 的應(yīng)用程序的一個(gè)突出例子是 IBM Rational Software Archit
16、ect,它構(gòu)成了 IBM Java 開(kāi)發(fā)工具系列的基礎(chǔ)。2.JDKJDK(Java Development Kit)是Sun Microsystems針對(duì)Java開(kāi)發(fā)員的產(chǎn)品。自從Java推出以來(lái),JDK已經(jīng)成為使用最廣泛的Java SDK。JDK 是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境、Java工具和Java基礎(chǔ)類庫(kù)。JDK是學(xué)好Java的第一步。而專門運(yùn)行在x86平臺(tái)的Jrocket在服務(wù)端運(yùn)行效率也要比Sun JDK好很多。從SUN的JDK5.0開(kāi)始,提供了泛型等非常實(shí)用的功能,其版本也不斷更新,運(yùn)行效率得到了非常大的提高。3.Rational RoseRational Rose包
17、括了統(tǒng)一建模語(yǔ)言(UML),OOSE,以及OMT。其中統(tǒng)一建模語(yǔ)言(UML)由Rational公司3位世界級(jí)面向?qū)ο蠹夹g(shù)專家Grady Booch、Ivar Jacobson、和Jim Rumbaugh通過(guò)對(duì)早期面向?qū)ο笱芯亢驮O(shè)計(jì)方法的進(jìn)一步擴(kuò)展而得來(lái)的,它為可視化建模軟件奠定了堅(jiān)實(shí)的理論基礎(chǔ)。同時(shí)這樣的淵源也使Rational Rose力挫當(dāng)前市場(chǎng)上很多基于UML可視化建模的工具,例如Microsoft的Visio2002、Oracle的Designer2000,還有PlayCase 、CA BPWin、CA ERWin、Sybase PowerDesigner等等。Rational Ros
18、e 是一個(gè)完全的、具有能滿足所有建模環(huán)境(Web開(kāi)發(fā),數(shù)據(jù)建模,Visual Studio和 C+ )靈活性需求的一套解決方案。Rose 允許開(kāi)發(fā)人員,項(xiàng)目經(jīng)理,系統(tǒng)工程師和分析人員在軟件開(kāi)發(fā)周期內(nèi)在將需求和系統(tǒng)的體系架構(gòu)轉(zhuǎn)換成代碼,消除浪費(fèi)的消耗,對(duì)需求和系統(tǒng)的體系架構(gòu)進(jìn)行可視化,理解和精練。通過(guò)在軟件開(kāi)發(fā)周期內(nèi)使用同一種建模工具可以確保更快更好的創(chuàng)建滿足客戶需求的可擴(kuò)展的、靈活的并且可靠的應(yīng)用系統(tǒng)。Rational Rose的兩個(gè)受歡迎的特征是它的提供反復(fù)式發(fā)展和來(lái)回旅程工程的能力。Rational Rose允許設(shè)計(jì)師利用反復(fù)發(fā)展(有時(shí)也叫進(jìn)化式發(fā)展),因?yàn)樵诟鱾€(gè)進(jìn)程中新的應(yīng)用能夠被創(chuàng)建,
19、通過(guò)把一個(gè)反復(fù)的輸出變成下一個(gè)反復(fù)的輸入。(這和瀑布式發(fā)展形成對(duì)比,在瀑布式發(fā)展中,在一個(gè)用戶開(kāi)始嘗試之前整個(gè)工程被從頭到尾的完成。)然后,當(dāng)開(kāi)發(fā)者開(kāi)始理解組件之間是如何相互作用和在設(shè)計(jì)中進(jìn)行調(diào)整時(shí),Rational Rose能夠通過(guò)回溯和更新模型的其余部分來(lái)保證代碼的一致性,從而展現(xiàn)出被稱為"來(lái)回旅程工程"的能力,Rational Rose是可擴(kuò)展的,可以使用可下載附加項(xiàng)和第三方應(yīng)用軟件,它支持COM/DCOM (ActiveX),JavaBeans和Corba組件標(biāo)準(zhǔn).4.Microsoft Office Visio 2007Microsoft Office Visio
20、 2007便于IT和商務(wù)專業(yè)人員就復(fù)雜信息、系統(tǒng)和流程進(jìn)行可視化處理、分析和交流的軟件。使用具有專業(yè)外觀的 Office Visio 2007圖表,可以促進(jìn)對(duì)系統(tǒng)和流程的了解,深入了解復(fù)雜信息并利用這些知識(shí)做出更好的業(yè)務(wù)決策。Microsoft Office Visio幫助您創(chuàng)建具有專業(yè)外觀的圖表,以便理解、記錄和分析信息、數(shù)據(jù)、系統(tǒng)和過(guò)程。大多數(shù)圖形軟件程序依賴于藝術(shù)技能。然而,在您使用 Visio 時(shí),以可視方式傳遞重要信息就像打開(kāi)模板、將形狀拖放到繪圖中以及對(duì)即將完成的工作應(yīng)用主題一樣輕松。使用 Office Visio 2007,可以通過(guò)多種圖表,包括業(yè)務(wù)流程圖、軟件界面、網(wǎng)絡(luò)圖、工作
21、流圖表、數(shù)據(jù)庫(kù)模型和軟件圖表等直觀地記錄、設(shè)計(jì)和完全了解業(yè)務(wù)流程和系統(tǒng)的狀態(tài)。通過(guò)使用 Office Visio Professional 2007 將圖表鏈接至基礎(chǔ)數(shù)據(jù),以提供更完整的畫面,從而使圖表更智能、更有用。第2章 需求分析傳統(tǒng)的學(xué)校教學(xué)中,進(jìn)行一場(chǎng)考試,要求老師打印試卷、安排考試、監(jiān)考、收集試卷、評(píng)改試卷,這是一個(gè)繁雜的過(guò)程,需要大量人力、物力與時(shí)間的投入,已經(jīng)越來(lái)越不適應(yīng)學(xué)校信息化建設(shè)與現(xiàn)代教學(xué)的需要。而網(wǎng)絡(luò)考試系統(tǒng),正是信息化建設(shè)的產(chǎn)物,它是傳統(tǒng)考場(chǎng)的延伸,它可以利用計(jì)算機(jī)網(wǎng)絡(luò)方便地對(duì)學(xué)生進(jìn)行考試,大大簡(jiǎn)化傳統(tǒng)考試的過(guò)程,因此網(wǎng)絡(luò)考試是電子化教學(xué)的不可缺少的輔助手段。在當(dāng)今信息
22、時(shí)代,計(jì)算機(jī)技術(shù)與網(wǎng)絡(luò)技術(shù)越來(lái)越廣地應(yīng)用于各個(gè)領(lǐng)域,改變著人們的學(xué)習(xí)、工作、生活乃至思維方式,也引起了教育領(lǐng)域的重大變革。將計(jì)算機(jī)與網(wǎng)絡(luò)技術(shù)應(yīng)用于現(xiàn)代高等教育中,是現(xiàn)代高等教育發(fā)展的需要,也是改革教育模式,提高學(xué)校教學(xué)效果和教學(xué)效率、提高科研和管理水平的必要手段。2.1 系統(tǒng)可行性分析可行性分析是對(duì)現(xiàn)行系統(tǒng)進(jìn)行初步調(diào)查和研究之后的結(jié)論,它反映了新系統(tǒng)開(kāi)發(fā)策略。下面分別從社會(huì)可行性、技術(shù)可行性以及經(jīng)濟(jì)可行性三方面進(jìn)行可行性分析。2.1.1社會(huì)可行性分析由于學(xué)校學(xué)生人數(shù)數(shù)量眾多,因而通過(guò)電腦化操作可以減少紙張的使用,同時(shí)由于數(shù)據(jù)直接通過(guò)局域網(wǎng)傳輸,可以減少信息傳遞時(shí)間,提高效率,這個(gè)系統(tǒng)很大程度上
23、方便了老師和學(xué)生。因此從社會(huì)可行性分析角度來(lái)說(shuō), 該系統(tǒng)的開(kāi)發(fā)和設(shè)計(jì)是可行的。2.1.2 技術(shù)可行性分析本系統(tǒng)是一個(gè)基于C/S結(jié)構(gòu)的小型局域網(wǎng)系統(tǒng),采用面向?qū)ο蠹夹g(shù)、序列化技術(shù)、各種Java流行框架的應(yīng)用等Java先進(jìn)技術(shù)開(kāi)發(fā)的應(yīng)用程序,現(xiàn)有的開(kāi)發(fā)技術(shù)已非常成熟,且被廣泛應(yīng)用于各行各業(yè),利用現(xiàn)有技術(shù)完全可以達(dá)到功能目標(biāo)。2.1.3 經(jīng)濟(jì)可行性在經(jīng)濟(jì)上,本系統(tǒng)只是針對(duì)機(jī)房中小型局域網(wǎng)進(jìn)行設(shè)計(jì),旨在減輕教學(xué)壓力。除此之外,在可擴(kuò)充性方面,系統(tǒng)采用生命周期法把一個(gè)復(fù)雜的系統(tǒng)開(kāi)發(fā)工作分解成一些相對(duì)獨(dú)立的部分,可以分階段實(shí)施,為以后的擴(kuò)充提供方便,另外,系統(tǒng)開(kāi)發(fā)時(shí),充分考慮到,系統(tǒng)以后的可能擴(kuò)展,因此對(duì)
24、于二次開(kāi)發(fā),將會(huì)更加方便,也即是說(shuō),系統(tǒng)的適應(yīng)性很強(qiáng),可以長(zhǎng)期使用。在很大程度上減輕了在考試方面的經(jīng)濟(jì)投入,節(jié)省一部分教育投入。根據(jù)分析研究,使用本套住院信息管理系統(tǒng)對(duì)于整個(gè)住院部門來(lái)說(shuō)并不是一個(gè)很大的負(fù)擔(dān),因而在經(jīng)濟(jì)上是可行的。2.1.4 可行性分析結(jié)論通過(guò)在社會(huì)、技術(shù)、經(jīng)濟(jì)三方面的可行性研究分析,發(fā)現(xiàn)系統(tǒng)的開(kāi)發(fā)滿足這三方面的要求,因此一致認(rèn)為系統(tǒng)應(yīng)該立即開(kāi)發(fā)。2.2 系統(tǒng)功能分析在局域網(wǎng)中的考試系統(tǒng)應(yīng)該滿足服務(wù)器端與客戶端的通信,服務(wù)器端必須滿足試卷錄入、試卷發(fā)放、試卷評(píng)判、考試時(shí)間設(shè)置等功能;客戶端應(yīng)該滿足在線答題、提交試卷等功能。第3章 系統(tǒng)總體設(shè)計(jì)3.1 系統(tǒng)設(shè)計(jì)原理系統(tǒng)采用C/S設(shè)
25、計(jì)模式,運(yùn)用Socket建立服務(wù)器與客戶端的連接。服務(wù)器,使用Server Socket監(jiān)聽(tīng)指定的端口,端口可以隨意指定(由于1024以下的端口通常屬于保留端口,在一些操作系統(tǒng)中不可以隨意使用,所以建議使用大于1024的端口),等待客戶連接請(qǐng)求,客戶連接后,會(huì)話產(chǎn)生;在完成會(huì)話后,關(guān)閉連接??蛻舳?,使用Socket對(duì)網(wǎng)絡(luò)上某一個(gè)服務(wù)器的某一個(gè)端口發(fā)出連接請(qǐng)求,一旦連接成功,打開(kāi)會(huì)話;會(huì)話完成后,關(guān)閉Socket。Socket接口是TCP/IP網(wǎng)絡(luò)的API,Socket接口定義了許多函數(shù)或例程,程序員可以用它們來(lái)開(kāi)發(fā)TCP/IP網(wǎng)絡(luò)上的應(yīng)用程序。要學(xué)Internet上的TCP/IP網(wǎng)絡(luò)編程,必須
26、理解Socket接口。Socket接口設(shè)計(jì)者最先是將接口放在Unix操作系統(tǒng)里面的。如果了解Unix系統(tǒng)的輸入和輸出的話,就很容易了解Socket了。網(wǎng)絡(luò)的Socket數(shù)據(jù)傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個(gè)類似于打開(kāi)文件的函數(shù)調(diào)用Socket(),該函數(shù)返回一個(gè)整型的Socket描述符,隨后的連接建立、數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^(guò)該Socket實(shí)現(xiàn)的。3.2 技術(shù)設(shè)計(jì)方案3.2.1 Java網(wǎng)絡(luò)編程所謂socket通常也稱作"套接字",應(yīng)用程序通常通過(guò)"套接字"向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。以J2SDK-1.3為例
27、,Socket和Server Socket類庫(kù)位于java .net包中。Server Socket用于服務(wù)器端,Socket是建立網(wǎng)絡(luò)連接時(shí)使用的。在連接成功時(shí),應(yīng)用程序兩端都會(huì)產(chǎn)生一個(gè)Socket實(shí)例,操作這個(gè)實(shí)例,完成所需的會(huì)話。對(duì)于一個(gè)網(wǎng)絡(luò)連接來(lái)說(shuō),套接字是平等的,并沒(méi)有差別,不因?yàn)樵诜?wù)器端或在客戶端而產(chǎn)生不同級(jí)別。一個(gè)完整的socket有一個(gè)本地唯一的socket號(hào),由操作系統(tǒng)分配。最重要的是,socket 是面向客戶/服務(wù)器模型而設(shè)計(jì)的,針對(duì)客戶和服務(wù)器程序提供不同的socket系統(tǒng)調(diào)用。客戶隨機(jī)申請(qǐng)一個(gè)socket (相當(dāng)于一個(gè)想打電話的人可以在任何一臺(tái)入網(wǎng)電話上撥號(hào)呼叫),系
28、統(tǒng)為之分配一個(gè)socket號(hào);服務(wù)器擁有全局公認(rèn)的 socket ,任何客戶都可以向它發(fā)出連接請(qǐng)求和信息請(qǐng)求(相當(dāng)于一個(gè)被呼叫的電話擁有一個(gè)呼叫方知道的電話號(hào)碼)。socket利用客戶/服務(wù)器模式巧妙地解決了進(jìn)程之間建立通信連接的問(wèn)題。服務(wù)器socket 半相關(guān)為全局所公認(rèn)非常重要。假如通信雙方?jīng)]有任何一方的socket 固定,就好比打電話的雙方彼此不知道對(duì)方的電話號(hào)碼,要通話是不可能的。根據(jù)連接啟動(dòng)的方式以及本地套接字要連接的目標(biāo),套接字之間的連接過(guò)程可以分為三個(gè)步驟:服務(wù)器監(jiān)聽(tīng),客戶端請(qǐng)求,連接確認(rèn)。服務(wù)器監(jiān)聽(tīng):是服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)
29、絡(luò)狀態(tài)??蛻舳苏?qǐng)求:是指由客戶端的套接字提出連接請(qǐng)求,要連接的目標(biāo)是服務(wù)器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號(hào),然后就向服務(wù)器端套接字提出連接請(qǐng)求。連接確認(rèn):是指當(dāng)服務(wù)器端套接字監(jiān)聽(tīng)到或者說(shuō)接收到客戶端套接字的連接請(qǐng)求,它就響應(yīng)客戶端套接字的請(qǐng)求,建立一個(gè)新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端,一旦客戶端確認(rèn)了此描述,連接就建立好了。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽(tīng)狀態(tài),繼續(xù)接收其他客戶端套接字的連接請(qǐng)求。3.2.2 Java對(duì)象的序列化對(duì)于一個(gè)存在Java虛擬機(jī)中的對(duì)象來(lái)說(shuō),其內(nèi)部的狀態(tài)只是保存在內(nèi)存中。JVM退出之后,內(nèi)存資
30、源也就被釋放,Java對(duì)象的內(nèi)部狀態(tài)也就丟失了。而在很多情況下,對(duì)象內(nèi)部狀態(tài)是需要被持久化的,將運(yùn)行中的對(duì)象狀態(tài)保存下來(lái)(最直接的方式就是保存到文件系統(tǒng)中),在需要的時(shí)候可以還原,即使是在Java虛擬機(jī)退出的情況下。對(duì)象序列化機(jī)制是Java內(nèi)建的一種對(duì)象持久化方式,可以很容易實(shí)現(xiàn)在JVM中的活動(dòng)對(duì)象與字節(jié)數(shù)組(流)之間進(jìn)行轉(zhuǎn)換,使得Java對(duì)象可以被存儲(chǔ),可以被網(wǎng)絡(luò)傳輸,在網(wǎng)絡(luò)的一端將對(duì)象序列化成字節(jié)流,經(jīng)過(guò)網(wǎng)絡(luò)傳輸?shù)骄W(wǎng)絡(luò)的另一端,可以從字節(jié)流重新還原為Java虛擬機(jī)中的運(yùn)行狀態(tài)中的對(duì)象。3.2.3 Java多線程編程在Java語(yǔ)言中,線程是一種特殊的對(duì)象,它必須由Thread類或其子(孫)類
31、來(lái)創(chuàng)建。通常有兩種方法來(lái)創(chuàng)建線程:其一,使用型構(gòu)為Thread(Runnable) 的構(gòu)造子將一個(gè)實(shí)現(xiàn)了Runnable接口的對(duì)象包裝成一個(gè)線程,其二,從Thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對(duì)象即為線程。值得注意的是Thread類已經(jīng)實(shí)現(xiàn)了Runnable接口,因此,任何一個(gè)線程均有它的run方法,而run方法中包含了線程所要運(yùn)行的代碼。線程的活動(dòng)由一組方法來(lái)控制。Java語(yǔ)言支持多個(gè)線程的同時(shí)執(zhí)行,并提供多線程之間的同步機(jī)制(關(guān)鍵字為synchronized)。第4章 系統(tǒng)詳細(xì)設(shè)計(jì)4.1系統(tǒng)功能設(shè)計(jì)4.1.1菜單欄主要功能項(xiàng)1 導(dǎo)入考場(chǎng)設(shè)置2 導(dǎo)入考試試卷3 導(dǎo)出考試結(jié)
32、果為TXT4 導(dǎo)出考試結(jié)果為HTML5 導(dǎo)出考試結(jié)果為EXCEL6 調(diào)用系統(tǒng)工具計(jì)算器7 調(diào)用系統(tǒng)工具記事本8 查看幫助4.1.2工具欄主要功能項(xiàng)1 試卷錄入2 考試設(shè)置3 考場(chǎng)監(jiān)控4 結(jié)果查詢5 系統(tǒng)設(shè)置4.1.3監(jiān)考選項(xiàng)卡主要功能項(xiàng)1 發(fā)放考生信息單2 發(fā)放試卷3 發(fā)送即時(shí)通知4 開(kāi)啟監(jiān)控4.2 模塊類設(shè)計(jì)在系統(tǒng)UI模塊的設(shè)計(jì)過(guò)程中設(shè)計(jì)了相關(guān)的類,具體類的設(shè)計(jì)如圖4.1所示圖4.1 系統(tǒng)UI模塊設(shè)計(jì)類圖在系統(tǒng)通信/控制模塊的設(shè)計(jì)過(guò)程中設(shè)計(jì)了相關(guān)的類,具體類的設(shè)計(jì)如圖4.2所示圖4.2 系統(tǒng)通信/控制模塊設(shè)計(jì)類圖在系統(tǒng)實(shí)體/資源模塊的設(shè)計(jì)過(guò)程中設(shè)計(jì)了相關(guān)的類,具體類的設(shè)計(jì)如圖4.3所示圖4.
33、3 系統(tǒng)實(shí)體/資源模塊設(shè)計(jì)類圖在系統(tǒng)數(shù)據(jù)處理模塊的設(shè)計(jì)過(guò)程中設(shè)計(jì)了相關(guān)的類,具體類的設(shè)計(jì)如圖4.4所示圖4.4 系統(tǒng)數(shù)據(jù)處理模塊設(shè)計(jì)類圖4.3 界面設(shè)計(jì)在界面設(shè)計(jì)中采用如下的三種原則,界面整體采用菜單欄、工具欄、選項(xiàng)卡、狀態(tài)欄結(jié)構(gòu)設(shè)計(jì);軟件具有自動(dòng)記憶功能,運(yùn)行后自動(dòng)填充已保存的設(shè)置;設(shè)計(jì)遵循用戶體驗(yàn)的KISS原則,操作方便快捷。系統(tǒng)主界面的設(shè)計(jì)如圖4.5所示圖4.5 系統(tǒng)主界面設(shè)計(jì)圖第5章 系統(tǒng)的實(shí)現(xiàn)與應(yīng)用5.1 服務(wù)器端的實(shí)現(xiàn)在服務(wù)器剛剛開(kāi)始運(yùn)行的時(shí)候會(huì)彈出一個(gè)歡迎界面,顯示結(jié)果如圖5.1所示圖5.1 系統(tǒng)歡迎界面歡迎界面顯示一定時(shí)間后會(huì)顯示系統(tǒng)服務(wù)器端的登錄界面,顯示結(jié)果如圖5.2所示圖
34、5.2 服務(wù)器端登錄界面登錄成功后進(jìn)入系統(tǒng)服務(wù)器端主界面,顯示結(jié)果如圖5.3所示圖5.3 系統(tǒng)主界面(考場(chǎng)監(jiān)考界面)在系統(tǒng)主界面可以錄入需要進(jìn)行考試的試題,試題錄入界面如圖5.4所示圖5.4 試卷錄入界面另外在主界面可以對(duì)考試進(jìn)行考試時(shí)間限定、發(fā)放及時(shí)信息等設(shè)置,并且還可以修改系統(tǒng)的登錄密碼如圖5.5所示圖5.5 系統(tǒng)設(shè)置界面在考試過(guò)程中服務(wù)器端可以對(duì)客戶端的屏幕進(jìn)行監(jiān)控,監(jiān)控結(jié)果如圖5.7所示圖5.7 考場(chǎng)監(jiān)控界面考試結(jié)束后可以隊(duì)參加考試的考生成績(jī)進(jìn)行查詢,查詢界面如圖5.8所示圖5.8 結(jié)果查詢界面5.2客戶端的實(shí)現(xiàn)客戶端安裝成功后可以進(jìn)入客戶端登錄界面,登錄界面如圖5.9所示圖5.9 客
35、戶端登錄界面登錄成功后出現(xiàn)考試信息界面,提示學(xué)生在考試中應(yīng)該注意的問(wèn)題如圖5.10所示圖5.10 考試信息界面考試信息界面顯示結(jié)束后學(xué)生要填寫考生信息單,填寫界面如圖5.11所示圖5.11 考生信息填寫后界面信息單填寫結(jié)束就可以進(jìn)入答題界面進(jìn)行答題,如圖5.12所示圖5.12 答題界面5.3 考試結(jié)果處理系統(tǒng)測(cè)試采用了黑盒測(cè)試的方法進(jìn)行系統(tǒng)測(cè)試,各功能點(diǎn)測(cè)試結(jié)果正常,考試結(jié)果成功導(dǎo)出。考試結(jié)果的有效導(dǎo)出是考試系統(tǒng)的一個(gè)重要功能,本設(shè)計(jì)提供了三種考試結(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項(xiàng)目文件組織結(jié)構(gòu)為了更清晰的了解項(xiàng)目文件的組織結(jié)構(gòu),現(xiàn)將項(xiàng)目文件的的各個(gè)項(xiàng)目截圖如圖5.16、圖5.17所示圖5.16 項(xiàng)目源代碼文件組織結(jié)構(gòu)圖5.17 項(xiàng)目配置/數(shù)據(jù)文件組織結(jié)構(gòu)5.4.2項(xiàng)目模塊關(guān)鍵代碼/* * 試卷實(shí)體類 */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"/* * 對(duì)象序列化類 */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é)號(hào)t姓名t院系t專業(yè)t班級(jí)t科目t分?jǐn)?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)出至默認(rèn)目錄!");/* * 考試結(jié)果導(dǎo)出為HTML文檔 */private void toHTML() if (students.size() <= 0) return;StringBuffer buffer = new StringBuf
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人商品住宅買賣合同標(biāo)準(zhǔn)范本4篇
- 2025年度綠色建筑個(gè)人勞務(wù)分包合同規(guī)范文本4篇
- 2025年度個(gè)人二手卡車買賣合同規(guī)范4篇
- 引水隧洞豎井施工方案
- 2025年度個(gè)人貸款合同范本集錦與利率調(diào)整機(jī)制3篇
- 2025年個(gè)人股權(quán)清算分配協(xié)議范本4篇
- 2024年中職學(xué)生教案模板(共8篇)
- 二零二五版美發(fā)企業(yè)股東股權(quán)變更與投資協(xié)議3篇
- 軋輥示熱處理課程設(shè)計(jì)
- 二零二五版美容院?jiǎn)T工加班費(fèi)計(jì)算合同樣本4篇
- 中國(guó)末端執(zhí)行器(靈巧手)行業(yè)市場(chǎng)發(fā)展態(tài)勢(shì)及前景戰(zhàn)略研判報(bào)告
- 北京離婚協(xié)議書(2篇)(2篇)
- Samsung三星SMARTCAMERANX2000(20-50mm)中文說(shuō)明書200
- 2024年藥品質(zhì)量信息管理制度(2篇)
- 2024年安徽省高考地理試卷真題(含答案逐題解析)
- 平面向量及其應(yīng)用試題及答案
- 2024高考復(fù)習(xí)必背英語(yǔ)詞匯3500單詞
- 無(wú)人機(jī)應(yīng)用平臺(tái)實(shí)施方案
- 2019年醫(yī)養(yǎng)結(jié)合項(xiàng)目商業(yè)計(jì)劃書
- 安全生產(chǎn)管理問(wèn)題與對(duì)策探討
- 2024屆浙江寧波鎮(zhèn)海區(qū)中考生物全真模擬試題含解析
評(píng)論
0/150
提交評(píng)論