畢業(yè)設(shè)計(論文)基于VB的網(wǎng)絡(luò)考試系統(tǒng)_第1頁
畢業(yè)設(shè)計(論文)基于VB的網(wǎng)絡(luò)考試系統(tǒng)_第2頁
畢業(yè)設(shè)計(論文)基于VB的網(wǎng)絡(luò)考試系統(tǒng)_第3頁
畢業(yè)設(shè)計(論文)基于VB的網(wǎng)絡(luò)考試系統(tǒng)_第4頁
畢業(yè)設(shè)計(論文)基于VB的網(wǎng)絡(luò)考試系統(tǒng)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、本科畢業(yè)論文(設(shè)計)題目: 基于vb的網(wǎng)絡(luò)考試系統(tǒng) 學(xué)院: 數(shù)學(xué)與計算機(jī)科學(xué)學(xué)院 班級: 07級計算機(jī)一班 姓名: 指導(dǎo)教師: 職稱: 講師 完成日期: 2011 年 05 月 27 日網(wǎng)絡(luò)考試系統(tǒng) 摘要:在網(wǎng)絡(luò)技術(shù)逐漸滲入社會生活各個層面的今天,電子考試的發(fā)展使得傳統(tǒng)的考試方式也面臨著變革,而網(wǎng)絡(luò)考試則是一個很重要的方向?;诰W(wǎng)絡(luò)的考試系統(tǒng)是傳統(tǒng)考場的延伸,加上數(shù)據(jù)庫技術(shù)的利用,大大簡化了傳統(tǒng)考試的過程。因此網(wǎng)絡(luò)考試系統(tǒng)是電子化教學(xué)不可缺少的一個重要環(huán)節(jié)。所以現(xiàn)在較好的考試方法為網(wǎng)絡(luò)考試,考生通過姓名、準(zhǔn)考證號碼或口令進(jìn)行登錄,試卷可以根據(jù)題庫中的內(nèi)容即時生成,可避免考試前的壓題;而且可以采

2、用大量標(biāo)準(zhǔn)化試題,從而使用計算機(jī)判卷,大大提高閱卷效率;還可以直接把成績送到數(shù)據(jù)庫中,進(jìn)行統(tǒng)計、排序等操作。因此,采用網(wǎng)絡(luò)考試方式將是以后考試發(fā)展的趨勢。本考試系統(tǒng)是利用非常流行的基于basic語言的可視化編程工具microsoft visual basic 6.0,并用sql server 2000數(shù)據(jù)庫編寫的應(yīng)用程序。它有應(yīng)用簡單、升級和部署方便、擴(kuò)展性強(qiáng)等特點。滿足任何授權(quán)的考生隨時隨地考試并迅速獲得成績。關(guān)鍵詞:網(wǎng)絡(luò)考試系統(tǒng);vb;sql server 2000數(shù)據(jù)庫.目 錄一 、概述1(一)系統(tǒng)簡介1(二)開發(fā)用到的工具和語言11.microsoft visual basic 6.0

3、12. sql server 200033.visual basic語言特點4二、系統(tǒng)分析5(一)需求分析51.系統(tǒng)需要解決的主要問題52.系統(tǒng)應(yīng)該具備的基本功能6(二)系統(tǒng)達(dá)到的目標(biāo)6三、系統(tǒng)概要設(shè)計7(一)系統(tǒng)模塊圖7(二)系統(tǒng)流程圖71.考生考試管理數(shù)據(jù)流程圖72. 教師閱卷管理管理數(shù)據(jù)流程圖8(三) 數(shù)據(jù)庫設(shè)計9(四)關(guān)鍵技術(shù)101. 考生隨機(jī)抽題的實現(xiàn)102. 考試定時功能的實現(xiàn)113. mschart控件的使用12四、系統(tǒng)實現(xiàn)13(一) 主要窗口的設(shè)計及功能實現(xiàn)14(二) 部分功能的演示19五、小結(jié)21參考文獻(xiàn)21 一 、概述(一)系統(tǒng)簡介 我們知道,在現(xiàn)在信息飛速發(fā)展的時代,速度

4、和效率已經(jīng)變成非常重要了,在學(xué)校也如此,舉行一次考試也可以不要集中學(xué)生在一起進(jìn)行,可以在學(xué)校的網(wǎng)內(nèi)進(jìn)行,這可以提高考試的效率,網(wǎng)上考試系統(tǒng)已變的非常重要。以前的人工監(jiān)考既費時又費力,現(xiàn)在有了網(wǎng)上考試系統(tǒng)只要一個管理員,一切就輕松解決了,對考試的公平性和保密性也得到了很好的保證。對試卷的管理也很方便,對學(xué)生的情況管理也特別管用,這些優(yōu)點極大的提高了傳統(tǒng)考試的效率,使得網(wǎng)絡(luò)考試系統(tǒng)變的相當(dāng)重要。由此可見,開發(fā)一套網(wǎng)絡(luò)考試系統(tǒng)是很有必要的。傳統(tǒng)考試要求老師刻試卷、印試卷、安排考試、監(jiān)考、收集試卷、評改試卷、講評試卷和分析試卷。這是一個漫長而復(fù)雜的過程,已經(jīng)越來越不適應(yīng)現(xiàn)代教學(xué)的需要。在網(wǎng)絡(luò)技術(shù)逐漸滲

5、入社會生活各個層面的今天,傳統(tǒng)的考試方式也面臨著變革,而網(wǎng)絡(luò)考試則是一個很重要的方向?;诰W(wǎng)絡(luò)的考試系統(tǒng)是傳統(tǒng)考場的延伸,加上數(shù)據(jù)庫技術(shù)的利用,大大簡化了傳統(tǒng)考試的過程。因此網(wǎng)絡(luò)考試系統(tǒng)是電子化教學(xué)不可缺少的一個重要環(huán)節(jié)。所以現(xiàn)在較好的考試方法為網(wǎng)絡(luò)考試,考生通過姓名、準(zhǔn)考證號碼或口令進(jìn)行登錄,試卷可以根據(jù)題庫中的內(nèi)容即時生成,可避免考試前的壓題;而且可以采用大量標(biāo)準(zhǔn)化試題,從而使用計算機(jī)判卷,大大提高閱卷效率;還可以直接把成績送到數(shù)據(jù)庫中,進(jìn)行統(tǒng)計、排序等操作。因此,采用網(wǎng)絡(luò)考試方式將是以后考試發(fā)展的趨勢。在下面的各章中我將以開發(fā)一套基于局域網(wǎng)的網(wǎng)絡(luò)考試系統(tǒng)為例,談?wù)勗陂_發(fā)過程中所涉及的問題

6、及解決的方法。軟件采用visual basic 6.0作為系統(tǒng)的開發(fā)工具,采用sql server 2000中文版作為后臺數(shù)據(jù)庫來維護(hù)和管理數(shù)據(jù)庫。本軟件主要針對各大高校和中小學(xué)校設(shè)計,實現(xiàn)基于局域網(wǎng)的網(wǎng)絡(luò)考試系統(tǒng)。它主要完成了模擬一般考試的各個功能,如考試的分發(fā)試卷,交卷,學(xué)生異常的處理等功能。本系統(tǒng)界面友好,操作簡單,即使對不太熟悉電腦的老師來說也是很容易操作的。隨著網(wǎng)絡(luò)的逐漸普及,本系統(tǒng)已變得越來越重要。(二)開發(fā)用到的工具和語言1.microsoft visual basic 6.0microsoft visual basic 6.0是非常流行的基于basic語言的可視化編程工具,其開

7、發(fā)界面如圖1.1所示。圖1.1 visual basic集成開發(fā)環(huán)境microsoft visual basic 6.0能夠成為當(dāng)今最流行的軟件開發(fā)工具之一,是與其卓越的性能分不開的,它匯集了微軟(microsoft)公司的技術(shù)精華,不僅全面使用了面向?qū)ο蟮募夹g(shù),而且在編譯技術(shù)上也作了優(yōu)化。與其他開發(fā)工具相比,visual basic 6.0具有明顯的優(yōu)勢:1使用basic語言作為基礎(chǔ),開發(fā)難度低、開發(fā)工作量小。2visual basic 6.0開發(fā)環(huán)境十分友好,強(qiáng)大的可視化開發(fā)方式能夠幫助用戶輕松地開發(fā)出多種類型的應(yīng)用程序。3由于微軟公司在pc操作系統(tǒng)市場上的壟斷地位,使用微軟發(fā)行的編程軟件

8、能夠提供與windows操作系統(tǒng)的最大兼容性。 4微軟公司開發(fā)的編程環(huán)境visual basic,不僅能夠提供強(qiáng)大的圖形支持,而且能夠使應(yīng)用程序與硬件相對獨立。5windowsapi為實現(xiàn)應(yīng)用程序提供了強(qiáng)大的擴(kuò)展功能支持。6為用戶提供了許多有用的調(diào)試和分析工具,能夠幫助用戶尋找錯誤和提高應(yīng)用程序效率。 7擁有解釋方式和編譯方式兩種運行方式,使得應(yīng)用程序的調(diào)試更加方便、輕松。鑒于以上的優(yōu)點,我們選擇visual basic 6.0作為此次網(wǎng)絡(luò)考試系統(tǒng)的開發(fā)工具。2. sql server 2000圖1.2sql server 2000 (如圖1.2)是microsoft 公司推出的sql ser

9、ver 數(shù)據(jù)庫管理系統(tǒng)的一個版本。該版本繼承了sql server 7.0 版本的優(yōu)點同時又比它增加了許多更先進(jìn)的功能,具有使用方便,可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點,可跨越從運行microsoft windows 98 的膝上型電腦到運行microsoft windows 2000 的大型多處理器的服務(wù)器等多種平臺使用。 sql server 2000 的特性包括: 1.internet 集成。sql server 2000 數(shù)據(jù)庫引擎提供完整的xml 支持。它還具有構(gòu)成最大的web 站點的數(shù)據(jù)存儲組件所需的可伸縮性、可用性和安全功能。sql server 2000 程序設(shè)計模型與 wi

10、ndows dna 構(gòu)架集成,用以開發(fā) web 應(yīng)用程序,并且sql server 2000 支持 english query 和 microsoft 搜索服務(wù)等功能,在web 應(yīng)用程序中包含了用戶友好的查詢和強(qiáng)大的搜索功能。 2.可伸縮性和可用性。同一個數(shù)據(jù)庫引擎可以在不同的平臺上使用,從運行 microsoft windows 98 的便攜式電腦,到運行 microsoft windows 2000 數(shù)據(jù)中心版的大型多處理器服務(wù)器。sql server 2000 企業(yè)版支持聯(lián)合服務(wù)器、索引視圖和大型內(nèi)存支持等功能,使其得以升級到最大 web 站點所需的性能級別。 3.企業(yè)級數(shù)據(jù)庫功能。sq

11、l server 2000 關(guān)系數(shù)據(jù)庫引擎支持當(dāng)今苛刻的數(shù)據(jù)處理環(huán)境所需的功能。數(shù)據(jù)庫引擎充分保護(hù)數(shù)據(jù)完整性,同時將管理上千個并發(fā)修改數(shù)據(jù)庫的用戶的開銷減到最小。sql server 2000 分布式查詢使您得以引用來自不同數(shù)據(jù)源的數(shù)據(jù),就好象這些數(shù)據(jù)是 sql server 2000 數(shù)據(jù)庫的一部分,同時分布式事務(wù)支持充分保護(hù)任何分布式數(shù)據(jù)更新的完整性。復(fù)制同樣使您得以維護(hù)多個數(shù)據(jù)復(fù)本,同時確保單獨的數(shù)據(jù)復(fù)本保持同步。可將一組數(shù)據(jù)復(fù)制到多個移動的脫接用戶,使這些用戶自主地工作,然后將他們所做的修改合并回發(fā)布服務(wù)器。 4.易于安裝、部署和使用。 sql server 2000 中包括一系列管理

12、和開發(fā)工具,這些工具可改進(jìn)在多個站點上安裝、部署、管理和使用 sql server 的過程。sql server 2000 還支持基于標(biāo)準(zhǔn)的、與 windows dna 集成的程序設(shè)計模型,使 sql server 數(shù)據(jù)庫和數(shù)據(jù)倉庫的使用成為生成強(qiáng)大的可伸縮系統(tǒng)的無縫部分。這些功能使您得以快速交付 sql server 應(yīng)用程序,使客戶只需最少的安裝和管理開銷即可實現(xiàn)這些應(yīng)用程序。其主要特點如下: (1)高性能設(shè)計,可充分利用windows nt的優(yōu)勢。 (2)系統(tǒng)管理先進(jìn),支持windows圖形化管理工具,支持本地和遠(yuǎn)程的系統(tǒng)管理和配置。 (3)強(qiáng)壯的事務(wù)處理功能,采用各種方法保證數(shù)據(jù)的完整

13、性。 (4)支持對稱多處理器結(jié)構(gòu)、存儲過程、odbc,并具有自主的sql語言。 sql server以其內(nèi)置的數(shù)據(jù)復(fù)制功能、強(qiáng)大的管理工具、與internet的緊密集成和開放的系統(tǒng)結(jié)構(gòu)為廣大的用戶、開發(fā)人員和系統(tǒng)集成商提供了一個出眾的數(shù)據(jù)庫平臺。所以sql server 2000也是一個很好的選擇。3.visual basic語言特點visual basic(以下簡稱vb)是運行于windows平臺下的一種可視化的高級編程語言。自1991年問世以來,vb適應(yīng)了windows3.x到windows 95/98及windows nt等各版本的操作系統(tǒng)的發(fā)展,廣泛應(yīng)用于普通窗口類、數(shù)據(jù)庫管理類、網(wǎng)絡(luò)

14、數(shù)據(jù)通信類等應(yīng)用程序的開發(fā)。vb作為一種可視化的計算機(jī)的高級程序設(shè)計語言,有以下顯著的特點:(1)vb繼承了basic語言簡單易學(xué)的特點 microsoft在發(fā)展vb過程中從來沒有忘記其根源,編程的入門者即使是一個對計算機(jī)工作原理一竅不通的人,也可以在相當(dāng)短的時間內(nèi)編寫一個可行的windows程序。(2)與基于dos環(huán)境下的編程語言相比,vb編程思想上發(fā)生了根本的改變與基于dos環(huán)境下的編程語言相比,vb編程思想上發(fā)生了根本的改變,vb中引入了面向?qū)ο蟮某绦蛟O(shè)計方法,使程序設(shè)計人員從煩瑣的程序設(shè)計細(xì)節(jié)中解脫出來,程序設(shè)計人員在進(jìn)行程序開發(fā)時,選擇適當(dāng)?shù)膶ο髽?gòu)造自己需要的界面。然后安排好某對象接

15、收到何消息做什么就可以了。而不需要具體地考慮對象如何做、哪個先做、哪個后做的問題。(3)vb具有強(qiáng)大的數(shù)據(jù)庫管理功能 vb支持sql數(shù)據(jù)庫查詢,利用vb中嵌入的數(shù)據(jù)庫管理功能幾乎可以操縱各種格式的數(shù)據(jù)庫。(4)程序開發(fā)環(huán)境高度集成化 vb是一個包括編輯、程序調(diào)試、程序運行、程序編譯等各種功能的集成程序開發(fā)環(huán)境。(5)vb適應(yīng)于開發(fā)視窗類應(yīng)用程序 vb中包含大量的函數(shù)、命令及關(guān)鍵字,其中大部分與windows圖形用戶界面相關(guān),專業(yè)人員可以很方便地使用它們開發(fā)出功能強(qiáng)大的windows應(yīng)用程序。二、系統(tǒng)分析要實現(xiàn)一個軟件系統(tǒng),首先應(yīng)該進(jìn)行需求分析,這樣才能令設(shè)計出的軟件滿足用戶的各項功能。下面就對

16、考試系統(tǒng)的設(shè)計進(jìn)行需求分析。(一)需求分析1.系統(tǒng)需要解決的主要問題首先,因為考試是面向特定的某些對象的,所以考試者進(jìn)入系統(tǒng)應(yīng)該進(jìn)行身份驗證??荚囌哌M(jìn)入考試系統(tǒng)后,應(yīng)該能根據(jù)自己的需要選擇考試科目,所以該系統(tǒng)還應(yīng)具有考試科目選擇的功能??荚囉谝话愕膯螜C(jī)考試是不同的。鑒于考試環(huán)境一般為機(jī)房,考試者之間的距離很近,為了考試做到規(guī)范,對于每個應(yīng)試者來說,試卷的試題和題量都應(yīng)是相同的,但試題并不相同。試卷應(yīng)該從服務(wù)器的數(shù)據(jù)庫隨機(jī)抽取試題后動態(tài)生成。另外,系統(tǒng)還應(yīng)該對考試時間進(jìn)行控制,時間到了會要求考試者交卷??荚囌哌x擇答案提交后,應(yīng)該由計算機(jī)自動判卷,得到成績后顯示出來??荚囃戤吅螅梢苑祷氐卿浗缑婊?/p>

17、繼續(xù)考試。此外,應(yīng)該能夠方便、快捷的對考試系統(tǒng)進(jìn)行管理,此外,用戶還應(yīng)能進(jìn)行注冊。2.系統(tǒng)應(yīng)該具備的基本功能用戶登陸:用戶通過用戶名和密碼進(jìn)行登錄。用戶信息的管理:管理員可以增刪用戶。試題庫管理:可以增加、修改、刪除試題。試卷生成:從試題庫里隨機(jī)抽取試題生成一份原始試卷。在線考試:系統(tǒng)嚴(yán)格控制整個考試過程,實行時間的監(jiān)控與權(quán)限的控制,考生需要在限定的考試時間內(nèi)交卷。 計算機(jī)自動閱卷:要求計算機(jī)能自動閱卷,然后馬上顯示出考生分?jǐn)?shù)。成績查閱:考生考完以后,管理員應(yīng)該能對所有紀(jì)錄進(jìn)行查詢,并應(yīng)該可以刪除指定紀(jì)錄。網(wǎng)絡(luò)考試系統(tǒng)具有多用戶同時在線考試、考試時間控制、自動判卷、題庫維護(hù),以及用戶管理等功能

18、。本系統(tǒng)主要針對高等院校的網(wǎng)絡(luò)考試,能幫助學(xué)校、企業(yè)、機(jī)關(guān)單位提高工作效率,實現(xiàn)考試信息管理以及考試流程的系統(tǒng)化、規(guī)范化和自動化。本系統(tǒng)采用集中式的信息數(shù)據(jù)庫,考生隨機(jī)抽取考試題目,對高等學(xué)校作弊成風(fēng)的壞習(xí)慣起到一定的遏制作用,同時能減輕了監(jiān)考、判卷人員的工作任務(wù),減少了人員配置,降低了管理成本,方便教師統(tǒng)計考試結(jié)果,并能提供試卷分析等功能。同時,網(wǎng)絡(luò)考試系統(tǒng)簡化了傳統(tǒng)考試過程,其自動評閱、計分、成績存檔功能將有效地避免資源的浪費,有利于環(huán)保,減少工作人員,提高效率。(二)系統(tǒng)達(dá)到的目標(biāo)一個完善的網(wǎng)絡(luò)考試系統(tǒng)的任務(wù)主要包括以下幾項:(1) 考試設(shè)置:負(fù)責(zé)管理考試信息設(shè)置和考生分配。(2) 系統(tǒng)

19、資料:負(fù)責(zé)對考試題庫、考生信息、教師信息進(jìn)行維護(hù)。(3) 系統(tǒng)管理:負(fù)責(zé)管理人員信息、重新登錄、密碼維護(hù)。(4) 考生考試管理:負(fù)責(zé)管理考生考試和考生成績查詢。(5) 教師閱卷管理:負(fù)責(zé)管理教師閱卷、成績查詢、成績統(tǒng)計等。三、系統(tǒng)概要設(shè)計該系統(tǒng)用于用戶注冊、登錄、參加考試以及管理員進(jìn)行試題錄入、修改、刪除、成績查詢、管理用戶的應(yīng)用程序。它應(yīng)該具有開放性、方便性和靈活性??忌M(jìn)行有效的身份驗證登錄后,要求在規(guī)定的時間內(nèi)進(jìn)行答題,當(dāng)達(dá)到規(guī)定的時間后,系統(tǒng)將自動予以提示。一旦考生做完交卷后便能立即看到自己的考試成績;另外,還可完全由計算機(jī)自動靈活、隨機(jī)的抽取試題庫中的各類試題形成試卷,其內(nèi)容會隨著庫

20、中試題的改變而改變,而且,不同的考生生成的試題是不同的。(一)系統(tǒng)模塊圖根據(jù)以上的系統(tǒng)需求分析,一個標(biāo)準(zhǔn)的網(wǎng)絡(luò)考試系統(tǒng)應(yīng)該包括考試設(shè)置、系統(tǒng)資料、系統(tǒng)管理、考生考試管理和教師閱卷管理等功能,如圖3.1所示:網(wǎng)絡(luò)考試 系 統(tǒng)考試設(shè)置系統(tǒng)資料系統(tǒng)管理考生考試管理教師閱卷管理考試信息考生分配考試名單考題設(shè)置考生管理教師管理管理人員信息密碼維護(hù)重新登錄考生考試考生成績查詢教師閱卷成績查詢成績統(tǒng)計圖3.1系統(tǒng)模塊圖(二)系統(tǒng)流程圖1.考生考試管理數(shù)據(jù)流程圖考生考試管理模塊主要用來管理考生的考試情況,包括客觀題和主觀題的考生考試的相關(guān)內(nèi)容和考生成績查詢??忌荚嚬δ苤饕?fù)責(zé)考生的客觀題和主觀題兩部分考題的

21、考試??忌目碱}都是隨機(jī)在試題庫中抽取??忌煽儾樵児δ苤饕峁┛忌荚嚦煽儾樵儭⒋蛴」δ?。成績信息包括客觀題得分、主觀題得分、總分。其主要數(shù)據(jù)流程圖如圖3.2所示:考生系統(tǒng)抽題考生成績查詢考生答題主觀題答案客觀題臨時表考生主觀題作答表成績信息表考生登錄信息答題信息查詢條件題目信息成績信息客觀題成績客觀題主觀題客觀題信息表主觀題信息表客觀題主觀題圖3.2系統(tǒng)流程圖2. 教師閱卷管理管理數(shù)據(jù)流程圖教師閱卷管理主要負(fù)責(zé)管理教師閱卷、成績查詢、成績統(tǒng)計,能對考卷的主觀題部分進(jìn)行改卷評分,實現(xiàn)考試成績的查詢、排序和打印功能以及成績分布情況,數(shù)據(jù)流程圖如圖3.3所示:教師教師閱卷成績查詢成績統(tǒng)計考生主觀

22、題作答表成績信息表教師登錄信息查詢條件查詢條件閱卷信息成績統(tǒng)計結(jié)果查詢結(jié)果圖3.3教師閱卷管理管理數(shù)據(jù)流程圖(三) 數(shù)據(jù)庫設(shè)計根據(jù)需求分析可知,系統(tǒng)需要建立9張表,分別是考試信息表、客觀題信息表、主觀題信息表、管理人員信息表、考生信息表、客觀題臨時表、考生主觀題作答表、成績信息表、教師信息表。通過sql server企業(yè)管理器可以得到數(shù)據(jù)庫表的關(guān)聯(lián)圖,如圖3.4所示:教師信息表pk考試代碼開考時間考試時間考試人數(shù)考試標(biāo)志考生信息表pk考生號姓名密碼身份證號所屬院校專業(yè)住址郵箱主觀題信息表pk考題號fk1題目內(nèi)容答案難度系數(shù)入庫時間錄入人員id成績信息表pk成績idfk1fk2fk3考生號姓名考

23、試代碼交卷時間客觀題得分主觀題得分總分試卷狀態(tài)評卷教師idpk教師id姓名密碼職稱教育背景電話郵箱客觀題臨時表pkid自增fk1fk2fk3考生號考題號標(biāo)準(zhǔn)答案考生作答考生主觀題作答表表管理人員信息表pkpk姓名密碼電話郵箱fk1fk2作答id管理人員id考生號考題號答案得分閱卷標(biāo)志考試信息表客觀題信息表pk考題號fk1題目內(nèi)容a選項b選項c選項d選項答案難度系數(shù)入庫時間錄入人員id圖3.4 數(shù)據(jù)庫表的關(guān)聯(lián)圖(四)關(guān)鍵技術(shù)網(wǎng)絡(luò)考試系統(tǒng)的關(guān)鍵技術(shù)包括如何實現(xiàn)考生隨機(jī)抽題,如何實現(xiàn)考試定時功能和如何使用mschart控件繪制圖表,下面分別進(jìn)行闡述。1. 考生隨機(jī)抽題的實現(xiàn)在網(wǎng)絡(luò)考試系統(tǒng)中,要求考生

24、能夠隨機(jī)抽題。為了實現(xiàn)考生隨機(jī)抽題,需要分別對客觀題和主觀題進(jìn)行遍歷。(1)獲得隨機(jī)抽取客觀題,代碼如下: private sub getkgt()隨機(jī)抽取客觀題 dim rst as adodb.recordset dim flag as boolean dim index1 as integer dim index2 as integer dim tempid as integer dim temp as integer dim sum as integer 保存題庫中的題目總數(shù)量 dim randno(1 to 10) as string 保存考生的10道客觀題的隨機(jī)序列號 初始化數(shù)組

25、for index1 = 1 to 10 randno(index1) = -1 next index1 查詢客觀題題號信息 sql = select subjectid,answer from 客觀題信息表 order by subjectid set rst = selectsql(sql, msg) sum = rst.recordcount 得到題庫中題目總數(shù)量 取10道客觀題的隨機(jī)序列號 for index1 = 1 to 10 保證所有的序號不能重復(fù)存在 do while true randomize 隨機(jī)數(shù)種子 tempid = int(rnd() * (sum - 1) + 1

26、 flag = true for index2 = 1 to index1 if tempid = randno(index2) then 如果取得序列號和前面的相同 flag = false exit for end if next index2 if flag = true then exit do loop randno(index1) = tempid next index1 對隨機(jī)得到的序號進(jìn)行排序 for index1 = 1 to 9 tempid = index1 for index2 = index1 + 1 to 10 if cint(trim(randno(index2)

27、 5 then exit do 插入過程完成 rst.movenext index1 = index1 + 1 loop rst.closeend sub2. 考試定時功能的實現(xiàn)考試是有一定時間限制的??忌荚嚂r,系統(tǒng)要能夠隨時提供所剩時間的信息,而visual basic中的timer(時間)控制器就是專門解決這方便問題的控件。在“考生考試”窗體上繪制一個timer1控件。timer1_timer事件的代碼如下所示:private sub timer1_timer()計算時間 time = time + 1 if time = 60 then label4.caption = val(tri

28、m(label4.caption) - 1 time = 0 end ifend sub3. mschart控件的使用mschart控件,給圖形統(tǒng)計和報表圖形顯示提供了很好的解決辦法,同時支持web和winform兩種方式,包含英文版,中文版。mschart控件與一個數(shù)據(jù)網(wǎng)格(datagrid對象)關(guān)聯(lián),該數(shù)據(jù)網(wǎng)格存放了要顯示的數(shù)據(jù),數(shù)據(jù)網(wǎng)格也可以包含用于圖表中標(biāo)識系列或類別的標(biāo)簽。圖表應(yīng)用程序設(shè)計者在數(shù)據(jù)網(wǎng)格中插入數(shù)據(jù)或從報表或矩陣中輸入數(shù)據(jù).在【成績統(tǒng)計】窗體上繪制一個mschart1控件,使用默認(rèn)設(shè)置。通過設(shè)置mschart1控件的行值和列值可以實現(xiàn)成績統(tǒng)計,其代碼如下所示:privat

29、e sub cboquery_click()成績統(tǒng)計操作 dim record as double dim index1 as integer dim ss(1 to 4, 1 to 2) dim number(1 to 4) as integer 保存各個等級分?jǐn)?shù)的人數(shù) dim chart(1 to 4) as string 保存圖表的列名 dim sum as double 保存所有參加考試的人總分?jǐn)?shù) dim stu as integer 保存參加考試的人數(shù) 初始化數(shù)組 for index = 1 to 4 number(index) = 0 next index 為圖表列值賦值 char

30、t(1) = 60分以下人數(shù) chart(2) = 6075分人數(shù) chart(3) = 7590分人數(shù) chart(4) = 90分以上人數(shù) 為變量賦初值 sum = 0 stu = 0 查詢成績信息 sql = select * from 成績信息表 where examid= & trim(cboquery.text) & set rs = selectsql(sql, msg) if rs.eof = true then msgbox 信息出錯, vbokonly + vbexclamation, 警告 exit sub else (省略部分代碼) 繪制圖表 for index = 1

31、 to 4 ss(index, 1) = chart(index) for index1 = 2 to 2 ss(index, index1) = number(index) next index1 next index mschart1.chartdata = ssend sub四、系統(tǒng)的設(shè)計實現(xiàn)在進(jìn)行了整體設(shè)計以后,就開始進(jìn)行詳細(xì)的設(shè)計及編碼工作。也就是設(shè)計文件和把他們有機(jī)地組織在一起實現(xiàn)所有功能。根據(jù)系統(tǒng)概要設(shè)計,首先系統(tǒng)要有一個登錄界面,用戶可以從該界面登錄參加考試。管理員也應(yīng)該有一個進(jìn)入管理登錄界面的通道。進(jìn)入開始考試界面,由計算機(jī)隨機(jī)提取試題,顯示出來組成試卷,并開始進(jìn)行計時??忌?/p>

32、再次進(jìn)行考試,答完試題后交卷,進(jìn)入下一個界面??忌峤淮鹁砗?,由計算機(jī)進(jìn)行處理-判卷,得出考試分?jǐn)?shù),顯示出來,并把該生考試記錄存入數(shù)據(jù)庫。(一) 主要窗口的設(shè)計及功能實現(xiàn)1.用戶登錄窗口 登錄時將檢查用戶類型,其用戶類型包括考生、教師、管理人員。如圖4.1所示:圖4.1 用戶登錄窗口2.工作人員管理界面窗口,如圖4.2所示:圖4.2 工作人員管理界面窗口3.考生考試管理界面窗口,如圖4.3所示:圖4.3考生考試管理界面窗口4.教師閱卷管理界面窗口,如圖4.4所示:圖4.4教師閱卷管理界面窗口5.公共模塊為了能夠?qū)?shù)據(jù)庫訪問進(jìn)行集中處理,需要創(chuàng)建一個專門訪問數(shù)據(jù)庫的公共模塊module,保存為f

33、unmain.bas。其代碼如下:public loginsucceeded as boolean 用戶登錄標(biāo)志public userid as string 用戶idpublic userstyle as string 保存用戶類型public connectionstring as string 數(shù)據(jù)庫連接字符串public function getconnstr() as string得到數(shù)據(jù)庫連接字符串,用戶可以在此處設(shè)置連接字符串 connectionstring = provider=sqloledb.1;integrated security=sspi;persist secur

34、ity info=false;initial catalog=網(wǎng)絡(luò)考試系統(tǒng) getconnstr = connectionstring 設(shè)置數(shù)據(jù)庫連接字符串end functionpublic function openconn(byref conn as adodb.connection) as boolean打開數(shù)據(jù)庫連接,連接成功返回true,出錯時返回false set conn = new adodb.connection 出錯處理 on error goto errorhandle conn.open getconnstr openconn = true exit function

35、errorhandle: msgbox 連接數(shù)據(jù)庫失??!請重新連接! openconn = false exit functionend functionpublic sub executesql(byval sql as string, byref msg as string)執(zhí)行sql語句 dim conn as adodb.connection dim stokens() as string 出錯處理 on error goto errorhandle 判斷sql語句 stokens = split(sql) if instr(insert,delete,update, ucase(st

36、okens(0) then 打開數(shù)據(jù)庫連接 if openconn(conn) then conn.execute sql msg = stokens(0) & 操作執(zhí)行成功! end if else msg = sql語句有誤: & sql end iffinally_exit: set rst = nothing set conn = nothing exit suberrorhandle: msg = 執(zhí)行錯誤: & err.description resume finally_exitend subpublic function selectsql(byval sql _as stri

37、ng, byref msg as string) as adodb.recordset執(zhí)行sql語句,返回adodb.recordset dim conn as adodb.connection dim rst as adodb.recordset dim stokens() as string 出錯處理 on error goto errorhandle 判斷sql語句 stokens = split(sql) if instr(select, ucase(stokens(0) then 打開數(shù)據(jù)庫連接 if openconn(conn) then set rst = new adodb.r

38、ecordset rst.cursorlocation = aduseclient rst.open trim$(sql), conn, adopendynamic, adlockoptimistic set selectsql = rst msg = 查詢到 & rst.recordcount & 條記錄! end if else msg = sql語句有誤: & sql end iffinally_exit: set rst = nothing set conn = nothing exit functionerrorhandle: msgstring = 查詢錯誤: & _ err.de

39、scription resume finally_exitend functionpublic function batchselectsql(byval sql _ as string, byref msg as string) as adodb.recordset執(zhí)行sql語句,返回批處理的adodb.recordset dim conn as adodb.connection dim rst as adodb.recordset dim stokens() as string 出錯處理 on error goto errorhandle 判斷sql語句 stokens = split(s

40、ql) if instr(select, ucase(stokens(0) then 打開數(shù)據(jù)庫連接 if openconn(conn) then set rst = new adodb.recordset rst.cursorlocation = aduseclient rst.open trim$(sql), conn, adopendynamic, adlockbatchoptimistic set batchselectsql = rst msg = 查詢到 & rst.recordcount & 條記錄! end if else msg = sql語句有誤: & sql end if

41、finally_exit: set rst = nothing set conn = nothing exit functionerrorhandle: msgstring = 批查詢錯誤: & _ err.description resume finally_exitend function(二) 部分功能的演示1.考生管理界面,如圖4.5所示:圖4.5考生管理界面2.教師管理界面,如圖4.6所示:圖4.6教師管理界面3.系統(tǒng)管理系統(tǒng)管理主要實現(xiàn)管理人員信息、重新登錄和密碼維護(hù)功能。如圖4.7所示:圖4.7 管理人員信息4.密碼維護(hù)負(fù)責(zé)用戶密碼的修改。如圖4.8所示:圖4.8 密碼維護(hù)5.考

42、生考試管理考生考試管理主要實現(xiàn)考生考試和考生成績查詢。如圖4.9、4.10所示:圖4.9 考生考試圖4.10 考生成績查詢五、小結(jié)一個完整的網(wǎng)絡(luò)考試系統(tǒng)已經(jīng)創(chuàng)建完成。在網(wǎng)絡(luò)考試系統(tǒng)中,首先進(jìn)行詳細(xì)的需求分析,劃分系統(tǒng)模塊;然后進(jìn)行數(shù)據(jù)庫的分析設(shè)計,做好數(shù)據(jù)庫準(zhǔn)備工作;最后通過visual basic 6.0進(jìn)行應(yīng)用程序的開發(fā),實現(xiàn)了所需求的系統(tǒng)模塊功能。通過系統(tǒng)的制作和學(xué)習(xí),了解整個考試過程的實現(xiàn),掌握了mschart控件的使用方法。在這次畢業(yè)課題的設(shè)計過程中,不僅僅只是單純的拓寬了我的專業(yè)知識面,更重要的是它提高了我各方面的能力。當(dāng)我在進(jìn)行程序設(shè)計時,忽然涉及到了我從來都不了解的問題,甚至是根本就沒有聽說過的新概念或者是新技術(shù),這時我必須去圖書館或是網(wǎng)上查找與這個問題相關(guān)的內(nèi)容,并求教于我的導(dǎo)師武偉。在這一過程中,慢慢的鍛煉了我在多如大海的各種類型的資料中查詢我所需要的材料的能力。在以前學(xué)習(xí)課程的時間里,我很少會這樣體驗如何去查找自己需要的資料,如今才知道在浩瀚的書海里要想找到我真正需要的東西也并非是一件易事。在這里我要感謝導(dǎo)師武偉對我的幫助,并感謝對我提供各種幫助的同學(xué)們,祝工作順利、學(xué)業(yè)有成。參考文獻(xiàn)1管麗娜 白海波實用visual basic6 教程m .北京:清華大學(xué)出版社,2001.2visual basic 程序設(shè)計教程,劉炳文,許蔓舒清華大學(xué)出版社,2

溫馨提示

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

評論

0/150

提交評論