普通話水平測(cè)試測(cè)試員質(zhì)量管理系統(tǒng)_第1頁(yè)
普通話水平測(cè)試測(cè)試員質(zhì)量管理系統(tǒng)_第2頁(yè)
普通話水平測(cè)試測(cè)試員質(zhì)量管理系統(tǒng)_第3頁(yè)
普通話水平測(cè)試測(cè)試員質(zhì)量管理系統(tǒng)_第4頁(yè)
普通話水平測(cè)試測(cè)試員質(zhì)量管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

word文檔可自由復(fù)制編輯摘要推廣普通話是新時(shí)期語(yǔ)言文字工作的首要任務(wù),對(duì)提高全民族的科學(xué)文化素質(zhì)有重要意義。國(guó)家普通話水平測(cè)試是我國(guó)為加快共同語(yǔ)普及進(jìn)程、提高全社會(huì)普通話水平而設(shè)置的一種語(yǔ)言測(cè)試制度。傳統(tǒng)的面對(duì)面的測(cè)試模式已經(jīng)不能滿足當(dāng)前的普通話測(cè)試需要,引進(jìn)現(xiàn)代信息技術(shù),實(shí)現(xiàn)評(píng)測(cè)過(guò)程的自動(dòng)化,網(wǎng)絡(luò)化成為普通話培訓(xùn)測(cè)試的新的發(fā)展方向,既能夠有效降低測(cè)試成本,提高工作效率,又能夠加強(qiáng)對(duì)測(cè)試的管理,為管理和監(jiān)控測(cè)試工作的質(zhì)量提供了很好的支撐。測(cè)試員質(zhì)量管理系統(tǒng)是基于普通話水平測(cè)試網(wǎng)絡(luò)管理系統(tǒng)而構(gòu)建的,實(shí)現(xiàn)對(duì)測(cè)試的測(cè)試質(zhì)量進(jìn)行管理和監(jiān)控,提高測(cè)試員測(cè)試質(zhì)量的定量依據(jù),為各級(jí)培訓(xùn)測(cè)試中心對(duì)測(cè)試員的質(zhì)量管理提供有效參考。同時(shí)建立樣卷系統(tǒng),加強(qiáng)對(duì)測(cè)試員業(yè)務(wù)能力的培訓(xùn)和考核,對(duì)于測(cè)試員隊(duì)伍的建設(shè)有著非常重要的意義。本文介紹測(cè)試員質(zhì)量管理系統(tǒng)的基本實(shí)現(xiàn)思路,功能,以及所用到的技術(shù)。分析了測(cè)試員質(zhì)量管理系統(tǒng)基本原理。對(duì)測(cè)試員質(zhì)量管理系統(tǒng)進(jìn)行了模塊化分析,重點(diǎn)介紹了測(cè)試員登陸,測(cè)試情況統(tǒng)計(jì)和樣卷管理這幾個(gè)模塊。關(guān)鍵詞測(cè)試員質(zhì)量管理系統(tǒng),測(cè)試員測(cè)試情況統(tǒng)計(jì),樣卷管理ABSTRACTThepromotionofPutonghualanguageisaprimarytaskinNewEraandhasgreatsignificanceofupgradingthenation'sscientificandculturalqualities.NationalPutonghuaShuipingCeshii(abbriv.AsPSC)isaLanguageTestingSystem,itcanspeeduptheprocessofpopularizingthecommonlanguageandraisethePutonghuastandardofthewholesociety.Thetraditionalface-to-facetestmodehasbeenunabletomeetthecurrentneedsofPutonghuatest.Introductionmoderninformationtechnology,implementautomationofevaluationprocessandnetworkisanewdirectionofdevelopmentoftesting,wecanreducethetestingcosteffectively,raiseworkefficiency

andstrengthenthemanagementofthetestinganditwillprovideabettersupportformanagementandmonitortest.Tester'squalitymanagementsystemisbasedontheChineseProficiencyTestNMSbuilt,itcanachievequalitymanagementandmonitoring,improvethequalityoftesterstesting,supplyeffectivereferenceforthealllevelsTrainingandTestingCenterqualityofmembersofmanagement.Atthesametimeitbuildavolumesystemwhichcanstrengthenthetester'scapacityoftrainingandassessment,andhasaveryimportantsignificanceforthetestteambuilding.Thispaperintroducesmethodandfunctionsofrealizationandtechnologyusedintestqualitymanagementsystem.Analysisthebasicprinciplesofqualitymanagementsystem.Analysisthetestqualitymanagementsystembymodule.Weemphaticallyintroducethelandingofthetesters,thestatisticsoftestsituationandvolumemanagement.KeywordsPSC,testersteststatistics,sampleexampapermanagement目錄摘要 IABSTRACT II第1章引言 11.1背景 11.2研究?jī)?nèi)容 1第2章測(cè)試員質(zhì)量管理系統(tǒng)技術(shù)框架 22.1總體技術(shù)概述 22.2系統(tǒng)工作環(huán)境 22.3系統(tǒng)使用技術(shù) 42.3.1Ajax技術(shù) 42.3.2CSV技術(shù) 52.3.3JavaBean技術(shù) 52.3.4框架(frame)技術(shù) 6第3章測(cè)試員質(zhì)量管理系統(tǒng)設(shè)計(jì) 73.1數(shù)據(jù)庫(kù)設(shè)計(jì) 73.1.1概念結(jié)構(gòu)設(shè)計(jì) 73.1.2邏輯結(jié)構(gòu)設(shè)計(jì) 73.2各功能模塊概要 123.2.1登陸模塊 123.2.2測(cè)試法規(guī) 123.2.3樣卷管理 133.2.4測(cè)試員測(cè)試情況統(tǒng)計(jì) 14第4章登陸模塊設(shè)計(jì)與實(shí)現(xiàn) 154.1登陸模塊驗(yàn)證流程 154.2登陸模塊詳細(xì)設(shè)計(jì) 154.3本章小結(jié) 18第5章樣卷管理模塊設(shè)計(jì)與分析 195.1CSV解析 195.2樣卷和樣卷答案導(dǎo)入 235.3樣卷和樣卷答案查看與說(shuō)明 275.4本章小結(jié) 29第6章測(cè)試員測(cè)試情況統(tǒng)計(jì)模塊設(shè)計(jì)與實(shí)現(xiàn) 306.1測(cè)試員測(cè)試情況統(tǒng)計(jì)模塊設(shè)計(jì) 306.2本章小結(jié) 38第7章結(jié)論 397.1總結(jié) 397.2展望未來(lái) 39致謝 40參考文獻(xiàn) 41第1章引言1.1背景推廣普通話是新時(shí)期語(yǔ)言文字工作的首要任務(wù),對(duì)提高全民族的科學(xué)文化素質(zhì)有重要意義[1]。語(yǔ)言文字是信息的主要載體,是協(xié)調(diào)社會(huì)生產(chǎn)和社會(huì)生活的交際工具[2]。推廣普通話,普及教育,提高全民族的文化素質(zhì),是文化建設(shè)面臨的緊迫任務(wù)[3]。國(guó)家普通話水平測(cè)試作為推普工作的一個(gè)重要手段,在共同語(yǔ)普過(guò)程中有及其重要的作用。普通話水平測(cè)試員在普通話水平測(cè)試中具有特殊的作用和地位,測(cè)試員的質(zhì)量在一定程度上決定了推普的質(zhì)量[4]。因此加強(qiáng)測(cè)試員隊(duì)伍建設(shè),建立有效的業(yè)務(wù)能力監(jiān)控手段,合理地對(duì)測(cè)試員的工作進(jìn)行考核是測(cè)試員隊(duì)伍建設(shè)的基礎(chǔ)工作之一,是提高普通話水平測(cè)試信度和效度的有效手段[5]。國(guó)家教育部頒布的《普通話水平測(cè)試管理規(guī)定》第十三條明確指出:“在同級(jí)語(yǔ)言文字工作辦事機(jī)構(gòu)指導(dǎo)下,各級(jí)測(cè)試機(jī)構(gòu)定期考察測(cè)試員的業(yè)務(wù)能力和工作表現(xiàn),并給予獎(jiǎng)懲?!睖y(cè)試員考核工作是一項(xiàng)政策性,科學(xué)性很強(qiáng)的工作,現(xiàn)階段加強(qiáng)對(duì)測(cè)試員隊(duì)伍的考核,建立健全科學(xué)的普通話水平測(cè)試員綜合考核指標(biāo)體系,對(duì)深化測(cè)試員隊(duì)伍管理,優(yōu)化測(cè)試員隊(duì)伍結(jié)構(gòu),起著十分重要的作用[6]。測(cè)試員質(zhì)量管理系統(tǒng)是基于普通話水平測(cè)試網(wǎng)絡(luò)管理系統(tǒng)而構(gòu)建的,實(shí)現(xiàn)對(duì)測(cè)試的測(cè)試質(zhì)量進(jìn)行管理和監(jiān)控,提高測(cè)試員測(cè)試質(zhì)量的定量依據(jù),為各級(jí)培訓(xùn)測(cè)試中心對(duì)測(cè)試員的質(zhì)量管理提供有效參考[7]。基于現(xiàn)代信息技術(shù)建立的網(wǎng)絡(luò)化測(cè)試管理模式為測(cè)試中心加強(qiáng)監(jiān)控和管理、降低測(cè)試成本,提高工作效率,改善工作質(zhì)量提供了很好的支撐[8]。1.2研究?jī)?nèi)容本軟件研究的基本內(nèi)容是:在普通話水平測(cè)試網(wǎng)絡(luò)管理系統(tǒng)的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)測(cè)試員測(cè)試質(zhì)量管理系統(tǒng),實(shí)現(xiàn)對(duì)測(cè)試員測(cè)試質(zhì)量的實(shí)時(shí)的動(dòng)態(tài)的管理,為測(cè)試中心實(shí)現(xiàn)量化考評(píng)測(cè)試員的工作提供有效的信息。主要解決以下幾個(gè)問(wèn)題:①.登陸測(cè)試員管理系統(tǒng);②.測(cè)試員法規(guī);③.樣卷的導(dǎo)入與查看;④.測(cè)試員測(cè)試情況統(tǒng)計(jì);⑤.系統(tǒng)幫助。第2章測(cè)試員質(zhì)量管理系統(tǒng)技術(shù)框架2.1總體技術(shù)概述測(cè)試員質(zhì)量管理系統(tǒng)主要是用JSP動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)結(jié)合javabean來(lái)實(shí)現(xiàn)主要功能,其中登陸模塊是用ajax的異步驗(yàn)證,樣卷導(dǎo)入是利用csv解析導(dǎo)入到數(shù)據(jù)庫(kù)中,其他是用了框架技術(shù)。2.2系統(tǒng)工作環(huán)境本系統(tǒng)以ApacheTomcat5.0作為web容器,MacromediaDreamweaver8作為開(kāi)發(fā)工具,MicrosoftSQLServer2000作為后臺(tái)數(shù)據(jù)庫(kù)。Eclipse作為javabean文件的編寫工具。Tomcat是Apache軟件基金會(huì)(ApacheSoftwareFoundation)的Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun和其他一些公司及個(gè)人共同開(kāi)發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和JSP規(guī)范總是能在Tomcat中得到體現(xiàn),Tomcat5支持最新的Servlet2.4和JSP2.0規(guī)范。因?yàn)門omcat技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java愛(ài)好者的喜愛(ài)并得到了部分軟件開(kāi)發(fā)商的認(rèn)可,成為目前比較流行的Web應(yīng)用服務(wù)器。Tomcat是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache服務(wù)器,可利用它響應(yīng)對(duì)HTML頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat部分是Apache服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat時(shí),它實(shí)際上作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。Dreamweaver是美國(guó)MACROMEDIA公司開(kāi)發(fā)的集網(wǎng)頁(yè)制作和管理網(wǎng)站于一身的所見(jiàn)即所得網(wǎng)頁(yè)編輯器,它是第一套針對(duì)專業(yè)網(wǎng)頁(yè)設(shè)計(jì)師特別發(fā)展的視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具,利用它可以輕而易舉地制作出跨越平臺(tái)限制和跨越瀏覽器限制的充滿動(dòng)感的網(wǎng)頁(yè)。

MacromediaDreamweaver8是建立Web站點(diǎn)和應(yīng)用程序的專業(yè)工具。它將可視布局工具、應(yīng)用程序開(kāi)發(fā)功能和代碼編輯支持組合在一起,其功能強(qiáng)大,使得各個(gè)層次的開(kāi)發(fā)人員和設(shè)計(jì)人員都能夠快速創(chuàng)建界面吸引人的基于標(biāo)準(zhǔn)的網(wǎng)站和應(yīng)用程序。從對(duì)基于CSS的設(shè)計(jì)的領(lǐng)先支持到手工編碼功能,Dreamweaver提供了專業(yè)人員在一個(gè)集成、高效的環(huán)境中所需的工具。開(kāi)發(fā)人員可以使用Dreamweaver及所選擇的服務(wù)器技術(shù)來(lái)創(chuàng)建功能強(qiáng)大的Internet應(yīng)用程序,從而使用戶能連接到數(shù)據(jù)庫(kù)、Web服務(wù)和舊式系統(tǒng)。SQLServer是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它最初是由MicrosoftSybase和Ashton-Tate三家公司共同開(kāi)發(fā)的,于1988年推出了第一個(gè)OS/2版本。在WindowsNT推出后,Microsoft與Sybase在SQLServer的開(kāi)發(fā)上就分道揚(yáng)鑣了,Microsoft將SQLServer移植到WindowsNT系統(tǒng)上,專注于開(kāi)發(fā)推廣SQLServer的WindowsNT版本。Sybase則較專注于SQLServer在UNIX操作系統(tǒng)上的應(yīng)用。SQLServer2000是Microsoft公司推出的SQLServer數(shù)據(jù)庫(kù)管理系統(tǒng)的最新版本,該版本繼承了SQLServer7.0版本的優(yōu)點(diǎn),同時(shí)又比它增加了許多更先進(jìn)的功能。具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行MicrosoftWindows98的膝上型電腦到運(yùn)行MicrosoftWindows2000的大型多處理器的服務(wù)器等多種平臺(tái)使用。Eclipse是以個(gè)集成開(kāi)發(fā)環(huán)境(IntegratedDevelopmentEnvironment)。其前身是IBM的VisualAgeforJava(VA4J),IBM投入了3千萬(wàn)美元。Eclipse是可擴(kuò)展的體系結(jié)構(gòu),可以集成不同軟件開(kāi)發(fā)供應(yīng)商開(kāi)發(fā)的產(chǎn)品,將他們開(kāi)發(fā)的工具和組件加入到Eclipse平臺(tái)中。隨Java應(yīng)用的廣泛,各大主要軟件供應(yīng)商都參與到Eclipse架構(gòu)開(kāi)發(fā)中,使得Eclipse插件數(shù)量與日增加。其中,IBM的WebSphereStudioWorkbench是突出的例子。Eclipse平臺(tái)的免費(fèi),架構(gòu)的成熟,行業(yè)協(xié)會(huì)Eclipse基金會(huì)的支持,使得很多的Java開(kāi)發(fā)采用了Eclipse架構(gòu)。如今,IBM通過(guò)起附屬的研發(fā)機(jī)構(gòu)ObjectTechnologiesInternational(OTI),繼續(xù)引領(lǐng)Eclipse開(kāi)發(fā)。插件(plug-in)是遵循一定規(guī)范的應(yīng)用程序結(jié)構(gòu)編寫出來(lái)的程序,也成為擴(kuò)展,不同于組件。Eclipse正是一個(gè)精心設(shè)計(jì)的、可擴(kuò)展的核心結(jié)構(gòu)。通過(guò)插件的形式,將根據(jù)自己需要選擇的擴(kuò)展開(kāi)發(fā)工具集成到Eclipse平臺(tái)核心。因此使得可以避免因過(guò)去不兼容工具帶來(lái)的麻煩,降低開(kāi)發(fā)出成本,大幅度提高工作效率。Eclipse本身作為一個(gè)開(kāi)放源碼的軟件項(xiàng)目,它主要包含3個(gè)子項(xiàng)目:平臺(tái)子項(xiàng)目,Java開(kāi)發(fā)工具(JDT-java)子項(xiàng)目,插件開(kāi)發(fā)環(huán)境(PDE-plug-in)子項(xiàng)目。其中,Java開(kāi)發(fā)工具JDT為開(kāi)發(fā)人員提供大量的集成工具集,主要為Java應(yīng)用程序提供編程接口(API)。Eclipse軟件開(kāi)發(fā)工具箱(SDK)是主要有Eclipse本身的項(xiàng)目軟件和其他一些開(kāi)發(fā)源嗎的第三方軟件組成。次者,插件開(kāi)發(fā)環(huán)境(JDT)則為插件開(kāi)發(fā)和測(cè)試提供相應(yīng)的環(huán)境,如:創(chuàng)建插件清單文件、定義擴(kuò)展點(diǎn)等。2.3系統(tǒng)使用技術(shù)2.3.1Ajax技術(shù)AJAX全稱為“AsynchronousJavaScriptandXML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。Ajax是最近非常流行的一種Web開(kāi)發(fā)技術(shù),由于其具有異步的數(shù)據(jù)請(qǐng)求和Web頁(yè)面數(shù)據(jù)的無(wú)刷新改變等特征,被廣泛用于對(duì)應(yīng)用性能與用戶體驗(yàn)要求都很高的Web2.0與富客戶端的Web應(yīng)用中。傳統(tǒng)的web應(yīng)用允許用戶填寫表單(form),當(dāng)提交表單時(shí)就向web服務(wù)器發(fā)送一個(gè)請(qǐng)求。服務(wù)器接收并處理傳來(lái)的表單,然後返回一個(gè)新的網(wǎng)頁(yè)。這個(gè)做法浪費(fèi)了許多帶寬,因?yàn)樵谇搬醿蓚€(gè)頁(yè)面中的大部分HTML代碼往往是相同的。由于每次應(yīng)用的交互都需要向服務(wù)器發(fā)送請(qǐng)求,應(yīng)用的響應(yīng)時(shí)間就依賴于服務(wù)器的響應(yīng)時(shí)間。這導(dǎo)致了用戶界面的響應(yīng)比本地應(yīng)用慢得多。與此不同,AJAX應(yīng)用可以僅向服務(wù)器發(fā)送并取回必需的數(shù)據(jù),它使用SOAP或其它一些基于XML的webservice接口,并在客戶端采用JavaScript處理來(lái)自服務(wù)器的響應(yīng)。因?yàn)樵诜?wù)器和瀏覽器之間交換的數(shù)據(jù)大量減少,結(jié)果我們就能看到響應(yīng)更快的應(yīng)用。同時(shí)很多的處理工作可以在發(fā)出請(qǐng)求的客戶端機(jī)器上完成,所以Web服務(wù)器的處理時(shí)間也減少了。Ajax應(yīng)用程序的優(yōu)勢(shì)在于:通過(guò)異步模式,提升了用戶體驗(yàn);優(yōu)化了瀏覽器和服務(wù)器之間的傳輸,減少不必要的數(shù)據(jù)往返,減少了帶寬占用;Ajax引擎在客戶端運(yùn)行,承擔(dān)了一部分本來(lái)由服務(wù)器承擔(dān)的工作,從而減少了大用戶量下的服務(wù)器負(fù)載。Ajax的核心是JavaScript對(duì)象XmlHttpRequest。該對(duì)象在InternetExplorer5中首次引入,它是一種支持異步請(qǐng)求的技術(shù)。簡(jiǎn)而言之,XmlHttpRequest使您可以使用JavaScript向服務(wù)器提出請(qǐng)求并處理響應(yīng),而不阻塞用戶。Ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了—個(gè)中間層,使用戶操作與服務(wù)器響應(yīng)異步化。這樣把以前的一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來(lái)處理,減輕服務(wù)器和帶寬的負(fù)擔(dān),從而達(dá)到節(jié)約ISP的空間及帶寬租用成本的目的。2.3.2CSV技術(shù)CSV文件,也叫逗號(hào)分隔值文件,英文名稱COMMASEPARATEDVALUE。具體格式規(guī)則如下:①、開(kāi)頭是不留空,以行為單位;②、可含或不含列名,含列名則居文件第一行;③、一行數(shù)據(jù)不垮行,無(wú)空行;④、以半角符號(hào),作分隔符,列為空也要表達(dá)其存在;⑤、列內(nèi)容如存在,,則用“”包含起來(lái);⑥、列內(nèi)容如存在“”則用“”“”包含;⑦、文件讀寫時(shí)引號(hào),逗號(hào)操作規(guī)則互逆。8內(nèi)碼格式不限,可為ASCII、Unicode或者其他。我們采用Unicode編碼的CSV文件作為數(shù)據(jù)文件的基本格式,降低數(shù)據(jù)解析的復(fù)雜度。2.3.3JavaBean技術(shù)JSP網(wǎng)頁(yè)最大的特點(diǎn)之一就是能夠結(jié)合JavaBean技術(shù)來(lái)擴(kuò)充網(wǎng)頁(yè)中的程序。JavaBean是一中專門為軟件開(kāi)發(fā)人員設(shè)計(jì)的全新組件技術(shù),它為軟件開(kāi)發(fā)人員提供了一種最佳的問(wèn)題解決方案。使用JavaBean可以創(chuàng)建可重新使用的平臺(tái)獨(dú)立組件。然而,JavaBean的最大優(yōu)點(diǎn)是其強(qiáng)大的健壯性[9]。JavaBean組件被稱為Bean,它是遵循特定命名規(guī)則的Java對(duì)象。JavaBean是一種JAVA語(yǔ)言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無(wú)參數(shù)的構(gòu)造器。JavaBean通過(guò)提供符合一致性設(shè)計(jì)模式的公共方法將內(nèi)部域暴露稱為屬性。眾所周知,屬性名稱符合這種模式,其他Java類可以通過(guò)自省機(jī)制發(fā)現(xiàn)和操作這些JavaBean屬性。用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫(kù)訪問(wèn)和其他任何可以用java代碼創(chuàng)造的對(duì)象進(jìn)行打包,并且其他的開(kāi)發(fā)者可以通過(guò)內(nèi)部的JSP頁(yè)面、Servlet、其他JavaBean、applet程序或者應(yīng)用來(lái)使用這些對(duì)象。用戶可以認(rèn)為JavaBean提供了一種隨時(shí)隨地的復(fù)制和粘貼的功能,而不用關(guān)心任何改變[10]。2.3.4框架(frame)技術(shù)所謂框架便是網(wǎng)頁(yè)畫面分成幾個(gè)框窗,同時(shí)取得多個(gè)URL。只要<FRAMESET><FRAME>即可,而所有框架標(biāo)記要放在一個(gè)總起的html檔,這個(gè)檔案只記錄了該框架如何劃分,不會(huì)顯示任何資料,所以不必放入<BODY>標(biāo)記,瀏覽這框架必須讀取這檔案而不是其它框窗的檔案。<FRAMESET>是用以劃分框窗,每一框窗由一個(gè)<FRAME>標(biāo)記所標(biāo)示,<FRAME>必須在<FRAMESET>范圍中使用。第3章測(cè)試員質(zhì)量管理系統(tǒng)設(shè)計(jì)3.1數(shù)據(jù)庫(kù)設(shè)計(jì)3.1.1概念結(jié)構(gòu)設(shè)計(jì)將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過(guò)程就是概念結(jié)構(gòu)設(shè)計(jì)。概念結(jié)構(gòu)獨(dú)立于數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu),也獨(dú)立于支持?jǐn)?shù)據(jù)庫(kù)的DBMS。它是現(xiàn)實(shí)世界與機(jī)器世界的中介。本系統(tǒng)是采用至頂向下的方法來(lái)設(shè)計(jì)的。3.1.2邏輯結(jié)構(gòu)設(shè)計(jì)表center存放登陸信息包括用戶名,密碼,登陸中心,其結(jié)構(gòu)如表3-1所示:表3-1center表列名數(shù)據(jù)類型長(zhǎng)度允許空l(shuí)oginNamevarchar50是namevarchar50是passwardvarchar50是表t_centerMsg存放存放公告,測(cè)試規(guī)定和測(cè)試計(jì)劃的標(biāo)題,內(nèi)容,發(fā)布時(shí)間和類型,其結(jié)構(gòu)如表3-2所示:表3-2t_centerMsg表列名數(shù)據(jù)類型長(zhǎng)度允許空titlenvarchar100是contentnvarchar4000是publishDatedatetime8是typenvarchar50是表judger存放測(cè)試員的id和姓名和登陸名等其他信息,其結(jié)構(gòu)如表3-3所示:表3-3judger表列名數(shù)據(jù)類型長(zhǎng)度允許空ID(主鍵)char10否namevarchar50是tidchar10是sfzvarchar50是agevarchar50是sexvarchar50是workPlacevarchar50是phonevarchar50是eMailvarchar50是judgerRankvarchar50是測(cè)試試卷表存放試卷號(hào),一審測(cè)試員id,二審測(cè)試員id,復(fù)審測(cè)試員id,測(cè)試時(shí)間,提交測(cè)試時(shí)間,一審分?jǐn)?shù),二審分?jǐn)?shù),復(fù)審分?jǐn)?shù),其結(jié)構(gòu)如表3-4所示:表3-4測(cè)試試卷表列名數(shù)據(jù)類型長(zhǎng)度允許空examPaperID(主鍵)nvarchar50否judge1IDnvarchar50是GetTimedatetime8是SubmitTimedatetime8是judge1Resultfloat8是judge2IDnvarchar50是judge2Resultfloat8是arbitratorIDnvarchar50是arbitratorResultfloat8是表countTemple1用來(lái)存放試卷號(hào),測(cè)試員id,測(cè)試時(shí)間,測(cè)試時(shí)間,測(cè)試成績(jī),最終成績(jī),其結(jié)構(gòu)如表3-5所示:表3-5countTemple1表列名數(shù)據(jù)類型長(zhǎng)度允許空exampaperID(主鍵)varchar50否namevarchar50是testTimevarchar50是TestRvarchar50是resultvarchar50是樣卷表用來(lái)存放樣卷號(hào),字號(hào),詞號(hào),文章一編號(hào),文章二編號(hào),命題說(shuō)話一編號(hào),命題說(shuō)話二編號(hào),最終分?jǐn)?shù),其結(jié)構(gòu)如表3-6所示:表3-6樣卷表列名數(shù)據(jù)類型長(zhǎng)度允許空eId(主鍵)varchar50否awordIDvarchar50是wordIDvarchar50是article1IDvarchar50是article2IDvarchar50是speak1IDvarchar50是speak2IDvarchar50是sorcefloat8是樣卷答案表用來(lái)存放樣卷號(hào),錯(cuò)字信息,錯(cuò)詞信息,其結(jié)構(gòu)如表3-7所示:表3-7樣卷答案表列名數(shù)據(jù)類型長(zhǎng)度允許空eID(主鍵)varchar50否errorAwordvarchar4000是errorWordvarchar4000是測(cè)試員表,測(cè)試試卷表,試卷表關(guān)系圖3-1所示:圖3-1關(guān)系圖在這個(gè)關(guān)系圖中表t_examPaperJudge中的examPaperID是表t_examPaper的外碼,表t_judgeInfo中的ID是表t_examPaperJudge的外碼。樣卷表和樣卷答案表的關(guān)系圖如圖3-2所示:圖3-2關(guān)系圖這個(gè)關(guān)系圖中樣卷答案表ePaperKey中的主鍵eID是樣卷表ePaper中的外碼。t_testTemple,t_testTemple2,part這個(gè)3個(gè)表之間的結(jié)構(gòu)圖如圖3-3所示:圖3-3關(guān)系圖表part中的exampaperId是表t_testTemple和表t_testTemple2的外碼。3.2各功能模塊概要3.2.1登陸模塊這個(gè)模塊的主要功能就是登陸測(cè)試員質(zhì)量管理系統(tǒng),通過(guò)輸入用戶名和用戶密碼,選擇所屬中心即可登陸該系統(tǒng)。如圖3-4所示:圖3-4登陸3.2.2這個(gè)模塊的主要功能是顯示管理規(guī)定,測(cè)試計(jì)劃安排,省中心公告。用框架frame來(lái)實(shí)現(xiàn)的。點(diǎn)擊管理規(guī)定后顯示如圖3-5所示:圖3-5規(guī)定點(diǎn)擊省中心公告后顯示省中心公告的標(biāo)題和發(fā)布時(shí)間,如圖3-6所示:圖3-6省中心公告點(diǎn)擊標(biāo)題就能顯示對(duì)應(yīng)的內(nèi)容。例如點(diǎn)擊國(guó)家通用語(yǔ)言文字的使用就能彈出該文章。3.2.3樣卷就是由專家編寫的普通水平測(cè)試的試卷,經(jīng)過(guò)了很多專家測(cè)試,因此樣卷的答案具有非常高的正確性,可以作為測(cè)試員培訓(xùn)或水平考核的主要依據(jù)之一。這個(gè)模塊的功能主要有樣卷,樣卷答案的導(dǎo)入和樣卷,樣卷答案的查看和樣卷說(shuō)明??梢酝ㄟ^(guò)點(diǎn)擊樣卷導(dǎo)入來(lái)導(dǎo)入樣卷。其格式為.csv格式的,可以選擇自行輸入導(dǎo)入的路徑。如圖3-7所示:圖3-7樣卷導(dǎo)入3.2.4這個(gè)模塊的功能主要是統(tǒng)計(jì)測(cè)試員的測(cè)試情況。主要是統(tǒng)計(jì)測(cè)試員測(cè)試的試卷正確率等信息,用戶可以通過(guò)輸入測(cè)試員的登錄名來(lái)查詢,也可點(diǎn)擊測(cè)試員的登錄名來(lái)查詢。其查詢結(jié)果包括測(cè)試試卷號(hào),測(cè)試時(shí)間,測(cè)試提交時(shí)間,測(cè)試的正確率等信息。第4章登陸模塊設(shè)計(jì)與實(shí)現(xiàn)4.1登陸模塊驗(yàn)證流程該模塊是用Ajax的異步驗(yàn)證來(lái)實(shí)現(xiàn)的。利用ajax采用將數(shù)據(jù)附在url后提交到服務(wù)程序的傳值方式,在服務(wù)器端驗(yàn)證完畢返回結(jié)果,再由頁(yè)面程序?qū)⒔Y(jié)果現(xiàn)在在頁(yè)面上。首先用戶按照提示輸入登陸信息,輸入后提交。<inputwidth="60"type="submit"name="button"value="提交"onclick="checkUser()">當(dāng)用戶按下確定后運(yùn)行script,該script是放在check.js中。當(dāng)運(yùn)行此script的時(shí)候就會(huì)把登陸信息傳到loginjudge.jsp中。由loginjudge.jsp來(lái)接受并處理該信息。然后將處理后的信息返回給登陸界面顯示4.2登陸模塊詳細(xì)設(shè)計(jì)表center是用來(lái)存放用戶登陸信息如表4-1所示:表4-1center表列名數(shù)據(jù)類型長(zhǎng)度允許空namenvarchar50是loginNamenvarchar50是passwardnvarchar50是在登陸頁(yè)面中輸入用戶名和密碼,如圖4-1所示:圖4-1登陸界面當(dāng)點(diǎn)擊提交后運(yùn)行script,該script存放在check.js中。Check.jsvarxmlHttp;functioncreateXMLHttpRequest(){ if(window.ActiveXObject){ xmlHttp=newActiveXObject("Microsoft.XMLHTTP"); } elseif(window.XMLHttpRequest){ xmlHttp=newXMLHttpRequest(); }}functioncheckUser(){ createXMLHttpRequest(); varname=document.getElementById("name").value;//得到用戶名 varpassword=document.getElementById("password").value;//得到密碼 varcenter=document.getElementById("center").value;//得到中心信息 varurl="loginjudge.jsp?name="+name+"&password="+password+"¢er="+center; xmlHttp.open("GET",url,true); xmlHttp.onreadystatechange=showResult; xmlHttp.send(null);}functionshowResult(){ if(xmlHttp.readystate==4){ if(xmlHttp.status==200){//信息已經(jīng)成功返回,開(kāi)始處理信息 varresult=xmlHttp.responseText; //在界面顯示返回結(jié)果 document.getElementById("checkResult").innerHTML="<b>"+result+"</b>"; } }然后將用戶信息傳到loginjudge.jsp中處理。接受信息用戶Stringname=request.getParameter("name");request.getSession(true);session.setAttribute("name",name);Stringpassword=request.getParameter("password");Stringcenter=request.getParameter("center");處理信息Stringsql="select*fromt_centerwhereloginName='"+name+"'andpassward='"+password+"'";ResultSetrs=Bean.executeQuery(sql);if(rs.next()){ response.sendRedirect("loginright.jsp");}else{out.write("<fontcolor=red>用戶名或密碼錯(cuò)誤</font>");}當(dāng)輸入的用戶名或密碼錯(cuò)誤是提示錯(cuò)誤正確是轉(zhuǎn)到loginright.jsp中。loginright.jsp中<ahref="login.jsp?name=<%=name%>"target="_self">驗(yàn)證正確點(diǎn)此登陸</a>然后將該信息返回給登陸界面提示用戶驗(yàn)證成功,可以進(jìn)入系統(tǒng)。如圖4-2所示:圖4-2登陸正確界面4.3本章小結(jié)這章主要是介紹利用Ajax來(lái)實(shí)現(xiàn)用戶登陸的功能,ajax與一般的表單提交不同,不需要刷新頁(yè)面。這使得Web應(yīng)用程序更為迅捷地回應(yīng)用戶動(dòng)作,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒(méi)有改變過(guò)的信息。這里有幾個(gè)問(wèn)題要討論:第一個(gè)是用戶登陸信息的提取用到如下語(yǔ)句。varname=document.getElementById("name").value;varpassword=document.getElementById("password").value;varcenter=document.getElementById("center").value;這里我嘗試過(guò)這樣寫varname=document.getElementByName("name").value;但出現(xiàn)無(wú)法得到內(nèi)容,必須要以Id才能得到value值。第二個(gè)問(wèn)題就是調(diào)試js的方法,可以通過(guò)顯示一個(gè)窗口的方法來(lái)一步步來(lái)調(diào)試。如window.alert(name);來(lái)顯示name的值看看是否獲取到了。第5章樣卷管理模塊設(shè)計(jì)與分析5.1CSV解析樣卷和樣卷的答案是采用Unicode編碼的CSV文件作為數(shù)據(jù)文件的基本格式。因此需要對(duì)CSV進(jìn)行解析。第2章中已經(jīng)描述了CSV的格式是以逗號(hào)作為分隔符,因此可以進(jìn)行如下的解析:UtilCla..javapublicclassUtilCla{publicstaticStringCSVEncode(Stringin){//csv編碼Stringout="";if(in==null)returnout;out=in.replaceAll("&","&");out=out.replaceAll("\"",""");returnout;}publicstaticStringCSVDecode(Stringin){//csv解碼Stringout="";if(in==null)returnout;out=in.replaceAll(""","\"");out=out.replaceAll("&","&");returnout;}}CSVCreater.javapackageinfo.csv;importjava.io.FileOutputStream;importjava.io.IOException;importinfo.csv.UtilCla;publicclassCSVCreater{//創(chuàng)建csvprivateFileOutputStreamfos=null;privateStringBuffersb=null;privatebooleanconvertFlag=false;publicstaticfinalStringDEL_CHAR=",";publicstaticfinalStringAV_CHAR="\"";publicCSVCreater(Stringarg)throwsIOException{//拋出異常處理fos=newFileOutputStream(arg,false);sb=newStringBuffer();}publicvoidsetData(Stringdata){//設(shè)置時(shí)間格式if(convertFlag)data=UtilCla.CSVEncode(data);sb.append(AV_CHAR);sb.append(data);sb.append(AV_CHAR);sb.append(DEL_CHAR);}publicvoidsetConvertFlag(booleanb){//設(shè)置標(biāo)記convertFlag=b;}publicvoidwriteLine(){if(sb.charAt(sb.length()-1)==',')sb.delete(sb.length()-1,sb.length());sb.append("\r\n");}publicvoidwriteDataByLine(String[]args){for(inti=0;i<args.length;i++)setData(args[i]);writeLine();}publicvoidclose()throwsIOException{//關(guān)閉try{fos.write(sb.toString().getBytes());}catch(IOExceptione){throwe;}finally{fos.close();//關(guān)閉文件讀取}}CSVAnalysis.javapackageinfo.csv;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStreamReader;importjava.util.ArrayList;importinfo.csv.UtilCla;publicclassCSVAnalysis{//csv方法解析privateInputStreamReaderfr=null;privatebooleanconvertFlag=false;privateArrayListdataContainer=newArrayList();//新建數(shù)組publicstaticfinalStringDEL_CHAR=",";publicstaticfinalStringAV_CHAR="\"";publicCSVAnalysis(Stringf)throwsIOException{//異常處理fr=newInputStreamReader(newFileInputStream(f));}publicvoidsetConvertFlag(booleanb){//設(shè)置標(biāo)記convertFlag=b;}publicArrayListanalysis()throwsIOException{//異常處理BufferedReaderbr=newBufferedReader(fr);Stringrec=null;try{while((rec=br.readLine())!=null){ArrayListalLine=analysisLine(rec);dataContainer.add(alLine);}}catch(IOExceptione){throwe;}finally{br.close();}returndataContainer;}privateArrayListanalysisLine(StringstrLine){ArrayListal=newArrayList();//新建一個(gè)數(shù)組用于存放結(jié)果String[]dataArr=strLine.split(DEL_CHAR);for(inti=0;i<dataArr.length;i=i+1){if(convertFlag)al.add(UtilCla.CSVDecode(dataArr[i]));//添加到數(shù)組中elseal.add(dataArr[i]);//添加到數(shù)組中}returnal;}publicvoidclose()throwsIOException{//關(guān)閉fr.close();}}通過(guò)這個(gè)3個(gè)java就能解析csv文件,用于樣卷和樣卷答案的導(dǎo)入5.2樣卷和樣卷答案導(dǎo)入這個(gè)模塊的主要功能是導(dǎo)入樣卷和樣卷答案。樣卷存放在ePaper中,如表5-1所示,樣卷答案存放在ePaperKey中,如表5-2所示:表5-1樣卷表列名數(shù)據(jù)類型長(zhǎng)度允許空eId(主鍵)varchar50否awordIDvarchar50是wordIDvarchar50是article1IDvarchar50是article2IDvarchar50是speak1IDvarchar50是speak2IDvarchar50是sorcefloat8是eId是樣卷號(hào),awordID為字號(hào),wordID是詞號(hào),article1ID是第一篇文章的編號(hào),article2ID是第2篇文章的編號(hào),speak1ID是第一篇命題說(shuō)話的編號(hào),speak2ID是第二篇命題說(shuō)話的編號(hào),sorce是樣卷的成績(jī)。表5-2樣卷答案表列名數(shù)據(jù)類型長(zhǎng)度允許空eID(主鍵)varchar50否errorAwordvarchar4000是errorWordvarchar4000是eID是樣卷號(hào),errorAword是樣卷的錯(cuò)字信息,errorWord是樣卷的錯(cuò)詞信息。由于錯(cuò)字和錯(cuò)詞信息所占用的存儲(chǔ)空間比較大,在設(shè)計(jì)樣卷答案表時(shí)數(shù)據(jù)項(xiàng)errorAword和errorWord長(zhǎng)度要設(shè)成4000,這樣設(shè)的目的是為了能存放的下信息,如果是50的話就會(huì)導(dǎo)致插入數(shù)據(jù)失敗,因此要改成4000.在這個(gè)csvInfo.jsp這個(gè)頁(yè)面中提示用戶輸入樣卷和樣卷答案路徑:<formname="form1"action="doCsvInfo.jsp">選擇要導(dǎo)入的樣卷路徑(.csv):    <inputtype="file"name="examPaper"id="examPaper"><p>選擇要導(dǎo)入的樣卷答案路徑(.csv):<inputtype="file"name="examPaperKey"id="examPaperKey"><p><inputtype="submit"name="submit"value="確定"></form>通過(guò)action=”doCsvInfo.jsp”來(lái)提交到doCsvInfo.jsp這個(gè)頁(yè)面來(lái)處理。樣卷和樣卷答案的導(dǎo)入如圖5-1所示:圖5-1選擇導(dǎo)入文件首先在doCsvInfo.jsp.jsp這個(gè)頁(yè)面中首先獲取樣卷和樣卷答案的路徑:StringexamPaperPath=request.getParameter("examPaper");/*獲取樣卷路徑*/StringexamPaperKeyPath=request.getParameter("examPaperKey");/*獲取樣卷答案路徑*/然后通過(guò)這個(gè)路徑對(duì)csv文件進(jìn)行解析,這是對(duì)樣卷csv文件的解析:******解析樣卷csv文件******CSVAnalysiscsvAna=newCSVAnalysis(examPaperPath);//新建解析CSV文件路徑csvAna.setConvertFlag(true);ArrayListal=csvAna.analysis();//新建一個(gè)可變長(zhǎng)數(shù)組來(lái)存放解析結(jié)果String[][]a=newString[al.size()][9];//新建一個(gè)數(shù)組來(lái)存放解析結(jié)果for(inti=0;i<al.size();i++){//外循環(huán)控制行ArrayListal1=(ArrayList)al.get(i);for(intj=0;j<al1.size();j++){//內(nèi)循環(huán)控制列//out.print(al1.get(j)+"|"); //String[][]a=newString[al.size()][al1.size()];a[i][j]=(String)al1.get(j);//把解析的數(shù)據(jù)存放到二維數(shù)組中 //out.print(a[i][j]+"|");} //out.print("==");}csvAna.close();//關(guān)閉解析然后導(dǎo)入到數(shù)據(jù)庫(kù)中的表ePaper中:******將樣卷導(dǎo)入到數(shù)據(jù)庫(kù)中******for(inti=0;i<al.size();i++){StringeId=a[i][0];/*獲取試卷編號(hào)*///out.print(eId);StringawordID=a[i][1];/*獲取字號(hào)*/StringwordID=a[i][2];/*獲取詞號(hào)*/Stringarticle1ID=a[i][3];/*獲取文章一編號(hào)*/Stringarticle2ID=a[i][4];/*獲取文章二編號(hào)*/Stringspeak1ID=a[i][5];/*獲取命題說(shuō)話一編號(hào)*/Stringspeak2ID=a[i][6];/*獲取命題說(shuō)話二編號(hào)*/Stringsorce=a[i][7];/*獲取最終分?jǐn)?shù)*/Stringrank=a[i][8];Stringinsertsql="insertintoePaper(eId,awordID,wordID,article1ID,article2ID,speak1ID,speak2ID,sorce,rank)values('"+eId+"','"+awordID+"','"+wordID+"','"+article1ID+"','"+article2ID+"','"+speak1ID+"','"+speak2ID+"','"+sorce+"','"+rank+"')";/*將個(gè)數(shù)據(jù)項(xiàng)插入到表ePaper*/Bean.executeUpdate(insertsql);/*插入記錄*/}以上是將樣卷解析并導(dǎo)入到數(shù)據(jù)庫(kù)中,樣卷答案的解析與導(dǎo)入用相似的方法即可。******解析樣卷答案csv文件******CSVAnalysiscsvAna2=newCSVAnalysis(examPaperKeyPath);//新建解析路徑csvAna2.setConvertFlag(true);ArrayListal2=csvAna2.analysis();//新建一個(gè)可變長(zhǎng)數(shù)組來(lái)存放解析結(jié)果String[][]b=newString[al2.size()][3];//新建一個(gè)數(shù)組來(lái)存放解析結(jié)果for(inti=0;i<al2.size();i++){//外循環(huán)控制行ArrayListal3=(ArrayList)al2.get(i);for(intj=0;j<al3.size();j++){//內(nèi)循環(huán)控制列b[i][j]=(String)al3.get(j);//把解析的數(shù)據(jù)存放到二維數(shù)組中 //out.print(b[i][j]+"|");}}csvAna.close();//關(guān)閉解析******將樣卷答案導(dǎo)入到數(shù)據(jù)庫(kù)中******for(inti=0;i<al2.size();i++){StringeID=b[i][0];/*獲取樣卷編號(hào)*///out.print(eID);StringerrorAword=b[i][1];/*獲取錯(cuò)字信息*///out.print(errorAword);StringerrorWord=b[i][2];/*獲取錯(cuò)詞信息*/Stringinsertsql2="insertintoePaperKey(eID,errorAword,errorWord)values('"+eID+"','"+errorAword+"','"+errorWord+"')";/*將記錄插入到表中*/Bean.executeUpdate(insertsql2);/*插入記錄*/}這樣就完成了樣卷和樣卷答案的導(dǎo)入工作了。5.3樣卷和樣卷答案查看與說(shuō)明這個(gè)模塊的主要功能是查看導(dǎo)入的樣卷和對(duì)應(yīng)的答案。在csvView.jsp中查看樣卷信息。<%Stringsql="select*fromePaper";/*查找所有試卷信息*/ResultSetrs=Bean.executeQuery(sql);while(rs.next()){StringeId=rs.getString(1);/*獲取試卷編號(hào)*/ StringawordID=rs.getString(2);/*獲取字號(hào)*/ StringwordID=rs.getString(3);/*獲取詞編號(hào)*/ Stringarticle1ID=rs.getString(4);/*獲取文章一編號(hào)*/ Stringarticle2ID=rs.getString(5);/*獲取文章二編號(hào)*/ Stringspeak1ID=rs.getString(6);/*獲取命題說(shuō)話一編號(hào)*/ Stringspeak2ID=rs.getString(7);/*獲取命題說(shuō)話二編號(hào)*/ Stringsorce=rs.getString(8);/*獲取最終分?jǐn)?shù)*/ floatnewsorce=Float.valueOf(sorce).floatValue();/*將分?jǐn)?shù)轉(zhuǎn)化為float型*/%><tr><td><ahref="csvEpaperKey.jsp?eId=<%=eId%>"target="_blank"><%=eId%></a></td><td><%=awordID%></td><td><%=wordID%></td><td><%=article1ID%></td><td><%=article2ID%></td><td><%=speak1ID%></td><td><%=speak2ID%></td><td><%=newsorce%></td></tr><%}根據(jù)試卷號(hào)來(lái)查看相應(yīng)的樣卷答案:<ahref="csvEpaperKey.jsp?eId=<%=eId%>"target="_blank"><%=eId%></a>eId作為參數(shù)傳遞到csvEpaperKey.jsp這個(gè)頁(yè)面中。查看樣卷顯示如圖5-2所示:圖5-2查看樣卷點(diǎn)擊試卷編號(hào)就跳轉(zhuǎn)到csvEpaperKey.jsp頁(yè)面中。首先獲取試卷號(hào)。StringeID=request.getParameter("eId");然后就能根據(jù)這個(gè)試卷號(hào)找到相應(yīng)的試卷答案:Stringsql="select*fromePaperKeywhereeID='"+eID+"'";ResultSetrs=Bean.executeQuery(sql);while(rs.next()){StringerrorAword=rs.getString("errorAword");StringerrorWord=rs.getString("errorWord");%>試卷編號(hào):<%=eID%><p>第一部分錯(cuò)的字:<%=errorAword%><p>第二部分錯(cuò)的詞:<%=errorWord%><%}查看樣卷答案顯示如圖5-3所示:圖5-3樣卷答案這些錯(cuò)字錯(cuò)詞信息說(shuō)明放在樣卷說(shuō)明中。KT是分詞符號(hào)。字的錯(cuò)誤:KF后的內(nèi)容不用處理,KF前的規(guī)則:江1表示"江"缺陷,江2表示"江"錯(cuò)誤。詞的錯(cuò)誤:KF后不必處理,電1磁1波KT加1塞兒KT小熊兒21KT表示第一詞是電磁波其中"電1"電缺陷"磁1""磁"缺陷為2錯(cuò)誤"小熊兒21"表示"熊兒2"是兒化讀音當(dāng)一個(gè)音處理后面的1表示這個(gè)兒化音缺陷如小熊兒22表示兒化音錯(cuò)誤。5.4本章小結(jié)這章主要是把csv格式的文件導(dǎo)入到數(shù)據(jù)庫(kù)中,利用對(duì)csv的解析然后把解析后的數(shù)據(jù)存放到指定的數(shù)組當(dāng)中,最后再把數(shù)組中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中。這里也有2個(gè)問(wèn)題需要討論:第一個(gè)問(wèn)題就是頁(yè)面之間跳轉(zhuǎn)后產(chǎn)生的接收數(shù)據(jù)的亂碼問(wèn)題,這種亂碼的原因是應(yīng)為沒(méi)有在頁(yè)面里指定使用的字符集編碼,只要在頁(yè)面開(kāi)始地方用下面代碼指定字符集編碼即可。第二個(gè)問(wèn)題就是利用框架做分欄的時(shí)候,要注意分欄的比例控制。第6章測(cè)試員測(cè)試情況統(tǒng)計(jì)模塊設(shè)計(jì)與實(shí)現(xiàn)6.1測(cè)試員測(cè)試情況統(tǒng)計(jì)模塊設(shè)計(jì)這個(gè)模塊的主要功能是統(tǒng)計(jì)測(cè)試員的測(cè)試情況。表t_examPaperJudge是用來(lái)存放測(cè)試員的測(cè)試試卷的信息的。表t_judgeInfo和表judger是用來(lái)存放測(cè)試員的信息。表countTemple1,countTemple2是用來(lái)存放臨時(shí)信息的。表6-1t_examPaperJudge表列名數(shù)據(jù)類型長(zhǎng)度允許空examPaperID(主鍵)nvarchar50否judge1IDnvarchar50是GetTimedatetime8是SubmitTimedatetime8是judge1Resultfloat8是judge2IDnvarchar50是judge2Resultfloat8是arbitratorIDnvarchar50是arbitratorResultfloat8是表6-2judger表列名數(shù)據(jù)類型長(zhǎng)度允許空ID(主鍵)char10否namevarchar50是tidchar10是sfzvarchar50是agevarchar50是sexvarchar50是workPlacevarchar50是phonevarchar50是eMailvarchar50是judgerRankvarchar50是表6-3part表列名數(shù)據(jù)類型長(zhǎng)度允許空exampaperIdvarchar50否idvarchar50是getTimevarchar50是submitTimevarchar50是result1varchar50是finalResultvarchar50是Tcount.jsp就是用來(lái)顯示全部的測(cè)試員測(cè)試情況,如圖6-1所示:圖6-1測(cè)試員測(cè)試情況實(shí)現(xiàn)方法為首先查詢所有測(cè)試員的測(cè)試編號(hào),然后以測(cè)試員編號(hào)作為循環(huán)條件來(lái)得到每個(gè)測(cè)試員的測(cè)試信息,再通過(guò)測(cè)試員編號(hào)來(lái)查找符合的數(shù)據(jù)存放到countTemple1表中,最后從countTemple1表中來(lái)計(jì)算每個(gè)測(cè)試員的測(cè)試情況。查詢所有測(cè)試員編號(hào):Stringsql="select*fromjudger";ResultSetrs=Bean.executeQuery(sql);循環(huán)查找符合測(cè)試員編號(hào)的測(cè)試信息:while(rs.next()){Stringbianhao=rs.getString("ID");//得到測(cè)試員編號(hào)StringjudgeName=rs.getString("name"); Stringid=rs.getString("tid"); StringjudgerRank=rs.getString("judgerRank");//<!--把judge1ID為id的數(shù)據(jù)插入到表countTemple1中--> Stringsql1="select*fromt_examPaperJudgewherejudge1ID='"+id+"'";ResultSetrs1=Bean.executeQuery(sql1);while(rs1.next()){ StringexamPaperId=rs1.getString(1);StringgetTime=rs1.getString(4); StringsubmitTime=rs1.getString(5); floatresult=rs1.getFloat(6); floatfinalResult=rs1.getFloat(16); if(finalResult==0){ finalResult=result; }//if結(jié)束 Stringinsertsql1="insertintocountTemple1(exampaperID,testTime,testR,result)values('"+examPaperId+"','"+getTime+"','"+result+"','"+finalResult+"')"; Bean.executeUpdate(insertsql1); }//while結(jié)束//<!--把judge2ID為id的數(shù)據(jù)插入到表countTemple1中--> Stringsql2="select*fromt_examPaperJudgewherejudge2ID='"+id+"'"; ResultSetrs2=Bean.executeQuery(sql2); while(rs2.next()){ StringexamPaperId=rs2.getString(1); StringgetTime=rs2.getString(9); StringsubmitTime=rs2.getString(10); floatresult=rs2.getFloat(11); floatfinalResult=rs2.getFloat(16); if(finalResult==0){ finalResult=result; }//if結(jié)束 Stringinsertsql2="insertintocountTemple1(exampaperID,testTime,testR,result)values('"+examPaperId+"','"+getTime+"','"+result+"','"+finalResult+"')"; Bean.executeUpdate(insertsql2); }//while結(jié)束 //<!--把a(bǔ)rbitratorID為id的數(shù)據(jù)插入到表countTemple1中--> Stringsql3="select*fromt_examPaperJudgewherearbitratorID='"+id+"'";ResultSetrs3=Bean.executeQuery(sql3); while(rs3.next()){ StringexamPaperId=rs3.getString(1); StringgetTime=rs3.getString(14); StringsubmitTime=rs3.getString(15); floatresult=rs3.getFloat(16); Stringinsertsql3="insertintocountTemple1(exampaperID,testTime,testR,result)values('"+examPaperId+"','"+getTime+"',"+result+"','"+result+"')"; Bean.executeUpdate(insertsql3);}//while結(jié)束從countTemple1表中來(lái)計(jì)算每個(gè)測(cè)試員的測(cè)試情況:Stringsql_count="select*fromcountTemple1"; ResultSetrs_count=Bean.executeQuery(sql_count); inti=0; intcount=0; while(rs_count.next()){ StringtestR=rs_count.getString("testR"); Stringresult=rs_count.getString("result"); judgeScorejs=newjudgeScore(); Stringflag=js.judge(testR,result);//判斷測(cè)試是否正確 count++;//計(jì)算總共的測(cè)試數(shù)目 if(flag.equals("正確")){ i++;//計(jì)算測(cè)試正確的數(shù)目 } } Stringdelsql="deletefromcountTemple1";//刪除countTemple1表中的數(shù)據(jù)Bean.executeUpdate(delsql);//執(zhí)行刪除 floatzql=(float)i/(float)count;//計(jì)算測(cè)試正確率 Stringszql=""+zql;//把float變成字符串型 if(szql.length()>5)//判斷是否字符串長(zhǎng)度大于5 szql=szql.substring(0,5);//如果是就只取其面5個(gè)保留3位有效數(shù)用戶可以通過(guò)點(diǎn)擊測(cè)試員的姓名來(lái)獲取該測(cè)試員的個(gè)人信息如圖6-2所示:圖6-

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論