基于JAVA交通考試的開發(fā)與研究_第1頁
基于JAVA交通考試的開發(fā)與研究_第2頁
基于JAVA交通考試的開發(fā)與研究_第3頁
基于JAVA交通考試的開發(fā)與研究_第4頁
基于JAVA交通考試的開發(fā)與研究_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、JAVA課程設(shè)計(jì)題目:駕駛員從業(yè)資格考試系統(tǒng) 學(xué) 院: 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 10 計(jì) 科 學(xué) 號(hào): 學(xué)生姓名: 2012年 01 月 05日無紙化考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要:在當(dāng)今社會(huì),網(wǎng)絡(luò)教育作為構(gòu)建開放的終身教育體系的一種十分重要和行之有效的途徑,越來越收到各方面的關(guān)注,并得到了極大的應(yīng)用和發(fā)展。網(wǎng)上考試系統(tǒng),作為網(wǎng)絡(luò)教育支持平臺(tái)中十分重要的組成部分,為網(wǎng)絡(luò)教育教學(xué)反饋和質(zhì)量評(píng)估的有效手段,同時(shí)也對(duì)傳統(tǒng)考試提出了巨大的挑戰(zhàn)。本系統(tǒng)利用網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫技術(shù),開發(fā)了基于C/S結(jié)構(gòu)的多用戶在線考試系統(tǒng)。該系統(tǒng)使用方便、操作簡(jiǎn)單,現(xiàn)階段能實(shí)現(xiàn)多用戶同時(shí)在線考試、時(shí)間控制,試題錄入及

2、修改、試題共享、用戶管理、成績(jī)查詢、輔助閱卷等重要功能,也就是說實(shí)現(xiàn)了真正的無紙化考試,滿足任何授權(quán)的考生隨時(shí)隨地考試并獲得成績(jī)。軟件采用簡(jiǎn)潔的客戶端服務(wù)器模式,脫離對(duì)外網(wǎng)的依賴,在局域網(wǎng)內(nèi)即可完成考試。以C語言和C+ 課程為例構(gòu)建了兩份試卷并實(shí)現(xiàn)了網(wǎng)上考試系統(tǒng)的設(shè)計(jì),該考試系統(tǒng)具有通用性,可以方便地推廣到其他課程。關(guān)鍵字:網(wǎng)上考試系統(tǒng);軟件工程;組卷;C/S模式目 錄 TOC o 1-2 h z u HYPERLINK l _Toc32209 1 緒論 PAGEREF _Toc32209 1 HYPERLINK l _Toc31532 1.1課題研究背景 PAGEREF _Toc31532

3、1 HYPERLINK l _Toc187 1.2課題研究的內(nèi)容 PAGEREF _Toc187 2 HYPERLINK l _Toc23835 1.3課題研究的意義 PAGEREF _Toc23835 2 HYPERLINK l _Toc3843 2 系統(tǒng)的理論基礎(chǔ)及相關(guān)技術(shù) PAGEREF _Toc3843 4 HYPERLINK l _Toc14758 2.1可行性分析 PAGEREF _Toc14758 4 HYPERLINK l _Toc30807 2.2系統(tǒng)的主要技術(shù)措施 PAGEREF _Toc30807 4 HYPERLINK l _Toc16739 2.3VS及MFC簡(jiǎn)介 P

4、AGEREF _Toc16739 5 HYPERLINK l _Toc21528 3 系統(tǒng)的需求分析 PAGEREF _Toc21528 9 HYPERLINK l _Toc6883 3.1系統(tǒng)需求分析 PAGEREF _Toc6883 9 HYPERLINK l _Toc12404 3.2系統(tǒng)開發(fā)環(huán)境 PAGEREF _Toc12404 10 HYPERLINK l _Toc15833 4 系統(tǒng)設(shè)計(jì)方案 PAGEREF _Toc15833 12 HYPERLINK l _Toc18317 4.1系統(tǒng)的體系結(jié)構(gòu) PAGEREF _Toc18317 12 HYPERLINK l _Toc54 4

5、.2功能模塊設(shè)計(jì) PAGEREF _Toc54 13 HYPERLINK l _Toc21151 4.3權(quán)限設(shè)計(jì) PAGEREF _Toc21151 14 HYPERLINK l _Toc11558 4.4系統(tǒng)數(shù)據(jù)庫設(shè)計(jì) PAGEREF _Toc11558 15 HYPERLINK l _Toc4989 5 系統(tǒng)主要模塊的設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc4989 20 HYPERLINK l _Toc32035 5.1系統(tǒng)總體結(jié)構(gòu)及服務(wù)器端和客戶端說明 PAGEREF _Toc32035 20 HYPERLINK l _Toc12004 5.2題庫管理的實(shí)現(xiàn) PAGEREF _Toc120

6、04 21 HYPERLINK l _Toc16246 5.3試卷生成功能的實(shí)現(xiàn) PAGEREF _Toc16246 22 HYPERLINK l _Toc1650 5.4在線考試的實(shí)現(xiàn) PAGEREF _Toc1650 24 HYPERLINK l _Toc18649 5.5用戶管理的實(shí)現(xiàn) PAGEREF _Toc18649 30 HYPERLINK l _Toc30529 5.6成績(jī)查詢功能實(shí)現(xiàn) PAGEREF _Toc30529 30 HYPERLINK l _Toc6174 5.7答卷的存儲(chǔ)與讀取 PAGEREF _Toc6174 33 HYPERLINK l _Toc19067 5.

7、8文件傳輸?shù)膶?shí)現(xiàn) PAGEREF _Toc19067 34 HYPERLINK l _Toc26877 6 系統(tǒng)界面設(shè)計(jì) PAGEREF _Toc26877 36 HYPERLINK l _Toc20315 6.1服務(wù)端 PAGEREF _Toc20315 36 HYPERLINK l _Toc28289 6.2 客戶端 PAGEREF _Toc28289 38 HYPERLINK l _Toc4734 7 總結(jié) PAGEREF _Toc4734 40 HYPERLINK l _Toc31145 參考文獻(xiàn) PAGEREF _Toc31145 411 緒論1.1課題研究背景隨著Internet和

8、計(jì)算機(jī)技術(shù)的高速發(fā)展,計(jì)算機(jī)和網(wǎng)絡(luò)的應(yīng)用已經(jīng)普及到各行各業(yè)。尤其在大,中專院校,校園網(wǎng)的建設(shè)已經(jīng)逐步完善,大多數(shù)學(xué)生已經(jīng)具備了利用網(wǎng)絡(luò)工具進(jìn)行信息交流和輔助學(xué)習(xí)的能力。發(fā)展以互聯(lián)網(wǎng)為主要手段的現(xiàn)代遠(yuǎn)程教育已經(jīng)成為當(dāng)今教育發(fā)展的趨勢(shì)。在國內(nèi),教育部提出實(shí)施“現(xiàn)代遠(yuǎn)程教育工程”,形成開放式教育網(wǎng)絡(luò),構(gòu)建終身學(xué)習(xí)體系。在我國,考試一直是學(xué)校教學(xué)活動(dòng)中最重要的環(huán)節(jié)之一。然而,長期以來學(xué)校的各種考試都是以紙,筆為介質(zhì)的傳統(tǒng)考試方式,就是到目前為止,許多學(xué)校包括我們所在的高校,都還在廣泛的使用這種考試方式。在傳統(tǒng)考試方式下,組織一次考試要經(jīng)過多個(gè)環(huán)節(jié):教師出題,印制試卷,學(xué)生考試,教師閱卷,統(tǒng)計(jì)成績(jī)與評(píng)估

9、和試卷分析等,消耗了大量的人力物力,并且在閱卷,統(tǒng)分的工作中也非常容易出現(xiàn)人為的差錯(cuò)。而且,隨著考試題型和考生數(shù)量的不斷增加以及考試要求的不斷提高,組織考試的工作量越來越大,而且也越來越煩瑣??梢哉f,在計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)日益發(fā)展成熟的今天,傳統(tǒng)的考試方式已經(jīng)很不適應(yīng)現(xiàn)代考試的需要了。將先進(jìn)的計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)應(yīng)用于考試已經(jīng)成為考試方式發(fā)展的必然趨勢(shì)了。老師們都非常盼望用一種新的方式來取代傳統(tǒng)考試方式,以減輕教師的工作負(fù)擔(dān)、提高工作效率,提高考試質(zhì)量,使考試更趨于客觀、合理和公證,更有利于教與學(xué)。正是在這種背景下,設(shè)計(jì)并開發(fā)一個(gè)功能完善的網(wǎng)絡(luò)考試系統(tǒng)也就成為了我們迫切需要解決的問題?;诖?,

10、近幾年來在線考試系統(tǒng)一直是高校軟件開發(fā)的熱點(diǎn)?;贐/S模式和C/S模式的考試系統(tǒng)是一種新興的考試模式,它改變了傳統(tǒng)的考試方式,可以客觀、準(zhǔn)確地評(píng)估人在某個(gè)知識(shí)領(lǐng)域的能力和水平,極大的提高考試效率,將考試這樣一項(xiàng)浩大的工程簡(jiǎn)單化、模式化、透明化。同傳統(tǒng)意義上的考試相比,無紙化考試系統(tǒng)是傳統(tǒng)考試和考場(chǎng)的延伸,它可以利用網(wǎng)絡(luò)的無限廣闊空間,隨時(shí)隨地的讓學(xué)生進(jìn)行練習(xí)、測(cè)試和考試,加上數(shù)據(jù)庫技術(shù)的利用,大大簡(jiǎn)化了傳統(tǒng)考試的過程,提高了考試和評(píng)價(jià)質(zhì)量。本系統(tǒng)基于C/S,實(shí)現(xiàn)的目標(biāo)是輕量級(jí),簡(jiǎn)單,可靠,以下是相關(guān)流程:(1)首先教師和管理員的界面是不一樣的,管理員除了具有教師的權(quán)限外,還具有管理權(quán)限,考試

11、前,教師需要準(zhǔn)備好試卷,一種是以前自己出的或其它教師出的題或?qū)⒁郧暗脑嚲硇薷某尚碌脑嚲?,一種是利用向?qū)е谱髟嚲?,由于直接在服?wù)器上操作,不需要管理員的干涉。(2)考試中,考生通過計(jì)算機(jī)連接到考試服務(wù)器上,教師在服務(wù)器端發(fā)放試卷,試卷以獨(dú)立文件的形式傳回學(xué)生機(jī),考試過程中所有考生的答案以獨(dú)立文件的形式暫存在本地機(jī),等提交試卷后再傳回服務(wù)器,在網(wǎng)絡(luò)斷開時(shí)拷貝至服務(wù)。(3)考試結(jié)束后,由計(jì)算機(jī)自動(dòng)閱卷結(jié)合教師在服務(wù)器閱卷,由教師查詢。1.2課題研究的內(nèi)容本課題使用VC/MFC技術(shù),運(yùn)用軟件工程的思想,和模塊化設(shè)計(jì)思想來進(jìn)行開發(fā),分為用戶界面、數(shù)據(jù)處理和數(shù)據(jù)存儲(chǔ)讀取。用戶界面由MFC中模板完成,簡(jiǎn)單容

12、易維護(hù),數(shù)據(jù)處理也依賴于MFC消息機(jī)制和數(shù)據(jù)處理機(jī)制加上C+本身強(qiáng)大的能力,數(shù)據(jù)文件存儲(chǔ)也由MFC提供了處理方式,本系統(tǒng)具有試卷生成、試題管理、考試、成績(jī)查詢、用戶管理和閱卷六個(gè)子系統(tǒng)組成。客戶端只供考生登錄,服務(wù)器端供教師和管理員登錄。網(wǎng)上考試系統(tǒng)要實(shí)現(xiàn)下面的功能:系統(tǒng)服務(wù)器端分管理員和教師,客戶端僅供考試使用。教師登錄后可以創(chuàng)建新試卷,系統(tǒng)提供了一個(gè)向?qū)?,幫助教師也手?dòng)添加試題,非常方便,若完成后覺得需要改動(dòng),也可以修改,考試模擬功能,學(xué)生登錄,發(fā)放試卷,答題,考試實(shí)時(shí)狀態(tài),答卷自動(dòng)保存和傳輸。教師可隨時(shí)閱卷,閱卷時(shí),客觀題直接由系統(tǒng)批改,主觀題由老師定奪。1.3課題研究的意義在計(jì)算機(jī)技術(shù)

13、和網(wǎng)絡(luò)技術(shù)日益發(fā)展成熟,并逐步滲到社會(huì)生活各個(gè)領(lǐng)域的今天,各行各業(yè)都發(fā)生了深刻的變革,計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)已經(jīng)被廣泛地用于各行各業(yè),學(xué)校也不例外,傳統(tǒng)的考試方式也面臨著重大的變革,而利用網(wǎng)絡(luò)考試系統(tǒng)進(jìn)行考試則是一種先進(jìn)的考試方式,它有很多傳統(tǒng)的考試方式所不具有的優(yōu)越性。傳統(tǒng)的考試方式下,多數(shù)學(xué)校的考試的工作流程是教師出題、印制試卷,學(xué)生考試,教師圓卷、統(tǒng)計(jì)成績(jī)與評(píng)估、試卷分析等,其中制卷、閱卷、統(tǒng)計(jì)成績(jī)的工作量非常大,而且也特別容易出錯(cuò)。尤其是隨著高校學(xué)生的擴(kuò)招,考生數(shù)量大幅度增加,閱卷和成績(jī)統(tǒng)計(jì)的工作將變得更加的煩瑣。利用網(wǎng)絡(luò)考試系統(tǒng)進(jìn)行考試則不再需要印刷試卷,可以節(jié)省大量的人力、物力和財(cái)力

14、;課程考試題目在考前輸入計(jì)算機(jī),建成試題庫,利用網(wǎng)絡(luò)考試系統(tǒng)對(duì)試題庫進(jìn)行科學(xué)的管理,為教師題目的保存、分類和檢索提供了便利,也為編制試卷提供了高效率和低成本的手段:考試試卷由試題庫中的信息按照教師制定的組卷策略自動(dòng)生成,提高了出卷的效率,并避免了考試前試題信息的泄露;考試系統(tǒng)可以對(duì)歷次考試的結(jié)果進(jìn)行統(tǒng)計(jì)分析,教師可以依據(jù)分析結(jié)果,根據(jù)實(shí)際情況,調(diào)整、更新試題,增強(qiáng)試題庫的生命力。使試題庫能夠更加準(zhǔn)確的反映要考核的內(nèi)容,增強(qiáng)出題的科學(xué)性和合理性:采用標(biāo)準(zhǔn)化的客觀型試題進(jìn)行考試,網(wǎng)絡(luò)考試系統(tǒng)可以直接對(duì)試卷進(jìn)行評(píng)分,就不需要人工閱卷,從而不但可以大量減輕任課教師煩瑣的閱卷工作,還提高了閱卷的效率和準(zhǔn)

15、確度,避免了人工判卷時(shí)經(jīng)常出現(xiàn)的錯(cuò)判、漏判和分?jǐn)?shù)計(jì)算錯(cuò)誤等情況,使考試過程更加規(guī)范化;考試后每個(gè)題目的分?jǐn)?shù)存儲(chǔ)在數(shù)據(jù)庫中,利用數(shù)據(jù)庫能方便地對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、匯總、排序等操作,就不再需要教師做毫無意義的統(tǒng)分工作了,教師也能從中了解考試的情況;考試試卷及考試成績(jī)保存在數(shù)據(jù)庫中,為考生查詢成績(jī)提供了方便,也增加了考試的公開性與透明度。由此可見,設(shè)計(jì)并開發(fā)一個(gè)功能完善的網(wǎng)絡(luò)考試系統(tǒng)是非常有意義的。2 系統(tǒng)的理論基礎(chǔ)及相關(guān)技術(shù)2.1可行性分析技術(shù)可行性(1)考試系統(tǒng)多年來主要的困擾是對(duì)試題多樣性的處理,但隨著軟件技術(shù)的發(fā)展,這個(gè)問題已經(jīng)得到了徹底解決。本系統(tǒng)中能夠處理的題型有:?jiǎn)芜x題、多選題、判斷題、填

16、空題、簡(jiǎn)答題和論述題等,在本系統(tǒng)中簡(jiǎn)答題和論述題將統(tǒng)一為主觀題,其它為客觀題,客觀題采用計(jì)算機(jī)自動(dòng)評(píng)分,這也是該系統(tǒng)與傳統(tǒng)考試相比,所具有的一個(gè)優(yōu)越性。這些題型涵蓋了大部分科目的考試題型,能滿足考試的科學(xué)性和合理性要求。(2)隨著硬件技術(shù)的發(fā)展,試題庫存貯數(shù)據(jù)量大和處理速度慢等因素已不再是主要考慮的問題。本系統(tǒng)采用Microsoft SQL Server2000數(shù)據(jù)庫,能提供超大型系統(tǒng)所需的數(shù)據(jù)庫服務(wù)。(3)現(xiàn)在高校學(xué)生普遍具備了使用微機(jī)的基本技能,學(xué)生在鍵盤、鼠標(biāo)操作、漢字錄入方面都不存在問題,且網(wǎng)絡(luò)考試系統(tǒng)對(duì)計(jì)算機(jī)操作水平要求極低,考生使用計(jì)算機(jī)答卷是完全可行的。經(jīng)濟(jì)可行性傳統(tǒng)考試組織起來

17、比較復(fù)雜,其工作流程包括:教師出題、制卷、分配考場(chǎng)、考試、閱卷、成績(jī)統(tǒng)計(jì)、發(fā)成績(jī)通知單等多個(gè)環(huán)節(jié),這些環(huán)節(jié)需要耗費(fèi)大量的人力、物力和財(cái)力。而利用網(wǎng)絡(luò)考試和管理系統(tǒng)組織考試,無需制卷、成績(jī)統(tǒng)計(jì)和發(fā)成績(jī)通知單等過程,可以節(jié)約大量的人力、物力和財(cái)力。因此,使用網(wǎng)絡(luò)考試和管理系統(tǒng)有顯著的經(jīng)濟(jì)和社會(huì)效益。社會(huì)可行性隨著教學(xué)體制的改革,考試制度也將隨之變革,采用無紙化的網(wǎng)上考試是今后考試的發(fā)展趨勢(shì)。現(xiàn)在,許多高校對(duì)于開發(fā)和應(yīng)用網(wǎng)絡(luò)考試系統(tǒng)給予了極大的重視,許多學(xué)校都有相應(yīng)的科研立項(xiàng)。因此,網(wǎng)絡(luò)考試系統(tǒng)有著十分廣闊的市場(chǎng)前景。2.2系統(tǒng)的主要技術(shù)措施(1)技術(shù)路線。按照軟件工程開發(fā)設(shè)計(jì)思路,分步驟進(jìn)行需求分

18、析、整體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼測(cè)試,最后驗(yàn)收通過。(2)技術(shù)環(huán)境。開發(fā)環(huán)境為微軟公司的VS,數(shù)據(jù)庫選用Microsoft SQL Server2000,它是基于客戶機(jī)服務(wù)器模式。2.3VS及MFC簡(jiǎn)介VC+.net簡(jiǎn)介VC+是微軟公司開發(fā)的一個(gè)IDE(集成開發(fā)環(huán)境),換句話說,就是使用C+的一個(gè)開發(fā)平臺(tái),VC+是Windows平臺(tái)上的C+編程環(huán)境,VC作為一個(gè)主流的開發(fā)平臺(tái)一直深受編程愛好者的喜愛,VC+應(yīng)用程序的開發(fā)主要有兩種模式,一種是WIN API方式,另一種則是MFC方式,傳統(tǒng)的WIN API開發(fā)方式比較繁瑣,而MFC則是對(duì)WIN API再次封裝,所以MFC相對(duì)于WIN API開發(fā)更具備

19、效率優(yōu)勢(shì),VC基于C,C+語言,主要由是MFC組成,是與系統(tǒng)聯(lián)系非常緊密的編程工具,它兼有高級(jí),和低級(jí)語言的雙重性,功能強(qiáng)大,靈活,執(zhí)行效率高,幾乎可說VC在 Windows平臺(tái)無所不能。 最大缺點(diǎn)是開發(fā)效率不高。MFC簡(jiǎn)介MFC,微軟基礎(chǔ)類(Microsoft Foundation Classes),實(shí)際上是微軟提供的,用于在C+環(huán)境下編寫應(yīng)用程序的一個(gè)框架和引擎,VC+是Windows下開發(fā)人員使用的專業(yè)C+ SDK(SDK,Standard Software Develop Kit,專業(yè)軟件開發(fā)平臺(tái)),MFC就是掛在它之上的一個(gè)輔助軟件開發(fā)包,MFC作為與VC+血肉相連的部分(注意C+和

20、VC+的區(qū)別:C+是一種程序設(shè)計(jì)語言,是一種大家都承認(rèn)的軟件編制的通用規(guī)范,而VC+只是一個(gè)編譯器,或者說是一種編譯器+源程序編輯器的IDE,WS,Platform,這跟Pascal和Delphi的關(guān)系一個(gè)道理,Pascal是Delphi的語言基礎(chǔ),Delphi使用Pascal規(guī)范來進(jìn)行Win下應(yīng)用程序的開發(fā)和編譯,卻不同于Basic語言和VB的關(guān)系,Basic語言在VB開發(fā)出來被應(yīng)用的年代已經(jīng)成了Basic語言的新規(guī)范,VB新加的Basic語言要素,如面向?qū)ο蟪绦蛟O(shè)計(jì)的要素,是一種性質(zhì)上的飛躍,使VB既是一個(gè)IDE,又成長成一個(gè)新的程序設(shè)計(jì)語言),MFC同BC+集成的VCL一樣是一個(gè)非外掛式

21、的軟件包,類庫,只不過MFC類是微軟為VC+專配的本系統(tǒng)。本系統(tǒng)采用Visual Studio 開發(fā)環(huán)境進(jìn)行開發(fā)。MFC的特點(diǎn)與功能MFC的本質(zhì)就是一個(gè)包含了許多微軟公司已經(jīng)定義好的對(duì)象的類庫,我們知道,雖然我們要編寫的程序在功能上是千差萬別的,但從本質(zhì)上來講,都可以化歸為用戶界面的設(shè)計(jì),對(duì)文件的操作,多媒體的使用,數(shù)據(jù)庫的訪問等等一些最主要的方面。這一點(diǎn)正是微軟提供MFC類庫最重要的原因,在這個(gè)類庫中包含了一百多個(gè)程序開發(fā)過程中最常用到的對(duì)象。在進(jìn)行程序設(shè)計(jì)的時(shí)候,如果類庫中的某個(gè)對(duì)象能完成所需要的功能,這時(shí)我們只要簡(jiǎn)單地調(diào)用已有對(duì)象的方法就可以了。我們還可以利用面向?qū)ο蠹夹g(shù)中很重要的“繼承

22、”方法從類庫中的已有對(duì)象派生出我們自己的對(duì)象,這時(shí)派生出來的對(duì)象除了具有類庫中的對(duì)象的特性和功能之外,還可以由我們自己根據(jù)需要加上所需的特性和方法,產(chǎn)生一個(gè)更專門的,功能更為強(qiáng)大的對(duì)象。當(dāng)然,你也可以在程序中創(chuàng)建全新的對(duì)象,并根據(jù)需要不斷完善對(duì)象的功能。正是由于MFC編程方法充分利用了面向?qū)ο蠹夹g(shù)的優(yōu)點(diǎn),它使得我們編程時(shí)極少需要關(guān)心對(duì)象方法的實(shí)現(xiàn)細(xì)節(jié),同時(shí)類庫中的各種對(duì)象的強(qiáng)大功能足以完成我們程序中的絕大部分所需功能,這使得應(yīng)用程序中程序員所需要編寫的代碼大為減少,有力地保證了程序的良好的可調(diào)試性。最后要指出的是MFC類庫在提供的對(duì)象的各種屬性和方法都是經(jīng)過謹(jǐn)慎的編寫和嚴(yán)格的測(cè)試,可靠性很高,

23、這就保證了使用MFC類庫不會(huì)影響程序的可靠性和正確性。VC數(shù)據(jù)庫訪問技術(shù)VC提供了以下多種方法訪問數(shù)據(jù)庫:(1)使用ODBC技術(shù);(2)使用OLEDB技術(shù);(3)使用數(shù)據(jù)綁定控件技術(shù);(4)使用DAO技術(shù)。由于目前需要和數(shù)據(jù)量對(duì)數(shù)據(jù)處理的能力要求并不高,因此選擇最常用的ODBC方式這種方式主要用到兩個(gè)類Cdatabase類,它繼承自類Cobject類,Cdatabase對(duì)象表示到數(shù)據(jù)源的連接,通過它可以操作數(shù)據(jù)源,數(shù)據(jù)源是位于一些數(shù)據(jù)庫管理系統(tǒng)的的數(shù)據(jù)指定實(shí)例,第二類是Crecordset類,它也派生自Cobject類,一個(gè)Crecordset類對(duì)象代表一個(gè)從數(shù)據(jù)源檢索到的記錄集,被典型應(yīng)用為

24、兩種方式:動(dòng)態(tài)記錄集或者快照集。ODBC簡(jiǎn)介ODBC(Open Database Connectivity,開放數(shù)據(jù)庫互連)是微軟公司開放服務(wù)結(jié)構(gòu)(WOSA,Windows Open Services Architecture)中有關(guān)數(shù)據(jù)庫的一個(gè)組成部分,它建立了一組規(guī)范,并提供了一組對(duì)數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)API(應(yīng)用程序編程接口)。這些API利用SQL來完成其大部分任務(wù)。ODBC本身也提供了對(duì)SQL語言的支持,用戶可以直接將SQL語句送給ODBC,一個(gè)基于ODBC的應(yīng)用程序?qū)?shù)據(jù)庫的操作不依賴任何DBMS,不直接與DBMS打交道,所有的數(shù)據(jù)庫操作由對(duì)應(yīng)的DBMS的ODBC驅(qū)動(dòng)程序完成。也就是說,

25、不論是FoxPro、Access , MYSQL還是Oracle數(shù)據(jù)庫,均可用ODBC API進(jìn)行訪問。由此可見,ODBC的最大優(yōu)點(diǎn)是能以統(tǒng)一的方式處理所有的數(shù)據(jù)庫一個(gè)完整的ODBC由下列幾個(gè)部件組成:(1)應(yīng)用程序(Application)。(2)ODBC管理器(Administrator)。該程序位于Windows控制面板(Control Panel)的32位ODBC內(nèi),其主要任務(wù)是管理安裝的ODBC驅(qū)動(dòng)程序和管理數(shù)據(jù)源。(3)驅(qū)動(dòng)程序管理器(Driver Manager)。驅(qū)動(dòng)程序管理器包含在ODBC32。DLL中,對(duì)用戶是透明的。其任務(wù)是管理ODBC驅(qū)動(dòng)程序,是ODBC中最重要的部件。

26、(4)ODBC API。(5)ODBC 驅(qū)動(dòng)程序。是一些DLL,提供了ODBC和數(shù)據(jù)庫之間的接口。數(shù)據(jù)源。數(shù)據(jù)源包含了數(shù)據(jù)庫位置和數(shù)據(jù)庫類型等信息,實(shí)際上是一種數(shù)據(jù)連接的抽象。 Socket套接字及文件傳輸本系統(tǒng)用到的是VC的CAsyncSocket類, 該類在非常低的級(jí)別上封裝 Windows Sockets API,它的使用方法如下:(1)創(chuàng)建套接字創(chuàng)建一個(gè) CAsyncSocket 對(duì)象并使用該對(duì)象創(chuàng)建基礎(chǔ) SOCKET 句柄。CAsyncSocket sock;sock。Create( ); / Use the default parameters 或 CAsyncSocket* pS

27、ocket = new CAsyncSocket;int nPort = 27;pSocket- Create( nPort, SOCK_DGRAM );(2)偵聽與接受連接 如果套接字是客戶端,則使用 CAsyncSocket:Connect 將此套接字對(duì)象連接到服務(wù)器套接字。如果套接字是服務(wù)器,則將套接字設(shè)置為開始偵聽(使用 CAsyncSocket:Listen)來自客戶端的連接嘗試。接收到連接請(qǐng)求時(shí),用 CAsyncSocket:Accept 接受該請(qǐng)求。(3)發(fā)送和接收數(shù)據(jù)使用Send(const void* lpBuf,int nBufLen,int nFlags = 0 )或in

28、t SendTo(const void* lpBuf,int nBufLen,UINT nHostPort,LPCTSTR lpszHostAddress = NULL,int nFlags = 0發(fā)送數(shù)據(jù),使用int Receive(void* lpBuf,int nBufLen,int nFlags = 0 )或int ReceiveFrom(void* lpBuf,int nBufLen,CString& rSocketAddress,UINT& rSocketPort,int nFlags = 0)接收數(shù)據(jù)(4)關(guān)閉套接字void Close( );3 系統(tǒng)的需求分析3.1系統(tǒng)需求分析

29、采用軟件工程的思想對(duì)考試系統(tǒng)進(jìn)行需求分析,分析系統(tǒng)綜合要求和系統(tǒng)數(shù)據(jù)要求。在系統(tǒng)綜合要求中分析功能、性能、運(yùn)行三個(gè)方面的要求;在系統(tǒng)數(shù)據(jù)要求中對(duì)考試系統(tǒng)主要功能進(jìn)行分析。在需求分析的基礎(chǔ)上進(jìn)行系統(tǒng)總體設(shè)計(jì)。系統(tǒng)功能需求無紙化考試系統(tǒng)的基本功能是利用計(jì)算機(jī)和網(wǎng)絡(luò)來組織考試。考試前,教師建立相關(guān)考試科目的題庫;考試時(shí),教師從題庫中選擇試卷發(fā)放給學(xué)生用的客戶端,學(xué)生在線答題;考試后,學(xué)生可以通過查詢成績(jī),系統(tǒng)能對(duì)考試情況進(jìn)行統(tǒng)計(jì)與分析,對(duì)試卷的難度和信度進(jìn)行評(píng)估。為了實(shí)現(xiàn)這一目標(biāo),使本系統(tǒng)能夠充分實(shí)現(xiàn)考試功能,順利地完成每一次考試的流程,本系統(tǒng)至少應(yīng)該具有以下功能:(1)系統(tǒng)能夠?qū)W(xué)生、教師、管理員

30、的基本信息進(jìn)行管理,以便在登錄網(wǎng)絡(luò)考試系統(tǒng)時(shí),驗(yàn)證用戶的身份和為考生形成完整的考試信息檔案;(2)試題庫中應(yīng)包含多種類型的題型,如單選題、多選題、判斷題、填空題、簡(jiǎn)答題和論述題等。試卷能夠共享,也能私有,能修改,刪除;(3)考生答題沒有順序限制,可以隨便做任意一個(gè)題,交卷之前可對(duì)答案進(jìn)行修改;(4)考試完后,系統(tǒng)能夠自動(dòng)對(duì)考生的客觀題部分進(jìn)行評(píng)分,主觀題部分則由閱卷教師閱卷后將其成績(jī)手工輸入,最后計(jì)算機(jī)生成每個(gè)考生的成績(jī),并將結(jié)果入考生成績(jī)數(shù)據(jù)庫。(5)系統(tǒng)能夠?qū)崿F(xiàn)對(duì)考生的考試成績(jī)進(jìn)行統(tǒng)計(jì)、對(duì)成績(jī)和試卷進(jìn)行查詢的功能。系統(tǒng)性能需求對(duì)于網(wǎng)上考試系統(tǒng)來說,可擴(kuò)展性、安全性、可管理性是幾個(gè)關(guān)鍵因素:

31、(1)可管理性。軟件的可管理性是指可以方便地對(duì)系統(tǒng)進(jìn)行管理,確保系統(tǒng)的正常運(yùn)行管理和運(yùn)作,這是作為一個(gè)軟件最基本的特征,主要涉及以下幾個(gè)因素:維護(hù)系統(tǒng)服務(wù)及其服務(wù)正常工作所需的基礎(chǔ)結(jié)構(gòu)、工具以及管理員和技術(shù)人員。無紙化考試系統(tǒng)要求所有操作除身份驗(yàn)證發(fā)送試卷發(fā)送答卷外是獨(dú)立的,不受網(wǎng)絡(luò)影響(2)安全性。安全性是指系統(tǒng)能夠保護(hù)數(shù)據(jù)或基礎(chǔ)結(jié)構(gòu)避免受惡意攻擊或者盜用。安全性是通過為信息的機(jī)密性、完整性和可靠性提供充分的保護(hù)來預(yù)防風(fēng)險(xiǎn)。保障系統(tǒng)安全是任何系統(tǒng)成功的基本要素。對(duì)于網(wǎng)上考試系統(tǒng)來說,題庫、試卷、成績(jī)?nèi)叩陌踩允潜匦枰右钥紤]的。(3)可擴(kuò)展性。可擴(kuò)展性是指系統(tǒng)能保證可持續(xù)增長以滿足用戶的需

32、求和業(yè)務(wù)復(fù)雜性要求。系統(tǒng)為動(dòng)態(tài)變化的模型,它們通常開始很小,但是隨著需求的增長而呈指數(shù)級(jí)增長。這種增長非常迅速,不僅表現(xiàn)在支持的用戶數(shù)量上,而且表現(xiàn)在提供的用戶服務(wù)的復(fù)雜性和集成性方面。對(duì)于考試系統(tǒng)而言,這種擴(kuò)展性就顯得尤為重要,因?yàn)榭荚囅到y(tǒng)功能的完善是一個(gè)漸進(jìn)的過程,要根據(jù)學(xué)生的要求和技術(shù)的發(fā)展而不斷改進(jìn)。系統(tǒng)運(yùn)行需求無紙化考試系統(tǒng)應(yīng)用環(huán)境的整體結(jié)構(gòu),基于C/S結(jié)構(gòu)構(gòu)建,在局域網(wǎng)內(nèi)通過客戶端器就能登錄考試。目前,整個(gè)考試系統(tǒng)服務(wù)器將在機(jī)房單的管理機(jī)上安裝而每臺(tái)學(xué)生用機(jī)上安裝客戶端,客戶端可以登錄更改服務(wù)器地址,從而實(shí)現(xiàn)局域網(wǎng)等同外網(wǎng)。3.2系統(tǒng)開發(fā)環(huán)境操作系統(tǒng)平臺(tái)本系統(tǒng)選用微軟的Micros

33、oft Windows2000 Server(Windows2000服務(wù)器版)作為網(wǎng)絡(luò)服務(wù)器操作系統(tǒng)平臺(tái),它具有穩(wěn)定性、可靠性、安全性和可擴(kuò)充性等優(yōu)點(diǎn),是一種同時(shí)具有改進(jìn)性和創(chuàng)新性的產(chǎn)品。操作系統(tǒng)的安全是Web最基本的,也是最重要的安全保證。系統(tǒng)要從安裝、配置和管理三個(gè)方面入手,對(duì)Windows2000 Server進(jìn)行安全設(shè)計(jì):(1)安裝:在安裝安全方面注意采用NTFS文件分區(qū)格式以及安裝微軟官方公布的最新Server Packs和補(bǔ)丁。(2)配置:在配置方面要遵循。最少的服務(wù)+最小的權(quán)限=最大的安全的原則,注意NTFS權(quán)限的設(shè)置,及時(shí)為系統(tǒng)管理員帳號(hào)更名,嚴(yán)格限制服務(wù),關(guān)閉不必要的端口,最

34、好能配置安全審核策略。(3)管理:在安全管理方面注意記錄服務(wù)器安裝配置情況和更改日志、留意Microsoft最新安全公告、及時(shí)打補(bǔ)丁、根據(jù)情況的變化增加安全設(shè)置、經(jīng)常查看安全審核日志、備份系統(tǒng)配置信息和其它重要數(shù)據(jù)等,并給服務(wù)器安裝防病毒軟件和防火墻系統(tǒng)。開發(fā)工具本系統(tǒng)采用VS+SQLserver 2000。VS是window平臺(tái)下軟件開發(fā)的利器,幾乎可開發(fā)各種應(yīng)用程序,VS2005是微軟在VS6之后的又一版本,增加了.net框架和c#和更多集成功能,當(dāng)然我們將用到的只是VS2005。SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它最初是由Microsoft Sybase 和Ashton-T

35、ate三家公司共同開發(fā)的,于1988 年推出了第一個(gè)OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發(fā)上就分道揚(yáng)鑣了。Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開發(fā)推廣SQL Server 的Windows NT 版本。Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應(yīng)用。SQL Server 2000,是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫管理系統(tǒng)的新版本。該版本繼承了SQL Server 7.0 版本的優(yōu)點(diǎn),同時(shí)又比它增加了許多更先進(jìn)的功能,具有

36、使用方便、可伸縮性好、與相關(guān)軟件集成程度高等優(yōu)點(diǎn)??煽缭綇倪\(yùn)行Microsoft Windows 98 的膝上型電腦,到運(yùn)行Microsoft Windows 2000 的大型多處理器的服務(wù)器等多種平臺(tái)使用。4 系統(tǒng)設(shè)計(jì)方案4.1系統(tǒng)的體系結(jié)構(gòu)4.1.1常見的體系結(jié)構(gòu)(1)終端主機(jī)體系結(jié)構(gòu)這是一種早期處理數(shù)據(jù)采用的模式,這種結(jié)構(gòu)使得終端用戶盡可能地共享資源,終端所需做的是輸入命令,顯示結(jié)果。有關(guān)的一切數(shù)據(jù)處理都交給了主機(jī)去完成,這要求主機(jī)具有十分高的性能,并且隨著信息量的增加而不斷更新。這種模式中,服務(wù)器存儲(chǔ)所有數(shù)據(jù)。進(jìn)行所有運(yùn)算,優(yōu)點(diǎn)是資源得到充分的共享,缺點(diǎn)是用戶界面單一,主機(jī)負(fù)載過大。(

37、2)客戶機(jī)服務(wù)器(C/S)體系結(jié)構(gòu)這種結(jié)構(gòu)的出現(xiàn)最初是為了緩解前種模式中主機(jī)繁重的工作負(fù)擔(dān),將原來功能很強(qiáng)大的主機(jī)退化成數(shù)據(jù)庫服務(wù)器,同時(shí)轉(zhuǎn)移原來主機(jī)的一部分工作到客戶機(jī)上,顯然這就增加了客戶機(jī)的要求。為了運(yùn)用C/S這樣的模式,就需要為客戶端和服務(wù)器端分別安裝相應(yīng)的運(yùn)用程序,即所謂的兩層結(jié)構(gòu)。為了適應(yīng)一些大型的結(jié)構(gòu)復(fù)雜的系統(tǒng)應(yīng)用,出現(xiàn)了三層結(jié)構(gòu)的C/S結(jié)構(gòu)模式,它把兩層結(jié)構(gòu)中服務(wù)器部分和客戶端部分的應(yīng)用單獨(dú)劃出來,從而滿足大型應(yīng)用系統(tǒng)的要求。此模式中,客戶端應(yīng)用程序常以圖形用戶界面(GUI)表現(xiàn),易于生成和修改,界面友好,應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器位于不同的主機(jī)上,可擴(kuò)充性好,能夠適應(yīng)客戶機(jī)數(shù)目

38、的增加和應(yīng)用處理負(fù)荷的變動(dòng),缺點(diǎn)在于每臺(tái)機(jī)上需要安裝客戶端,但這樣一種模式同樣可滿足移植性,即在任何小型網(wǎng)絡(luò)中都可進(jìn)行無紙化考試,服務(wù)器客戶端隨時(shí)可以重新建立。(3)瀏覽器/服務(wù)器(B/S)體系結(jié)構(gòu)在此種模式中,客戶端的標(biāo)準(zhǔn)配置是瀏覽器,如IE、Netscape等;Web服務(wù)器成為應(yīng)用處理的標(biāo)準(zhǔn)配置,數(shù)據(jù)處理仍然由數(shù)據(jù)庫服務(wù)器(DB Serve)完成。即為三層分布結(jié)構(gòu),有利于共享,但對(duì)網(wǎng)絡(luò)依賴性強(qiáng)。充分利用現(xiàn)有的瀏覽器軟件,無需開發(fā)數(shù)據(jù)庫前端。通過Web瀏覽器訪問數(shù)據(jù)庫,不需要開發(fā)客戶端程序,所有應(yīng)用都是通過瀏覽器來實(shí)現(xiàn)的。界面統(tǒng)一,易用,不用培訓(xùn)。所有的Web服務(wù)器與瀏覽器都遵循同樣的標(biāo)準(zhǔn),

39、基于瀏覽器共享成為可能。用B/S方式時(shí),集中開發(fā)人員在服務(wù)器端進(jìn)行開發(fā)、調(diào)試、維護(hù),開發(fā)人員只需要面對(duì)服務(wù)器端的應(yīng)用程序,無需開發(fā)客戶端程序,減少了工作量。又因?yàn)榭蛻襞c服務(wù)器兩部分功能劃分比較清楚,簡(jiǎn)化了程序設(shè)計(jì)的邏輯。服務(wù)器上所有的應(yīng)用程序均可通過web瀏覽器在客戶機(jī)上執(zhí)行,可以充分發(fā)揮開發(fā)人員的群體優(yōu)勢(shì),應(yīng)用軟件的維護(hù)也相對(duì)簡(jiǎn)單。最大優(yōu)點(diǎn)是跨平臺(tái)支持,幾乎在各種操作系統(tǒng)上都有Web瀏覽器可供使用。為一個(gè)Web服務(wù)器書寫的HTML文檔,可以被所有平臺(tái)上的瀏覽器打開,實(shí)現(xiàn)了應(yīng)用軟件的跨平臺(tái)操作,而且不需修改任何程序,缺點(diǎn)在于完全依賴網(wǎng)絡(luò),沒有網(wǎng)絡(luò)就無法工作,無法對(duì)考試時(shí)行實(shí)時(shí)監(jiān)控,可控性差,使

40、用也很顯然容易造成試題泄漏,對(duì)重要考試顯然是不可取的。4.1.2本系統(tǒng)采用的體系結(jié)構(gòu)根據(jù)以上分析,本系統(tǒng)采用C/S結(jié)構(gòu)模式,目標(biāo)是實(shí)現(xiàn)一個(gè)輕量級(jí)的系統(tǒng),大部分功能將在服務(wù)器端實(shí)現(xiàn),客戶端惟一的功能是接收試卷,答題,交卷,其它一切工作由服務(wù)器完成地簡(jiǎn)化了用戶端的工作。服務(wù)器由應(yīng)用程序服務(wù)器和數(shù)據(jù)庫服務(wù)器組成,應(yīng)用程序服務(wù)器與數(shù)據(jù)庫進(jìn)行交互。本系統(tǒng)的體系結(jié)構(gòu)見圖1??荚囅到y(tǒng)服務(wù)器數(shù)據(jù)庫服務(wù)器客戶端1客戶端2客戶端3客戶端4圖1系統(tǒng)體系結(jié)構(gòu)圖客戶只與服務(wù)器進(jìn)行網(wǎng)絡(luò)通信,而服務(wù)既與客戶端通信又與數(shù)據(jù)庫進(jìn)行訪問。4.2功能模塊設(shè)計(jì)按照需求分析和功能要求,把整個(gè)系統(tǒng)分為六個(gè)子系統(tǒng):題庫管理,試卷生成,在線

41、考試,成績(jī)查詢,用戶管理,閱卷。4.2.1題庫管理功能該子系統(tǒng)是對(duì)試題庫資源進(jìn)行維護(hù)、管理和修改的應(yīng)用平臺(tái),它主要包括:(1)以列表的形式簡(jiǎn)要地顯示所有試卷信息;(2)修改試卷,包括對(duì)每個(gè)題目?jī)?nèi)容答案和分值等的修改;(3)使用他人創(chuàng)建的試卷。4.2.2試卷生成功能該子系統(tǒng)實(shí)現(xiàn)對(duì)考試相關(guān)新聞信息的總體管理,主要包括:(1)選擇題型和題目數(shù)及初步確定分值 ;(2)具體設(shè)置每個(gè)題的分值,題目,答案;(3)設(shè)置試卷類型和密碼及考試時(shí)間,保存。4.2.3在線考試功能該子系統(tǒng)實(shí)現(xiàn)考生的網(wǎng)上考試過程,主要包括:(1)考生登錄:該子系統(tǒng)接受考生輸入的個(gè)人身份信息,進(jìn)行驗(yàn)證,允許合法考生進(jìn)入考試系統(tǒng),進(jìn)行考試;

42、(2)計(jì)時(shí)答卷:服務(wù)器發(fā)送開始指令后,客戶端系統(tǒng)計(jì)時(shí)開始,考生進(jìn)行答卷;(3)試卷提交:包括考生在規(guī)定時(shí)間內(nèi)主動(dòng)提交試卷和考試時(shí)間己到,系統(tǒng)強(qiáng)迫提交試卷。4.2.4成績(jī)查詢功能該子系統(tǒng)實(shí)現(xiàn)考生的管理工作,主要包括:(1)以學(xué)號(hào)查詢考生成績(jī) ;(2)以班級(jí)為單位查詢成績(jī),可打印成績(jī) 。4.2.5用戶管理功能該子系統(tǒng)實(shí)現(xiàn)用戶的總體管理,主要包括:(1)教師信息管理:教師的增加,刪除,修改。(2)考生信息管理:考生的信息增加,刪除,修改。4.2.6閱卷功能(1)選擇答卷,自動(dòng)批改客觀題。(2)由老師修改主觀題,最后統(tǒng)計(jì)算總分,存入數(shù)據(jù)庫。4.3權(quán)限設(shè)計(jì)在本系統(tǒng)中,有三種用戶存在,管理員、教師和考生,

43、三種用戶擁有不同的權(quán)限,權(quán)利分開,互不干涉。4.3.1教師權(quán)限 教師權(quán)限試題管理生成試卷閱卷及通知成績(jī) 圖2教師權(quán)限圖4.3.2管理員權(quán)限管理員權(quán)限教師權(quán)限設(shè)置考生信息設(shè)置系統(tǒng)的安全維護(hù)圖3管理員權(quán)限圖4.4系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)對(duì)于整個(gè)系統(tǒng)的優(yōu)化實(shí)現(xiàn)是十分重要的,尤其對(duì)于網(wǎng)絡(luò)考試系統(tǒng),在出題、提交時(shí)都必須考慮系統(tǒng)的響應(yīng)時(shí)間,以最快的速度同數(shù)據(jù)庫鏈接,并讀取符合條件的記錄反饋到用戶的相關(guān)界面中。本系統(tǒng)采用Microsoft SQL Server2000數(shù)據(jù)庫。SQL Serwr2000關(guān)系數(shù)據(jù)庫引擎支持當(dāng)今苛刻的數(shù)據(jù)處理環(huán)境所需的功能。數(shù)據(jù)庫引擎充分保護(hù)數(shù)據(jù)完整性,同時(shí)將管理上千個(gè)并發(fā)

44、使用修改數(shù)據(jù)庫的用戶的開銷減到最小。SQLServer2000分布式查詢使您得以引用來自不同數(shù)據(jù)源的數(shù)據(jù),就好像這些數(shù)據(jù)是SQL Server2000數(shù)據(jù)庫的一部分,同時(shí)分布式事務(wù)支持充分保護(hù)任何分布式數(shù)據(jù)更新的完整性。復(fù)制同樣使得可以維護(hù)多個(gè)數(shù)據(jù)復(fù)本,同時(shí)確保單獨(dú)的數(shù)據(jù)復(fù)本保持同步??蓪⒁唤M數(shù)據(jù)復(fù)制到多個(gè)移動(dòng)的脫接用戶,使這些用戶自主地工作,然后將他們所做的修改合并回發(fā)給服務(wù)器。Microsoft SQL Server2000能提供超大型系統(tǒng)所需的數(shù)據(jù)庫服務(wù)。大型服務(wù)器可能有成千上萬的用戶同時(shí)連接到SQLServer2000實(shí)例。SQLServer2000為這些環(huán)境提供了全面的保護(hù),具有防止

45、問題發(fā)生的安全措施,例如,可以防止多個(gè)用戶試圖同時(shí)更新相同的數(shù)據(jù)。SQLServer2000還在多個(gè)用戶之間有效地分配可用資源,比如內(nèi)存、網(wǎng)絡(luò)帶寬和磁盤I/O。超大型Internet站點(diǎn)可將其數(shù)據(jù)分開存放在多臺(tái)服務(wù)器上,從而使處理負(fù)荷分散到多臺(tái)計(jì)算機(jī)上,使站點(diǎn)能為成千上萬的并發(fā)用戶提供服務(wù)??梢栽谝慌_(tái)計(jì)算機(jī)上運(yùn)行多個(gè)SQL Server2000實(shí)例。例如。一個(gè)為其它許多組織提供數(shù)據(jù)庫服務(wù)的組織可為每個(gè)客戶組織單獨(dú)運(yùn)行一個(gè)SQL Server2000實(shí)例,而全部實(shí)例可集中在一臺(tái)計(jì)算機(jī)上。這樣,既隔開了每個(gè)客戶組織的數(shù)據(jù),同時(shí)又使服務(wù)組織只需管理一臺(tái)服務(wù)器計(jì)算機(jī)從而減少了費(fèi)用。4.4.1數(shù)據(jù)庫概念

46、結(jié)構(gòu)設(shè)計(jì)根據(jù)對(duì)數(shù)據(jù)的分析,可以設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。根據(jù)系統(tǒng)功能,所需要的實(shí)體主要有:教師、考試題目、學(xué)生。各實(shí)體之間最主要的ER關(guān)系如圖4所示。 用戶名密碼操作員圖4 (a)學(xué)生信息表姓名年齡性別學(xué)號(hào)班級(jí)編號(hào)專業(yè)編號(hào)學(xué)院編號(hào) 圖4(b) 試卷信息表創(chuàng)建日期試卷編號(hào)使用次數(shù)命題人科目成績(jī)信息表選擇題分試卷編號(hào)填空題分?jǐn)?shù)判斷題分?jǐn)?shù)學(xué)號(hào)創(chuàng)建日期圖4(c) 圖4(d)4.4.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)是將數(shù)據(jù)的概念結(jié)構(gòu)轉(zhuǎn)化為SQL Server2000數(shù)據(jù)庫系統(tǒng)的實(shí)際模型,得到數(shù)據(jù)庫的邏輯結(jié)構(gòu)后,就可以在SQLServer2

47、000數(shù)據(jù)庫系統(tǒng)中建立表結(jié)構(gòu)。根據(jù)系統(tǒng)功能設(shè)計(jì)的要求以及功能模塊的劃分,對(duì)于在線考試系統(tǒng)的數(shù)據(jù)庫,4.4.3使用ODBC訪問數(shù)據(jù)庫前的準(zhǔn)備注冊(cè)數(shù)據(jù)源,使用控制面板管理工具數(shù)據(jù)源ODBC,利用向?qū)韯?chuàng)建。5 系統(tǒng)主要模塊的設(shè)計(jì)與實(shí)現(xiàn)5.1系統(tǒng)總體結(jié)構(gòu)及服務(wù)器端和客戶端說明5.1.1考試系統(tǒng)的組成考試系統(tǒng)總體結(jié)構(gòu)圖如圖5所示??荚囅到y(tǒng)服務(wù)器客戶端考卷管理試卷向?qū)в脩艄芾砜荚囅到y(tǒng)閱卷系統(tǒng)答卷系統(tǒng)5.1.2服務(wù)器端說明(1)登錄系統(tǒng)初始化顯示登錄對(duì)話框點(diǎn)擊登錄,查詢數(shù)據(jù)庫進(jìn)行密碼匹配,若成功根據(jù)權(quán)限顯示主界面,失敗則顯示還有兩次重試機(jī)會(huì)。 (2)出題系統(tǒng)登錄系統(tǒng)選擇新建試卷,運(yùn)行試卷制作向?qū)?,按要求?/p>

48、充必要內(nèi)容保存試卷。 (3)在線考試登錄系統(tǒng)選擇開始考試,等客戶端的連接所有考生從客戶端登錄服務(wù)器端發(fā)送試卷確認(rèn)所有學(xué)生收到試卷點(diǎn)擊開始,所有客戶端開始記時(shí)考試結(jié)束,客戶端自動(dòng)交卷 (4)成績(jī)查詢登錄系統(tǒng)選擇成績(jī)查詢選擇查詢方式輸入關(guān)鍵顯示查詢結(jié)果(5)用戶管理root登錄系統(tǒng)選擇用戶管理當(dāng)需要增加用戶時(shí)輸入注冊(cè)所需的信息,點(diǎn)擊注冊(cè)當(dāng)需要注銷用戶時(shí),輸入必須信息,點(diǎn)擊注冊(cè)(6)閱卷系統(tǒng)登錄系統(tǒng)系統(tǒng)初始化,讀取需要批改的答卷顯示在列表中選擇要批改的答卷,自動(dòng)對(duì)客觀題評(píng)分,輔助進(jìn)行主觀題評(píng)分閱卷完畢,將數(shù)據(jù)信息存入數(shù)據(jù)庫 客戶端說明學(xué)生以合法身份從客戶端登陸,連接服務(wù)器后等待老師在客戶端發(fā)放試卷,

49、然后進(jìn)行答題。5.2題庫管理的實(shí)現(xiàn)5.2.1功能描述題庫管理的主要功能,列出當(dāng)前所有試卷,供老師選擇使用,程序內(nèi)部由一個(gè)鏈表來維護(hù),這樣的方便之處在于當(dāng)用戶使用他的建立的試卷時(shí),只要輸入密碼就能使用,此時(shí),將很方便地將試卷信息添加到鏈表中隨時(shí)可進(jìn)行讀寫操作。5.2.2程序流程圖程序流程圖如6所示圖6 題庫管理流程圖初始化:在數(shù)據(jù)庫中搜索所有試卷及由當(dāng)前用戶命題的試卷,存儲(chǔ)為鏈表。5.3試卷生成功能的實(shí)現(xiàn)5.3.1功能描述試卷生成功能最主要的部分是一個(gè)向?qū)?,這部分完全可以作為一個(gè)獨(dú)立的部分開發(fā),本系統(tǒng)的向?qū)Х譃槿剑?1)詢問題型和題量及分值。(2)具體的題目?jī)?nèi)容,可修改默認(rèn)的分值。(3)設(shè)置試

50、卷屬性如分值,時(shí)間和密碼等。5.3.2試卷生成程序流程圖流程圖如圖7所示:圖7 試卷生成流程圖題型及數(shù)目確定了,程序內(nèi)部的指針指向的空間大小也就確定了,題目填充后的數(shù)據(jù)將被指針?biāo)赶虻膬?nèi)存中,在保存點(diǎn)擊后,所有數(shù)據(jù)存入文件。部分程序說明public class Server implements Runnable private Connection con = null;private Statement sql = null;private ResultSet rs = null;private ServerSocket ss = null;boolean started = false;

51、public void run() try con = DriverManager.getConnection(jdbc:odbc:PES DataBase,);sql = con.createStatement();ss = new ServerSocket(8866);started = true; catch (BindException e) System.out.println(已有一個(gè)服務(wù)端運(yùn)行并占用了端口,服務(wù)端關(guān)閉!);System.exit(0); catch (IOException e) e.printStackTrace(); catch (SQLException e

52、) e.printStackTrace(); try while(started) Socket s = ss.accept();Client c = new Client(s);System.out.println(一個(gè)客戶端連入!);new Thread(c).start(); catch (IOException e) e.printStackTrace(); finally try if(ss != null)ss.close(); catch (IOException e) e.printStackTrace();class Client implements Runnable pr

53、ivate Object obj;private String examID;private String name;private String type;private ExamQuestion examQuestions;private ExamInformation examInformation;private Socket s = null;private ObjectInputStream ois = null;private ObjectOutputStream oos = null;private boolean bConnect = false;Client(Socket

54、s) this.s = s;public void run() try ois = new ObjectInputStream(s.getInputStream();oos = new ObjectOutputStream(s.getOutputStream();bConnect = true; catch (IOException e) e.printStackTrace();try while(bConnect) obj = ois.readObject();String str = obj.toString();System.out.println(str);if(!str.equals

55、(ExamInformation) examID = str;rs = sql.executeQuery(select * from driverInfo where examID = +examID + );rs.last();if(rs.getRow() = 0) oos.writeObject(error);else name = rs.getString(2);type = 貨物運(yùn)輸;rs = sql.executeQuery(select top 50 * from examQuestions where type = 貨物運(yùn)輸 order by newid();for(int i=

56、0; i50; i+) rs.next();examQuestionsi = new ExamQuestion();examQuestionsi.setQuestion(rs.getString(1);examQuestionsi.setAnswerA(rs.getString(2);examQuestionsi.setAnswerB(rs.getString(3);examQuestionsi.setAnswerC(rs.getString(4);examQuestionsi.setNumber(i+1 + );examQuestionsi.setRightAnswer(rs.getStri

57、ng(5);examInformation = new ExamInformation(examID, name, type, examQuestions);oos.writeObject(examInformation); catch (EOFException e) System.out.println(客戶端斷開!); catch (Exception e) e.printStackTrace(); finally try if(ois != null) ois.close();if(oos != null)oos.close();if(s != null) s.close();s =

58、null; catch (IOException e) e.printStackTrace();5.4在線考試的實(shí)現(xiàn)5.4.1考生登錄模塊考生登錄比較簡(jiǎn)單,運(yùn)行后首先與服務(wù)器端建立連接,登錄成功后輸入用戶名密碼,程序?qū)⒋藬?shù)據(jù)發(fā)送至服務(wù)器端,服務(wù)器端到數(shù)據(jù)庫中驗(yàn)證,正確則返回正確口令,否則返回錯(cuò)誤口令,則當(dāng)前客戶端成未準(zhǔn)備狀態(tài)。public class ExamLoginDialog extends JFrame private static final long serialVersionUID = 1L;private ExamLoginDialog thisDialog = this;pr

59、ivate JPanel contentPane;private JTextField loginID;public Socket s = null;public ObjectOutputStream oos = null;public ObjectInputStream ois = null;public static void main(String args) EventQueue.invokeLater(new Runnable() public void run() try ExamLoginDialog frame = new ExamLoginDialog();frame.set

60、Visible(true); catch (Exception e) e.printStackTrace(););public ExamLoginDialog() setIconImage(Toolkit.getDefaultToolkit().getImage(ExamLoginDialog.class.getResource(/com/doufuguolyl/img/icon.jpg);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 394, 184);contentPane = new JPanel()

溫馨提示

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

評(píng)論

0/150

提交評(píng)論