基于.net的自動(dòng)閱卷考試系統(tǒng)畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩101頁(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)介

1、<p>  基于.NET的自動(dòng)閱卷考試系統(tǒng)</p><p><b>  【摘要】</b></p><p>  隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,教學(xué)方式發(fā)生了很大的變化。傳統(tǒng)的教學(xué)考試方式已漸漸無(wú)法適應(yīng)社會(huì)的發(fā)展,它要求有新的考試方式來(lái)適應(yīng)新的教學(xué)方式。網(wǎng)絡(luò)化考試系統(tǒng)在很多領(lǐng)域都已經(jīng)有所應(yīng)用,但在計(jì)算機(jī)類考試中較為鮮見(jiàn),特別是帶閱卷功能的考試系統(tǒng)。本系統(tǒng)利用.NET技術(shù),

2、采用C#語(yǔ)言來(lái)實(shí)現(xiàn)應(yīng)用程序的設(shè)計(jì)和功能的實(shí)現(xiàn),數(shù)據(jù)庫(kù)則采用SQL SERVER 2000來(lái)設(shè)計(jì)。這是一個(gè)基于B/S(瀏覽器/服務(wù)器模式)架構(gòu)的系統(tǒng)。本文介紹了自動(dòng)閱卷考試系統(tǒng)的社會(huì)需求、發(fā)展前景和系統(tǒng)的主要功能,對(duì)各個(gè)功能模塊進(jìn)行了詳細(xì)的介紹。</p><p>  關(guān)鍵詞:B/S(瀏覽器/服務(wù)器模式),反射,.NET,自動(dòng)閱卷</p><p>  Automatic Scoring Exa

3、mination System</p><p>  Based On .NET</p><p>  【Abstract】</p><p>  With the development of network technology, teaching methods have taken great changes. Examination of the traditi

4、onal teaching methods are gradually unable to adapt to the development of society, it requires a new examination of ways to adapt to the new teaching methods.Network examination system have been used in many areas, but i

5、n the computer examination is uncommon, especially with automatic scoring function of the examination system. This system used. NET Technology and C # language to achi</p><p>  Keywords: B/S (browser/server

6、model), reflection,.NET, automatic scoring目 錄</p><p><b>  1.背景介紹1</b></p><p>  1.1.網(wǎng)絡(luò)考試的背景介紹1</p><p>  1.1.1.網(wǎng)絡(luò)考試系統(tǒng)的社會(huì)需求1</p><p>  1.1.2.目前已有的考試系統(tǒng)的

7、優(yōu)、缺點(diǎn)1</p><p>  1.2.選擇考試系統(tǒng)的原因2</p><p>  1.3.設(shè)計(jì)目標(biāo)2</p><p>  2.基于.NET的自動(dòng)閱卷考試系統(tǒng)概述3</p><p>  2.1.用戶需求簡(jiǎn)介3</p><p>  2.1.1.功能需求3</p><p>  2

8、.1.2.性能需求3</p><p>  2.1.3.可靠性和可用性需求3</p><p>  2.2.工作過(guò)程3</p><p>  2.3.系統(tǒng)特點(diǎn)3</p><p>  3.設(shè)計(jì)中要解決的問(wèn)題5</p><p>  3.1.用戶權(quán)限5</p><p>  3.2.

9、考卷的設(shè)置5</p><p>  3.3.自動(dòng)閱卷的實(shí)現(xiàn)5</p><p>  3.4.考試時(shí)間控制問(wèn)題5</p><p><b>  4.總體設(shè)計(jì)6</b></p><p>  4.1.系統(tǒng)設(shè)計(jì)6</p><p>  4.1.1.設(shè)計(jì)目標(biāo)6</p><p

10、>  4.1.2.開(kāi)發(fā)環(huán)境6</p><p>  4.1.3.開(kāi)發(fā)語(yǔ)言6</p><p>  4.1.4.開(kāi)發(fā)工具6</p><p>  4.1.5.后臺(tái)數(shù)據(jù)庫(kù)6</p><p>  4.1.6.運(yùn)行環(huán)境6</p><p>  4.2.數(shù)據(jù)庫(kù)需求設(shè)計(jì)6</p><p&g

11、t;  4.2.1.系統(tǒng)流程圖6</p><p>  4.2.2.系統(tǒng)E-R圖8</p><p>  4.2.3.數(shù)據(jù)庫(kù)中的表8</p><p>  4.2.4.數(shù)據(jù)庫(kù)中的視圖12</p><p>  4.3.系統(tǒng)總體構(gòu)架設(shè)計(jì)14</p><p>  4.3.1.系統(tǒng)層次結(jié)構(gòu)圖14</p&

12、gt;<p>  4.3.2.系統(tǒng)流程圖14</p><p>  5.系統(tǒng)主要功能模塊設(shè)計(jì)18</p><p>  5.1.登陸模塊18</p><p>  5.2.注冊(cè)模塊18</p><p>  5.3.學(xué)生模塊18</p><p>  5.4.教師模塊18</p>

13、<p>  5.5.重點(diǎn)、難點(diǎn)代碼設(shè)計(jì)19</p><p>  5.5.1.時(shí)間控制的實(shí)現(xiàn)19</p><p>  5.5.2.自動(dòng)閱卷的實(shí)現(xiàn)21</p><p>  5.6.實(shí)現(xiàn)界面30</p><p>  6.系統(tǒng)實(shí)現(xiàn)技術(shù)36</p><p>  6.1.B/S模式36<

14、/p><p>  6.2.反射36</p><p>  6.3.SqlHelper38</p><p>  7.性能測(cè)試與分析40</p><p>  7.1.測(cè)試目的和原則40</p><p>  7.1.1.測(cè)試的目的40</p><p>  7.1.2.測(cè)試的原則40&

15、lt;/p><p>  7.2.測(cè)試環(huán)境與測(cè)試條件40</p><p>  7.2.1.測(cè)試環(huán)境40</p><p>  7.2.2.測(cè)試條件40</p><p>  7.3.測(cè)試實(shí)例的研究與選擇40</p><p>  7.4.實(shí)例測(cè)試結(jié)果41</p><p>  7.5.性

16、能分析42</p><p><b>  結(jié)束語(yǔ)43</b></p><p>  謝辭錯(cuò)誤!未定義書簽。</p><p><b>  參考文獻(xiàn)43</b></p><p>  基于.NET的自動(dòng)閱卷考試系統(tǒng)</p><p>  隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,教學(xué)方式發(fā)生了很大的變

17、化。傳統(tǒng)的教學(xué)考試方式已漸漸無(wú)法適應(yīng)社會(huì)的發(fā)展,它要求有新的考試方式來(lái)適應(yīng)新的教學(xué)方式。網(wǎng)絡(luò)化考試系統(tǒng)在很多領(lǐng)域都已經(jīng)有所應(yīng)用,但在計(jì)算機(jī)類考試中較為鮮見(jiàn),特別是帶閱卷功能的考試系統(tǒng)。</p><p>  研究這個(gè)系統(tǒng),重點(diǎn)在于考卷的自動(dòng)生成和批閱,特別是對(duì)于主觀填空題和編程題。充分利用在大學(xué)所學(xué)的知識(shí)和現(xiàn)有的網(wǎng)絡(luò)科技技術(shù)進(jìn)行研究,加深、鞏固已學(xué)知識(shí),接觸、學(xué)習(xí)新的知識(shí),提高技能,希望能通過(guò)研究增強(qiáng)實(shí)踐經(jīng)驗(yàn),減輕

18、老師的負(fù)擔(dān),節(jié)約資源,同時(shí) 對(duì)自己進(jìn)行考核,為步入社會(huì)做準(zhǔn)備。</p><p><b>  背景介紹</b></p><p><b>  網(wǎng)絡(luò)考試的背景介紹</b></p><p>  隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的突飛猛進(jìn)及教育網(wǎng)絡(luò)化的不斷推進(jìn),傳統(tǒng)的考試模式表現(xiàn)出一些弊端,比如繁雜的試卷收發(fā)、投入相當(dāng)人力的閱卷等。在相當(dāng)程度上,

19、這些工作可以完全或部分交由計(jì)算機(jī)完成。在線考試系統(tǒng)指利用計(jì)算機(jī),通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)學(xué)生的考核。與傳統(tǒng)的考試模式相比,它極大限度排除了人為因素的作用,保證了考試的客觀、公正;通??忌诳荚囍?即可得到考試成績(jī);而且通過(guò)計(jì)算機(jī)閱卷,通過(guò)事先設(shè)計(jì)好的答案,使得閱卷具有高效性、可靠性、公平性。尤其在應(yīng)用考試系統(tǒng)對(duì)計(jì)算機(jī)有關(guān)知識(shí)的考核中,除了理論知識(shí)之外,還可以考查考生的實(shí)際動(dòng)手操作能力。網(wǎng)絡(luò)考試系統(tǒng)是一個(gè)基于數(shù)據(jù)庫(kù)和計(jì)算機(jī)網(wǎng)絡(luò)的在線實(shí)時(shí)測(cè)試

20、系統(tǒng),包括考生管理系統(tǒng)、考試系統(tǒng)、題庫(kù)系統(tǒng)、閱卷系統(tǒng)、考試管理系統(tǒng)等。該系統(tǒng)可以在被允許的任何地點(diǎn)、時(shí)間進(jìn)行在線實(shí)時(shí)考試。具有信息量大、效率高、管理方便、考試客觀公正等優(yōu)點(diǎn),教學(xué)人員可以很容易地從考試結(jié)果中獲得教學(xué)反饋信息。</p><p>  網(wǎng)絡(luò)考試系統(tǒng)的社會(huì)需求</p><p>  考試是教學(xué)效果測(cè)量的重要手段。傳統(tǒng)的考試方式是以紙為媒介的,它要求教師印試卷、安排考試、監(jiān)考, 收集試

21、卷, 評(píng)改試卷, 這是一個(gè)漫長(zhǎng)而復(fù)雜的過(guò)程, 越來(lái)越不適應(yīng)現(xiàn)代化教學(xué)的需要.近年來(lái),隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的不斷進(jìn)步和飛速發(fā)展,依托計(jì)算機(jī)技術(shù)的在線考試方式或網(wǎng)上考試方式的研究一直在進(jìn)行之中,目前在線考試方式在駕照考試和英語(yǔ)考試等領(lǐng)域已付諸實(shí)施,而對(duì)于計(jì)算機(jī)類考試的系統(tǒng)則比較少見(jiàn),特別是帶有自動(dòng)改卷功能的考試系統(tǒng)。隨著計(jì)算機(jī)科學(xué)技術(shù)和網(wǎng)絡(luò)的發(fā)展,傳統(tǒng)等教學(xué)方式很難適應(yīng)需求,它要求一種新的教學(xué)方式,而網(wǎng)絡(luò)化教育方式順勢(shì)而生。基于.NET

22、的網(wǎng)上考試系統(tǒng)正是實(shí)施網(wǎng)絡(luò)化教育的一個(gè)重要組成部分, 它可以利用網(wǎng)絡(luò)的無(wú)限空間, 隨時(shí)隨地對(duì)學(xué)生進(jìn)行考試, 利用數(shù)據(jù)庫(kù)使考試過(guò)程得到簡(jiǎn)化.考試過(guò)程中試卷的生成和批改都由計(jì)算機(jī)完成, 其目標(biāo)是實(shí)現(xiàn)考試的無(wú)紙化、標(biāo)準(zhǔn)化和學(xué)生成績(jī)管理的網(wǎng)絡(luò)化和自動(dòng)化。</p><p>  目前已有的考試系統(tǒng)的優(yōu)、缺點(diǎn)</p><p>  網(wǎng)絡(luò)考試系統(tǒng)是近年來(lái)的一個(gè)熱點(diǎn)。隨著網(wǎng)絡(luò)的發(fā)展,大家都希望可以充分利用現(xiàn)代

23、化技術(shù)減輕工作量,實(shí)現(xiàn)自動(dòng)化管理。以往的許多網(wǎng)絡(luò)考試系統(tǒng)實(shí)現(xiàn)了考試環(huán)節(jié)中的大部分工作,已經(jīng)可以很完美的投入使用,其安全性、擴(kuò)充性、準(zhǔn)確性、便捷性都得到了充分的體現(xiàn)。其中,選擇題、判斷題等客觀題的自動(dòng)閱卷、學(xué)生信息的管理、考卷的組織等功能模塊做的非常不錯(cuò)。對(duì)于主觀題如填空題、編程題、簡(jiǎn)答題,絕大多數(shù)只實(shí)現(xiàn)了考試而為實(shí)現(xiàn)批閱的功能,未實(shí)現(xiàn)全部自動(dòng)化。這使得教師在系統(tǒng)批閱完客觀題后還要手動(dòng)批閱主觀題,不能很好的節(jié)約人力、物力,使得資源無(wú)法充分

24、利用。主觀題的閱卷有人為的參與,存在主觀因素,沒(méi)辦法保證考試的公平、公正。</p><p><b>  選擇考試系統(tǒng)的原因</b></p><p>  因?yàn)橐酝目荚囅到y(tǒng)存在一定的缺陷,未完成主觀題的閱卷部分,而一個(gè)完整的含主觀題自動(dòng)閱卷的考試系統(tǒng)被迫切需求。此設(shè)計(jì)在原有考試系統(tǒng)的基礎(chǔ)上突破、創(chuàng)新,增加主觀填空題、程序題的自動(dòng)閱卷功能。應(yīng)用C#語(yǔ)言中的反射知識(shí)可以實(shí)現(xiàn)

25、簡(jiǎn)單的程序體的修改。選擇該開(kāi)發(fā)系統(tǒng),具有創(chuàng)新性、可行性、需要性,其科學(xué)性也不言而喻。</p><p><b>  設(shè)計(jì)目標(biāo)</b></p><p>  本設(shè)計(jì)的目的是設(shè)計(jì)一套完整的考試系統(tǒng),實(shí)現(xiàn)考卷的自動(dòng)生成、試卷管理、查看考生考試結(jié)果、學(xué)生考試、自動(dòng)閱卷等功能,增加主觀題中填空題和編程題的自動(dòng)閱卷功能。實(shí)現(xiàn)考試的無(wú)紙化、標(biāo)準(zhǔn)化和學(xué)生成績(jī)管理的網(wǎng)絡(luò)化和自動(dòng)化。<

26、/p><p><b>  小結(jié)</b></p><p>  由上所知,網(wǎng)絡(luò)考試系統(tǒng)是科學(xué)技術(shù)發(fā)展的必然要求,具有很大的社會(huì)需求。而現(xiàn)有的用于計(jì)算機(jī)學(xué)科的網(wǎng)絡(luò)需考試系統(tǒng)不完善,缺少主觀題自動(dòng)閱卷功能,這些證明基于.NET的自動(dòng)閱卷考試系統(tǒng)是正確的選擇。</p><p>  基于.NET的自動(dòng)閱卷考試系統(tǒng)概述</p><p>&

27、lt;b>  用戶需求簡(jiǎn)介</b></p><p>  基于.NET的自動(dòng)閱卷考試系統(tǒng)是一個(gè)面向計(jì)算機(jī)類學(xué)科的考試系統(tǒng),它與其他其他考試系統(tǒng)的區(qū)別在于它增加了主觀填空題、編成題的自動(dòng)閱卷功能。它應(yīng)用C#語(yǔ)言開(kāi)發(fā),以.NET為平臺(tái),采用B/S(瀏覽器/服務(wù)器) 模式, 用戶分為兩種:普通用戶和管理員用戶(admin)。學(xué)生屬普通用戶,教師屬管理員用戶。他們擁有的權(quán)限有所不同,學(xué)生只能進(jìn)行考試和修改

28、密碼;教師可以根據(jù)自己所教授的課程新建科目、管理題庫(kù),還可以設(shè)置試卷、查看學(xué)生的考試結(jié)果。通過(guò)對(duì)頁(yè)面的操作對(duì)數(shù)據(jù)庫(kù)進(jìn)行讀寫操作。</p><p><b>  功能需求</b></p><p>  該系統(tǒng)要求實(shí)現(xiàn)題庫(kù)管理、班級(jí)管理、學(xué)生答題、試卷組織、自動(dòng)閱卷等功能,教師能夠查看學(xué)生的考試成績(jī)及答題情況,在試卷投入使用前能想進(jìn)行測(cè)試、查看考卷的整體情況,學(xué)生能自行修改自

29、己的密碼。</p><p><b>  性能需求</b></p><p>  學(xué)生在做完程序題后,需上傳exe文件,然后連同試卷其它部分的答案一起提交,此過(guò)程必須在2分鐘內(nèi)完成。</p><p>  安全性有所保障,學(xué)生密碼由學(xué)生本人設(shè)置,以防他人冒用其帳號(hào)進(jìn)行考試。</p><p><b>  可靠性和可用性

30、需求</b></p><p>  系統(tǒng)能正常運(yùn)行,在100人以內(nèi)同時(shí)登錄時(shí)不發(fā)生錯(cuò)誤,其所有功能在運(yùn)行時(shí)不發(fā)生故障。</p><p><b>  工作過(guò)程</b></p><p>  基于.NET的自動(dòng)閱卷考試系統(tǒng)采用B/S(瀏覽器/服務(wù)器) 模式,客戶無(wú)需安裝客戶端,只要有瀏覽器就可以使用。在登陸頁(yè)面,如果已注冊(cè)的用戶,更具自己的

31、帳號(hào)、密碼就可以進(jìn)去系統(tǒng),根據(jù)用戶權(quán)限進(jìn)入不同的頁(yè)面;如果是還未注冊(cè)的用戶則比需先按注冊(cè)按鈕進(jìn)行注冊(cè)后才可以進(jìn)入系統(tǒng)。</p><p>  一般用戶(學(xué)生)登陸系統(tǒng)后,根據(jù)User.js跳轉(zhuǎn)到一般用戶主頁(yè)面,其中具有修改密碼、考試、退出三個(gè)功能,用戶可以自行對(duì)其進(jìn)行操作;管理員用戶(教師)登陸系統(tǒng)后,根據(jù)Admin.js跳轉(zhuǎn)到用戶主頁(yè)面,里面有科目管理、試卷管理、各種題目管理、答題測(cè)試、查看考試結(jié)果功能模塊,教師

32、根據(jù)需要進(jìn)行操作。學(xué)生用戶的考試功能模塊只有在教師設(shè)置了考卷后才能進(jìn)行,學(xué)生打完考卷后須自行提交,并上傳程序題的代碼和exe文件。系統(tǒng)將根據(jù)學(xué)生上傳的考卷答題進(jìn)行批閱,得出每一題的成績(jī)和總成績(jī)。</p><p><b>  系統(tǒng)特點(diǎn)</b></p><p>  基于.NET的自動(dòng)閱卷考試系統(tǒng)支持按權(quán)限對(duì)系統(tǒng)進(jìn)行操作,即不同類型的用戶擁有相異的權(quán)限:考試和管理。主要是在

33、首頁(yè)通過(guò)兩種不同的方式進(jìn)入相異的操作界面,其主要特點(diǎn)體現(xiàn)在以下兩個(gè)個(gè)方面:①自主調(diào)用數(shù)據(jù)庫(kù);②自主管理數(shù)據(jù)庫(kù)。自主調(diào)用數(shù)據(jù)庫(kù)即允許用戶能自由地從數(shù)據(jù)庫(kù)中選題、生成試卷。自主管理數(shù)據(jù)庫(kù)指一般用戶具有添加、修改數(shù)據(jù)的權(quán)力,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的可擴(kuò)充性和開(kāi)放性。而admin 用戶則另具有刪除數(shù)據(jù)的權(quán)力如對(duì)題目的刪除、試卷的刪除、科目的刪除等,從而達(dá)到了系統(tǒng)數(shù)據(jù)統(tǒng)一性和一致性的目的。</p><p><b>  小結(jié)&

34、lt;/b></p><p>  基于.NET的自動(dòng)閱卷考試系統(tǒng)它采用B/S(瀏覽器/服務(wù)器) 模式,是面向計(jì)算機(jī)學(xué)科的考試系統(tǒng)。用戶進(jìn)入界面就可進(jìn)行操作,內(nèi)部與數(shù)據(jù)庫(kù)相關(guān)的步驟對(duì)用戶透明,他是一個(gè)簡(jiǎn)單的、易操作的、實(shí)用的系統(tǒng)。</p><p><b>  設(shè)計(jì)中要解決的問(wèn)題</b></p><p><b>  用戶權(quán)限<

35、/b></p><p>  不同類型的用戶擁有不同的權(quán)限,這要求在設(shè)計(jì)時(shí)考慮不同權(quán)限用戶的操作頁(yè)面。比如學(xué)生可以答題、查看某些信息,但是不具有刪除等權(quán)限;教師、管理員在具有對(duì)題庫(kù)、試卷等的增、刪、改操作權(quán)限。</p><p><b>  考卷的設(shè)置</b></p><p>  考卷的設(shè)置是考試系統(tǒng)的一個(gè)重要部分,它包括試卷的基本信息和題型

36、設(shè)置。如何進(jìn)行組卷及題型數(shù)目的控制成了試卷設(shè)置的一大難點(diǎn)。此外,對(duì)于設(shè)置那份考卷用于考試也是一個(gè)值得考慮的問(wèn)題。</p><p><b>  自動(dòng)閱卷的實(shí)現(xiàn)</b></p><p>  自動(dòng)閱卷十本系統(tǒng)的重中之重??陀^題的自動(dòng)閱卷比較容易實(shí)現(xiàn),運(yùn)用匹配的方法就可以完成。主觀題中,對(duì)于填空題,則運(yùn)用匹配的方式來(lái)進(jìn)行判斷正確與否;程序題則運(yùn)用C#中反射的技術(shù)來(lái)實(shí)現(xiàn)。<

37、;/p><p><b>  考試時(shí)間控制問(wèn)題</b></p><p>  時(shí)間控制是學(xué)生考試系統(tǒng)一個(gè)很重要的組成部分。一直以來(lái)的考試都有規(guī)定在一定的時(shí)間內(nèi)完成,否則考試就失去了它本身的意義。所以,在設(shè)計(jì)系統(tǒng)時(shí)需好好考慮時(shí)間控制的問(wèn)題。</p><p><b>  總體設(shè)計(jì)</b></p><p><

38、;b>  系統(tǒng)設(shè)計(jì)</b></p><p><b>  設(shè)計(jì)目標(biāo)</b></p><p>  設(shè)計(jì)一套完整的考試系統(tǒng),實(shí)現(xiàn)考卷的自動(dòng)生成、試卷管理、查看考生考試結(jié)果、學(xué)生考試、自動(dòng)閱卷等功能,增加主觀題中填空題和編程題的自動(dòng)閱卷功能。</p><p><b>  開(kāi)發(fā)環(huán)境</b></p>&

39、lt;p><b>  硬件環(huán)境:PC機(jī)</b></p><p>  軟件環(huán)境:Windows XP、Microsoft Visual Studio 2005、SQL Server 2000、IIS</p><p><b>  開(kāi)發(fā)語(yǔ)言</b></p><p>  開(kāi)發(fā)語(yǔ)言使用Visual C# </p>

40、<p><b>  開(kāi)發(fā)工具</b></p><p>  Microsoft Visual Studio 2005、SQL Server 2000</p><p><b>  后臺(tái)數(shù)據(jù)庫(kù)</b></p><p>  后臺(tái)數(shù)據(jù)庫(kù)使用SQL Server 2000 ,其可管理和處理大批量的考試數(shù)據(jù),并具有較高的可靠

41、性。</p><p><b>  運(yùn)行環(huán)境</b></p><p><b>  硬件環(huán)境:PC機(jī)</b></p><p>  軟件環(huán)境:Windows XP、www、Internet Explorer</p><p><b>  數(shù)據(jù)庫(kù)需求設(shè)計(jì)</b></p>&

42、lt;p>  數(shù)據(jù)庫(kù)是系統(tǒng)的重要組成部分,是系統(tǒng)的核心和基礎(chǔ)。它把系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來(lái)、提供存儲(chǔ)、維護(hù)、檢索數(shù)據(jù)的功能,使系統(tǒng)可以方便、及時(shí)、準(zhǔn)確地從數(shù)據(jù)庫(kù)中獲取所需的信息。</p><p>  SQL Server 2000是一個(gè)常用的數(shù)據(jù)庫(kù)開(kāi)發(fā)軟件,SQL語(yǔ)言本身是一個(gè)綜合的、功能極強(qiáng)同時(shí)又簡(jiǎn)捷易學(xué)的語(yǔ)言,用它開(kāi)發(fā)的軟件數(shù)據(jù)結(jié)構(gòu)化、獨(dú)立性高、共享性高、冗余度低、易擴(kuò)充。在本設(shè)計(jì)中,應(yīng)用了

43、數(shù)據(jù)庫(kù)中的基本表和視圖,應(yīng)用程序?qū)@些基本表和視圖進(jìn)行操作。</p><p><b>  系統(tǒng)流程圖</b></p><p><b>  0層圖</b></p><p><b>  1層圖</b></p><p><b>  教師模塊流程圖:</b><

44、;/p><p>  學(xué)生答題模塊流程圖:</p><p><b>  系統(tǒng)E-R圖</b></p><p><b>  數(shù)據(jù)庫(kù)中的表</b></p><p>  基本表是本身獨(dú)立存在的表,在SQL中一個(gè)關(guān)系就對(duì)應(yīng)一個(gè)基本表。一個(gè)或多個(gè)基本表對(duì)應(yīng)一個(gè)存儲(chǔ)文件。用戶建立一個(gè)基本表后,可以對(duì)它進(jìn)行增加、修改、

45、查詢、刪除等操作。本設(shè)計(jì)中涉及到以下基本表,建立于數(shù)據(jù)庫(kù)WebExam中。具體如下所示:</p><p>  1、用戶信息表(User)</p><p>  2、班級(jí)信息表(class)</p><p>  3、科目信息表(CourseInfo)</p><p>  試卷信息表(Paper)</p><p>  5、試

46、卷-試題表(PaperData)</p><p>  6、單項(xiàng)選擇題信息表(Single)</p><p>  7、單項(xiàng)選擇題答案表(SingleAnswer)</p><p>  8、多項(xiàng)選擇題信息表(More)</p><p>  9、多項(xiàng)選擇題答案表(MoreAnswer)</p><p>  10、判斷題信息表

47、(Judge)</p><p>  11、判斷題答案表(JudgeAnswer)</p><p>  12、填空題信息表(Space)</p><p>  13、填空題答案表(SpaceAnswer)</p><p>  14、程序題信息表(Program)</p><p>  15、程序題答案表(ProgramAns

48、wer)</p><p>  16、ProgramPath表</p><p>  17、Student Score表</p><p>  18、ExamTime表</p><p><b>  數(shù)據(jù)庫(kù)中的視圖</b></p><p>  視圖是從一個(gè)或幾個(gè)基本表導(dǎo)出的表。它本身不獨(dú)立存儲(chǔ)在數(shù)據(jù)庫(kù)中,

49、即數(shù)據(jù)庫(kù)中只存放視圖的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中,他是一個(gè)虛表。所以,當(dāng)基本表中的數(shù)據(jù)庫(kù)發(fā)生變化時(shí),從視圖中查詢出的數(shù)據(jù)也隨之改變。視圖與基本表在概念上是相同的,用戶可以在視圖上進(jìn)行和基本表一樣的查詢操作,也可以再定義視圖。本設(shè)計(jì)中根據(jù)需要建立了以下視圖,這些視圖將在下面一一列出:</p><p>  1、JudgeView視圖,由PaperData和Judge兩個(gè)基本表導(dǎo)出,

50、Type=3,IsDeleted=0。</p><p>  2、MoreView視圖,由PaperData和More兩個(gè)基本表導(dǎo)出,Type=2,IsDeleted=0。</p><p>  3、PaperProgramView視圖,由Paper和ProgramPath兩個(gè)基本表導(dǎo)出。</p><p>  3、ProgramAnswerView視圖,由PaperDa

51、ta和Program兩個(gè)基本表導(dǎo)出。</p><p>  4、ProgramView視圖,由PaperData、Program、ProgramPath和Paper四個(gè)基本表導(dǎo)出,Type=5。</p><p>  5、SingleView視圖,由PaperData和Single兩個(gè)基本表導(dǎo)出,Type=1 ,IsDeleted=0。</p><p>  6、Spac

52、eView視圖,由PaperData和Space兩個(gè)基本表導(dǎo)出,Type=4,IsDeleted=0。</p><p>  7、StudentJudgeView視圖,由PaperData、Paper、 Judge、JudgeAnswer和Users五個(gè)基本表導(dǎo)出。</p><p>  8、StudentMoreView視圖,由PaperData、Paper、More、MoreAnswer和

53、Users五個(gè)基本表導(dǎo)出。</p><p>  9、StudentProgramView視圖,由PaperData、Paper、ProgramAnswer和Users四個(gè)基本表導(dǎo)出。</p><p>  10、StudentSingleView視圖,由PaperData、Paper、Single、SingleAnswer和Users五個(gè)基本表導(dǎo)出。</p><p>

54、  11、StudentSpaceView視圖,由PaperData、Paper、Space、SpaceAnswer和Users五個(gè)基本表導(dǎo)出。</p><p>  12、StudentView視圖,由Users基本表導(dǎo)出,Type=user,IsDeleted=0。</p><p><b>  系統(tǒng)總體構(gòu)架設(shè)計(jì)</b></p><p>  目

55、前開(kāi)發(fā)網(wǎng)絡(luò)考試系統(tǒng)的模式通常有兩種:一種是B/S(瀏覽器/服務(wù)器) 模式,另一種是C/S(客戶/服務(wù)器) 模式。傳統(tǒng)的C/S 結(jié)構(gòu)是指若干客戶端連接一個(gè)服務(wù)端,通過(guò)這樣的交互方式來(lái)進(jìn)行工作。這就需要分別編寫服務(wù)器端和客戶端軟件,且客戶機(jī)需要安裝客戶端軟件,給以后的維護(hù)帶來(lái)很大麻煩。在這樣的方式下,受到限制的因素很多,比如不同網(wǎng)段下的客戶端與服務(wù)器連接會(huì)非常麻煩等。而B(niǎo)/S 結(jié)構(gòu)是指瀏覽器/服務(wù)器模式。在這種方式下,程序的設(shè)計(jì)只需在服務(wù)器

56、端就可以完成,客戶機(jī)只要有瀏覽器便可正常工作。B/S 帶來(lái)的最大好處就是不受地域限制,只要網(wǎng)絡(luò)是連通的,并且在系統(tǒng)維護(hù)時(shí)只要在服務(wù)器端進(jìn)行,不需要分發(fā)到每個(gè)客戶機(jī),實(shí)現(xiàn)客戶端零維護(hù),大大節(jié)省了人力、物力、時(shí)間、費(fèi)用。</p><p><b>  系統(tǒng)層次結(jié)構(gòu)圖</b></p><p><b>  系統(tǒng)流程圖</b></p><

57、p><b>  學(xué)生做答模塊流程圖</b></p><p>  用戶登錄管理模塊流程圖</p><p><b>  試卷管理模塊流程圖</b></p><p><b>  題庫(kù)管理模塊流程圖</b></p><p><b>  小結(jié)</b></

58、p><p>  本章是對(duì)系統(tǒng)設(shè)計(jì)目標(biāo)、開(kāi)發(fā)語(yǔ)言、工具,運(yùn)行環(huán)境、后臺(tái)數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)設(shè)計(jì)、系統(tǒng)框架的簡(jiǎn)單介紹。并詳細(xì)介紹了系統(tǒng)數(shù)據(jù)庫(kù)基本表和視圖的設(shè)計(jì)。</p><p>  系統(tǒng)主要功能模塊設(shè)計(jì)</p><p><b>  登陸模塊</b></p><p>  每個(gè)用戶要進(jìn)入系統(tǒng)都必須先到登陸模塊。在此頁(yè)面,如果你已經(jīng)注冊(cè)了帳

59、號(hào)和密碼,那么可以直接輸入帳號(hào)、密碼登陸,如果之前未注冊(cè)過(guò),則必須先注冊(cè),然后再登陸。Admin用戶(如教師)直接用指定的帳號(hào)登陸,學(xué)生的帳號(hào)即為學(xué)號(hào)。</p><p><b>  注冊(cè)模塊</b></p><p>  Admin用戶無(wú)需注冊(cè),只有Users用戶需要注冊(cè)。在注冊(cè)界面,用戶選擇自己的班級(jí)和學(xué)號(hào),并填上自己的真實(shí)姓名和登陸用的密碼按“確定”進(jìn)行注冊(cè)。學(xué)號(hào)唯

60、一,若與別人相同則無(wú)法注冊(cè)。</p><p><b>  學(xué)生模塊</b></p><p>  學(xué)生在登陸的時(shí)候,根據(jù)其用戶類型,跳轉(zhuǎn)到由user.js控制的學(xué)生用戶的首頁(yè)面。當(dāng)你進(jìn)入時(shí)會(huì)顯示 “用戶名 你好,歡迎進(jìn)入…”以“welcome”及字樣。</p><p><b>  密碼修改模塊</b></p>

61、<p>  用戶如果需要修改自己的用戶密碼,可以點(diǎn)擊上面的“修改密碼”按鈕,跳轉(zhuǎn)到密碼修改界面,只要重新輸入新密碼,確認(rèn)一下就可以了。</p><p><b>  答題模塊</b></p><p>  學(xué)生等入后,到了考試時(shí)間就要開(kāi)始答題。按“答題”按鈕就可以進(jìn)入答題頁(yè)面。學(xué)生考試完畢或者考試時(shí)間到了以后,要按 “提交”按鈕提交考卷。對(duì)于程序題要上傳程序文件

62、(EXE)和源碼文件(RAR)。</p><p><b>  教師模塊</b></p><p>  教師在登陸的時(shí)候,根據(jù)其用戶類型,跳轉(zhuǎn)到由admin.js 控制的管理者用戶的首頁(yè)面。當(dāng)你進(jìn)入時(shí)和學(xué)生用戶一樣,會(huì)顯示 “用戶名 你好,歡迎進(jìn)入…”以“welcome”及字樣。和學(xué)生用戶不同的是由admin.js 控制的操作功能模塊的不同。下面將一一列出了管理者所能操作

63、的模塊:</p><p><b>  班級(jí)管理模塊</b></p><p>  在班級(jí)管理模塊中,老師可以看到各班的人數(shù)和班級(jí)成員,還可以對(duì)班級(jí)進(jìn)行增加、刪除等操作。</p><p><b>  科目管理模塊 </b></p><p>  每個(gè)教師根據(jù)自己所教授的課程添加科目,如果你所教的科目已經(jīng)有

64、其他老師添加過(guò)了,那么你可以和其他老師共用一個(gè),或者在添加科目時(shí)加上標(biāo)記以示區(qū)別。如數(shù)據(jù)庫(kù),可以用數(shù)據(jù)庫(kù)04、數(shù)據(jù)庫(kù)05以作區(qū)分。</p><p><b>  試卷管理模塊</b></p><p>  在選題界面,首先顯示的是各門的科目名稱。按科目后面相對(duì)應(yīng)的“增加”按鈕即可跳轉(zhuǎn)到試卷設(shè)置頁(yè)面,再次輸入試卷的名稱,并對(duì)整份試卷的結(jié)構(gòu)進(jìn)行設(shè)置,分?jǐn)?shù)的分布、各題型數(shù)量的分

65、布??偡值陀诨虺?00分時(shí)總分?jǐn)?shù)顯示呈紅色以示警告。設(shè)置好后按“確定”按鈕進(jìn)入選題界面,選好題后按“添加到試卷中”按鈕向數(shù)據(jù)庫(kù)提交數(shù)據(jù),一份考卷也就設(shè)置完成了,也可以按“返回”按鈕重新對(duì)考卷進(jìn)行設(shè)置。如果對(duì)之前設(shè)置的考卷不滿意,有需要修改的地方,你可以按“編輯”按鈕進(jìn)入考卷設(shè)置界面,再到選題界面,直到滿意為止。要將一份考卷用于當(dāng)前考試時(shí),只要按前面“用于考試”按鈕即可,在上面會(huì)顯示“當(dāng)前考試試卷為:當(dāng)前考試用考卷名”。</p&g

66、t;<p><b>  選擇題管理模塊</b></p><p>  進(jìn)入選擇題管理界面,選擇科目,頁(yè)面將顯示出此科目目前已有的選擇題題目和對(duì)應(yīng)的正確答案,單項(xiàng)選擇在前,多項(xiàng)選擇在后。用戶可按上方的“添加單選題”、“添加多選題”添加題目,也可以按題目相后面對(duì)應(yīng)的“編輯”按鈕對(duì)題目進(jìn)行修改,也可以刪除題目。題目的添加和編輯頁(yè)面是同一個(gè)頁(yè)面,對(duì)題干、備選答案和正確答案進(jìn)行設(shè)置,按確認(rèn)

67、添加成功。在添加、編輯頁(yè)面有一個(gè)“公共”的復(fù)選框,如果選中這個(gè)框,則在其他科目也將顯示著題題目,也可對(duì)其進(jìn)行其它操作。但選題和多選題的添加、編輯界面的不同之處在于正確答案設(shè)置處,單選題用的是單選框(radio),而多選題用的是復(fù)選框(Checkbox)。</p><p><b>  填空題管理模塊</b></p><p>  進(jìn)入填空題管理界面,選擇科目,頁(yè)面將顯示出

68、此科目目前已有的填空題題目和對(duì)應(yīng)的正確答案。用戶可按上方的“添加填空題”添加題目,也可以按題目后面相對(duì)應(yīng)的“編輯”按鈕對(duì)題目進(jìn)行修改,也可以刪除題目。題目的添加和編輯頁(yè)面是同一個(gè)頁(yè)面,對(duì)題干和正確答案進(jìn)行設(shè)置,按確認(rèn)添加成功。在添加、編輯頁(yè)面有一個(gè)“公共”的復(fù)選框,如果選中這個(gè)框,則在其他科目也將顯示著題題目,也可對(duì)其進(jìn)行其它操作。值得提出的是,因?yàn)樵O(shè)計(jì)的關(guān)系,每題填空題的空格限制在四個(gè)以內(nèi)。</p><p>&

69、lt;b>  判斷題管理模塊</b></p><p>  進(jìn)入判斷題管理界面,選擇科目,頁(yè)面將顯示出此科目目前已有的判斷題題目和對(duì)應(yīng)的正確答案。用戶可按上方的“添加斷題題”添加題目,也可以按題目后面相對(duì)應(yīng)的“編輯”按鈕對(duì)題目進(jìn)行修改,也可以刪除題目。題目的添加和編輯頁(yè)面是同一個(gè)頁(yè)面,對(duì)題干和正確答案進(jìn)行設(shè)置,按確認(rèn)添加成功。在添加、編輯頁(yè)面有一個(gè)“公共”的復(fù)選框,如果選中這個(gè)框,則在其他科目也將

70、顯示著題題目,也可對(duì)其進(jìn)行其它操作。</p><p><b>  程序題管理模塊</b></p><p>  進(jìn)入程序題管理界面,選擇科目,頁(yè)面將顯示出此科目目前已有的程序題題目和對(duì)應(yīng)的正確答案。用戶可按上方的“添加程序題”添加題目,也可以按題目后面相對(duì)應(yīng)的“編輯”按鈕對(duì)題目進(jìn)行修改,也可以刪除題目。題目的添加和編輯頁(yè)面是同一個(gè)頁(yè)面,對(duì)題干和正確答案進(jìn)行設(shè)置,按確認(rèn)添

71、加成功。在添加、編輯頁(yè)面有一個(gè)“公共”的復(fù)選框,如果選中這個(gè)框,則在其他科目也將顯示著題題目,也可對(duì)其進(jìn)行其它操作。</p><p><b>  答題測(cè)試模塊</b></p><p>  當(dāng)教師設(shè)置未能考卷后可以對(duì)這份考卷進(jìn)行答題測(cè)試,但是之前要將這份考卷設(shè)置為當(dāng)前考試試卷,否則會(huì)顯示其他設(shè)置為考試的考卷,如果目前沒(méi)有考試試卷則跳出“請(qǐng)選擇試卷”消息框,然后跳轉(zhuǎn)到試卷

72、管理頁(yè)面選擇當(dāng)前考試試卷。測(cè)試答題完后,可按“查看答案”看看自己的答題情況,如果你答對(duì)了題目的下方將顯示“恭喜你,答對(duì)了!”,反之則顯示正確答案。</p><p><b>  查看考試結(jié)果模塊</b></p><p>  學(xué)生考試完成后,教師可以若要了解其情況,即可到這個(gè)頁(yè)面查看。首先要選擇班級(jí)科目、試卷名稱、班級(jí),點(diǎn)擊 “查看”進(jìn)入,下面既有學(xué)生這份考卷各題得分和試

73、卷總分。想看某位學(xué)生的答題情況點(diǎn)擊其后面的“查看”按鈕即可。</p><p><b>  重點(diǎn)、難點(diǎn)代碼設(shè)計(jì)</b></p><p><b>  時(shí)間控制的實(shí)現(xiàn)</b></p><p>  時(shí)間控制是學(xué)生考試系統(tǒng)一個(gè)很重要的組成部分。一直以來(lái)的考試都有規(guī)定在一定的時(shí)間內(nèi)完成,否則考試就失去了它本身的意義。在本系統(tǒng)中,應(yīng)用一

74、個(gè)label控件來(lái)實(shí)現(xiàn)時(shí)間的倒計(jì)時(shí)。學(xué)生進(jìn)入系統(tǒng)第一次考某份考卷點(diǎn)擊“答題”按鈕時(shí),把當(dāng)前時(shí)間寫入ExamTime表中。與此同時(shí),讀取ExamTime表中相應(yīng)的TimeLong的值(第一次開(kāi)始考試的時(shí)間)和Paper表中ExamTime的值(考試規(guī)定時(shí)長(zhǎng)),將讀取的TimeLong的值放在DateTime的結(jié)構(gòu)體中名為beginTime;再將這個(gè)時(shí)間加上試卷的考試時(shí)長(zhǎng)得到最遲交卷的時(shí)間,也將它存放在DateTime結(jié)構(gòu)體中,名為endT

75、ime。將當(dāng)前時(shí)間放在另一個(gè)DateTime的結(jié)構(gòu)體名為dtNow,考生當(dāng)前考試剩余時(shí)間為:endTime-dtNow,這個(gè)結(jié)果是一個(gè)TimeSpan結(jié)構(gòu)(其實(shí)際格式為:hh:mm:ss),將它顯示在label控件上。實(shí)現(xiàn)代碼如下所示:</p><p><b>  {</b></p><p>  double timeLong = double.Parse(paper

76、.GetExamTime(ID).ToString());</p><p>  ExamBiz.ExamTime examTime = new STGROUP.ExamBiz.ExamTime();</p><p>  DateTime beginTime = DateTime.Parse(examTime.GetStudentExamTime(ID, userid).ToString()

77、);</p><p>  DateTime dt = DateTime.Now;</p><p>  DateTime endTime = beginTime.AddMinutes(timeLong);</p><p>  TimeSpan timeSpan = endTime.Subtract(dt);</p><p>  if (endT

78、ime <= dt)</p><p><b>  {</b></p><p>  lbExamTime.Text = "0:00:00";</p><p><b>  }</b></p><p><b>  else</b></p>&l

79、t;p>  lbExamTime.Text = timeSpan.ToString();</p><p><b>  } </b></p><p>  時(shí)間的倒計(jì)時(shí)和刷新部分是通過(guò)腳本來(lái)實(shí)現(xiàn)的,在考試結(jié)束前3分鐘將彈出提交提示,具體代碼如下:</p><p><b>  倒計(jì)時(shí)實(shí)現(xiàn)代碼:</b></p>

80、<p>  <script language=javascript></p><p><b>  var h=2;</b></p><p><b>  var m=0;</b></p><p><b>  var s=0;</b></p><p>  f

81、unction window.onload()</p><p><b>  {</b></p><p>  var div = window.parent.document.getElementById('ifmContent');</p><p>  div.style.height = document.body.scrol

82、lHeight+10;</p><p>  var tm = document.getElementById("lbExamTime").innerText;</p><p>  h = parseInt(tm.split(":")[0]);</p><p>  m = parseInt(tm.split(":&qu

83、ot;)[1]);</p><p>  s = parseInt(tm.split(":")[2]);</p><p><b>  }</b></p><p>  function showTime()</p><p><b>  {</b></p><p&g

84、t;  if(h == 0 && m == 0 && s ==0)</p><p><b>  {</b></p><p>  flag = false;</p><p><b>  return;</b></p><p><b>  }</b>

85、</p><p>  if(h == 0 && m == 3 && s == 0)</p><p><b>  {</b></p><p>  alert('考試時(shí)間只剩最后三分鐘,請(qǐng)檢查考卷并在剩余時(shí)間內(nèi)提交!')</p><p><b>  }</b&g

86、t;</p><p><b>  s--;</b></p><p><b>  if(s < 0)</b></p><p><b>  {</b></p><p><b>  s = 59;</b></p><p><b

87、>  m--;</b></p><p><b>  }</b></p><p><b>  if(m < 0)</b></p><p><b>  {</b></p><p><b>  m = 59;</b></p>

88、<p><b>  h--;</b></p><p><b>  }</b></p><p>  document.getElementById("lbExamTime").innerText = h + ":" + (m < 10 ? ("0" + m) : m) +

89、 ":" + (s < 10 ? ("0" + s) : s);</p><p><b>  }</b></p><p><b>  </script></b></p><p>  時(shí)間刷新實(shí)現(xiàn)代碼,每1000ms做showTime這個(gè)函數(shù)一次。</p>

90、<p>  <script type="text/javascript"></p><p>  t = setInterval("showTime()",1000);</p><p><b>  </script></b></p><p><b>  自動(dòng)閱

91、卷的實(shí)現(xiàn)</b></p><p>  自動(dòng)閱卷功能是本系統(tǒng)有別于其他考試系統(tǒng)的地方,是本系統(tǒng)的重點(diǎn)。自動(dòng)閱卷包括客觀題和主觀題,客觀題和主觀題中的填空題采用匹配的方式,如果匹配得到兩個(gè)是相同的,則正確;主觀題中的變成體則采用C#中的反射技術(shù)來(lái)實(shí)現(xiàn)。</p><p>  1、客觀題和填空題部分:</p><p>  這些題型題目的正確答案在添加題目的時(shí)候一

92、起被寫入數(shù)據(jù)庫(kù)相應(yīng)的題庫(kù)表中,如單選題的在Single表中,判斷題的在Judge表中,考生所作的答案都存放在數(shù)據(jù)庫(kù)中的所有*Answer表中,如單選題在SingleAnswer表中,判斷題在JudgeAnswer表中。將*Answer表中的答案與題庫(kù)表中的正確答案相匹配,一樣的說(shuō)明正確,則把相應(yīng)的信息如:PaperID、StudentID、PaperDataID、Score、Type等在視圖Student*View中輸出。再把Paper

93、ID、StudentID相同的Score的值相加,就可以得到指定考卷、考生類型為Type值的得分。</p><p>  具體實(shí)現(xiàn)代碼如下所示:</p><p>  ExamBiz.User user = new STGROUP.ExamBiz.User();</p><p>  ExamBiz.Identity identity = new ExamBiz.Iden

94、tity(User.Identity.Name);</p><p>  long userid = identity.UserID;</p><p>  foreach (DataGridItem dg in dgSingle.Items)</p><p><b>  {</b></p><p>  RadioButto

95、nList rblTemp = (RadioButtonList)dg.FindControl("rblAnswer");</p><p>  Label lbPaperDataID = (Label)dg.FindControl("PaperDataID");</p><p>  int PaperDataID = int.Parse(lbPape

96、rDataID.Text);</p><p>  ExamBiz.SingleAnswer SingleAnswer = new STGROUP.ExamBiz.SingleAnswer();</p><p>  string temp = rblTemp.SelectedValue;</p><p>  SingleAnswer.InsertSingleAnswe

97、r(PaperDataID, userid, rblTemp.SelectedValue);</p><p><b>  }</b></p><p>  foreach (DataGridItem dg in dgMore.Items)</p><p><b>  {</b></p><p>  C

98、heckBoxList cblTemp = (CheckBoxList)dg.FindControl("cblAnswer");</p><p>  Label lbPaperDataID = (Label)dg.FindControl("PaperDataID");</p><p>  int PaperDataID = int.Parse(lbP

99、aperDataID.Text);</p><p>  ExamBiz.MoreAnswer MoreAnswer = new STGROUP.ExamBiz.MoreAnswer();</p><p>  string temp = "";</p><p>  foreach (ListItem li in cblTemp.Items)<

100、/p><p><b>  {</b></p><p>  if (li.Selected)</p><p>  temp += "1";</p><p><b>  else</b></p><p>  temp += "0";</p

101、><p><b>  }</b></p><p>  MoreAnswer.InsertMoreAnswer(PaperDataID, userid, int.Parse(temp));</p><p><b>  }</b></p><p>  foreach (DataGridItem dg in

102、dgJudge.Items)</p><p><b>  {</b></p><p>  CheckBox cbTemp = (CheckBox)dg.FindControl("cbAnswer");</p><p>  Label lbPaperDataID = (Label)dg.FindControl("Pa

103、perDataID");</p><p>  int PaperDataID = int.Parse(lbPaperDataID.Text);</p><p>  ExamBiz.JudgeAnswer JudgeAnswer = new STGROUP.ExamBiz.JudgeAnswer();</p><p>  int temp = 0;</

104、p><p>  if (cbTemp.Checked)</p><p><b>  temp = 1;</b></p><p><b>  else</b></p><p><b>  temp = 0;</b></p><p>  JudgeAnswer.

105、InsertJudgeAnswer(PaperDataID, userid, temp);</p><p><b>  }</b></p><p>  foreach (DataGridItem dg in dgSpace.Items)</p><p><b>  {</b></p><p>  L

106、abel PaperDataID = (Label)dg.FindControl("PaperDataID");</p><p>  int SpacePaperDataID = int.Parse(PaperDataID.Text);</p><p>  TextBox tbSpace1 = (TextBox)dg.FindControl("tbSpace1

107、");</p><p>  string space1 = tbSpace1.Text;</p><p>  TextBox tbSpace2 = (TextBox)dg.FindControl("tbSpace2");</p><p>  string space2 = tbSpace2.Text;</p><p&

108、gt;  TextBox tbSpace3 = (TextBox)dg.FindControl("tbSpace3");</p><p>  string space3 = tbSpace3.Text;</p><p>  TextBox tbSpace4 = (TextBox)dg.FindControl("tbSpace4");</p>

109、;<p>  string space4 = tbSpace4.Text;</p><p>  ExamBiz.SpaceAnswer SpaceAnswer = new STGROUP.ExamBiz.SpaceAnswer();</p><p>  SpaceAnswer.InsertSpaceAnswer(SpacePaperDataID, userid, space1

110、, space2, space3, space4);</p><p><b>  }</b></p><p><b>  2、編程題部分:</b></p><p>  反射式C# 中的一種技術(shù),它的具體功能將在下面一節(jié)進(jìn)行介紹。編程題閱卷采用反射方法來(lái)實(shí)現(xiàn)。在本系統(tǒng)中,編程題分為兩類,一類是由輸入輸出的(按結(jié)果),一類是沒(méi)

111、有輸出結(jié)果的(按過(guò)程),這兩種不同的題型要用不同的閱卷方法。它通過(guò)對(duì)上傳的exe文件進(jìn)行反射操作來(lái)實(shí)現(xiàn),現(xiàn)用反射得到exe的類、方法和屬性,對(duì)于按結(jié)果的,則調(diào)用其方法,傳入正確答案里的參數(shù),將其返回結(jié)果與正確答案的結(jié)果相對(duì)比,一樣,說(shuō)明正確;對(duì)于按過(guò)程的,則同時(shí)對(duì)exe文件和正確答案進(jìn)行反射操作,將兩邊結(jié)果進(jìn)行匹配,和正確答案反射出來(lái)的一樣,說(shuō)明正確。此題得分=答對(duì)個(gè)數(shù)/全部問(wèn)題數(shù)*此題總分,最后的正樹(shù)部分將是此題的得分。</p&

112、gt;<p><b>  反射操作部分代碼:</b></p><p>  public AssProgram(string assemblyName, string strFunInfo, out string ErrMsg, int _flag)</p><p><b>  {</b></p><p>&l

113、t;b>  try</b></p><p><b>  { </b></p><p><b>  //加載程序集</b></p><p>  assembly = Assembly.LoadFrom(assemblyName);</p><p><b>  }</b

114、></p><p>  catch(Exception e)</p><p><b>  {</b></p><p>  ErrMsg = e.Message;</p><p><b>  return;</b></p><p><b>  }</b&g

115、t;</p><p>  ErrMsg = "";</p><p>  //獲得程序集里面的所有類</p><p>  types = assembly.GetTypes();</p><p>  FunInfo = strFunInfo;</p><p>  FunInfo = FunInfo.T

116、oLower();</p><p>  flag = _flag;</p><p><b>  }</b></p><p><b>  分解函數(shù)信息</b></p><p>  private string[] AnalyzeFunInfo()</p><p><b&g

117、t;  {</b></p><p>  FunInfo = FunInfo.Replace("<br>", ";");</p><p>  FunInfo = FunInfo.Replace(";;", ";");</p><p>  FunInfo = FunI

118、nfo.Replace(";{;", "{");</p><p>  FunInfo = FunInfo.Replace(";};", " ");</p><p>  if (flag == 0)</p><p><b>  {</b></p><

119、;p>  string[] Funs = FunInfo.Split(new char[] { ';', '(', ')' });</p><p>  for (int i = 0; i < Funs.Length; i++)</p><p><b>  {</b></p><p> 

120、 Funs[i] = Funs[i].Trim(new char[] { '=', ' ' });</p><p><b>  }</b></p><p>  return Funs;</p><p><b>  }</b></p><p>  else if (fl

121、ag == 1)</p><p><b>  {</b></p><p>  string[] Funs = FunInfo.Split(new char[] { ';', '{' });</p><p>  int c = 0, f = 0, a = 0;</p><p>  for (

122、int i = 0; i < Funs.Length; i++)</p><p><b>  {</b></p><p>  if (Funs[i].Contains("class"))</p><p><b>  {</b></p><p>  if (Funs[i].C

123、ontains("public"))</p><p>  sClass[c].consType = 1;</p><p>  else if (Funs[i].Contains("protected"))</p><p>  sClass[c].consType = 2;</p><p>  else

溫馨提示

  • 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ù)僅提供信息存儲(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)論