畢業(yè)論文——基于BS的計算機(jī)等級考試系統(tǒng)的設(shè)計與實現(xiàn)
基于B/S的計算機(jī)等級考試系統(tǒng)的設(shè)計與實現(xiàn)摘 要隨著計算機(jī)技術(shù)的發(fā)展及計算機(jī)的日益普及,基于B/S結(jié)構(gòu)的考試系統(tǒng)與無紙化辦公一樣已成為大勢所趨。論文詳細(xì)論述了一個基于B/S結(jié)構(gòu)的計算機(jī)等級考試系統(tǒng)的設(shè)計過程。軟件采用ASP.NET 2005作開發(fā)平臺,C#作編程語言,SQL Server 2005作數(shù)據(jù)庫管理系統(tǒng),實現(xiàn)了試題管理、試卷生成、在線考試、試卷評判、權(quán)限管理、在線報名及站內(nèi)公告等功能。系統(tǒng)符合全國計算機(jī)等級考試的要求。論文組織如下:首先闡述了該系統(tǒng)的開發(fā)背景、意義;其次介紹了相關(guān)的開發(fā)工具及技術(shù)基礎(chǔ);接著對系統(tǒng)的需求進(jìn)行了分析,并提出了具體的設(shè)計方案和數(shù)據(jù)庫模型;然后展現(xiàn)了整個系統(tǒng)的具體實現(xiàn),包括數(shù)據(jù)庫的設(shè)計和連接,各功能模塊的實現(xiàn);最后對該軟件進(jìn)行了嚴(yán)格的測試。關(guān)鍵詞: B/S結(jié)構(gòu);計算機(jī)等級考試;考試系統(tǒng)The Design and Implementation of Computer Rank Examination System based on B/SAbstractWith the development of the computer technology and the popularization of computers, the examination system based on B/S structure has become the trend of the times the same as the paperless office. The paper discusses in detail the development and design process of a computer rank examination system based on B/S structure. It uses ASP.NET 2005 as the development platform, C# as the programming language, SQL Server 2005 as the database management system, and includes test questions management, examination paper production, online examinations, examination paper judgment, authority management, online enrollment and site notice, etc. It can accord with the requirement of the national computer rank examination.The paper is organized as following: Firstly, analyzes the background and significance; Secondly, introduces the development tools and the foundation of the technology; Thirdly, analyses the demand of the system, gives a specific design project and a database model; Then shows the implementation of the whole system, which includes the design and linkage of the database and the implementation of every module. Finally gives a test of the system.Key words: B/S structure; Computer rank test; Examination system1 引 言目前學(xué)校與社會上的各種考試大都采用傳統(tǒng)的考試方式,在此方式下,組織一次考試至少要經(jīng)過五個步驟,即人工出題、考生考試、人工閱卷、成績評估和試卷分析。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師的工作量將會越來越大,并且其工作將是一件十分煩瑣和非常容易出錯的事情,可以說傳統(tǒng)的考試方式已經(jīng)不能適應(yīng)現(xiàn)代考試的需要。隨著計算機(jī)應(yīng)用的迅猛發(fā)展,網(wǎng)絡(luò)應(yīng)用不斷擴(kuò)大,如遠(yuǎn)程教育和虛擬大學(xué)的出現(xiàn)等等,且這些應(yīng)用正逐步深入到千家萬戶。人們迫切要求利用這些技術(shù)來進(jìn)行在線考試,以減輕人們的工作負(fù)擔(dān)及提高工作效率,與此同時也提高了考試的質(zhì)量,從而使考試更趨于公證、客觀,更加激發(fā)學(xué)生的學(xué)習(xí)興趣。例如目前許多國際著名的計算機(jī)公司所舉辦的各種認(rèn)證考試絕大部分采用這種方式。在線考試模擬系統(tǒng)是現(xiàn)階段研究開發(fā)的一個熱點。它是建立在國際互聯(lián)網(wǎng)上的應(yīng)用系統(tǒng),客戶端的配置可以極為簡單,使考試不受地域的局限。一個完備的在線考試模擬系統(tǒng)可以使用戶在網(wǎng)上學(xué)習(xí)過后及時檢驗自己的學(xué)習(xí)效果,已發(fā)現(xiàn)自己的不足,使得學(xué)習(xí)效率得到很大提高。在線考試模擬系統(tǒng)中題目的生成、試卷的提交、成績的批閱等都可以在網(wǎng)絡(luò)上自動完成。只要形成一套成熟的題庫就可以實現(xiàn)考試的自動化。這樣一來,教師所要做的只是精心設(shè)計題目、維護(hù)題庫,而不是組織考試,從而大大減輕了教師的負(fù)擔(dān),這表明其經(jīng)濟(jì)性是相當(dāng)可觀的。為了適應(yīng)新形勢的發(fā)展,我進(jìn)行了這一系統(tǒng)的初步設(shè)計工作,也可以說是做一個初步的探索,希望它能夠在各類考試中發(fā)揮高效、便捷的作用,把老師從繁重的工作中解脫出來!目前,網(wǎng)絡(luò)應(yīng)用軟件運(yùn)行的模式主要有二類:Client/server模式,Browser/Web模式。前者主要的缺點是維護(hù)、升級較麻煩,后者是近幾年伴隨Internet迅速發(fā)展起來的一種技術(shù),它與客戶/服務(wù)器方式類似,客戶端是一個標(biāo)準(zhǔn)的瀏覽器,服務(wù)器端是Web Server ,而Web Server與數(shù)據(jù)庫和應(yīng)用服務(wù)器的緊密結(jié)合,使得這種模式的應(yīng)用范圍不斷擴(kuò)大,它已不僅僅用于網(wǎng)上查詢,有很多部門的業(yè)務(wù)系統(tǒng)、企業(yè)的MIS系統(tǒng)紛紛采用這種模式,它的主要優(yōu)點是便于擴(kuò)充應(yīng)用、升級維護(hù)簡便。另外,考試系統(tǒng)的軟件也必將不斷的更新;同時軟件產(chǎn)品本身就要經(jīng)過一個不斷自我完善的過程?;谏鲜隹紤],用Browser/Web模式來設(shè)計考試系統(tǒng)比較合適,服務(wù)器端我們采用SQL Server數(shù)據(jù)庫系統(tǒng)和.Net框架來構(gòu)成考試的應(yīng)用服務(wù)系統(tǒng);客戶端采用瀏覽器來完成考試全過程,同時可進(jìn)行遠(yuǎn)程系統(tǒng)維護(hù)和管理。利用網(wǎng)絡(luò)和數(shù)據(jù)庫技術(shù),結(jié)合目前硬件價格普遍下跌與寬帶網(wǎng)大力建設(shè)的有利優(yōu)勢,應(yīng)用微軟.NET技術(shù),我開發(fā)了基于B/S模式的多用戶在線考試模擬系統(tǒng)這一程序。它運(yùn)用方便、操作簡單,效率很高(同時,它要求計算機(jī)配置也很高,尤其是服務(wù)器端)。現(xiàn)階段雖只實現(xiàn)了試卷的客觀題部分,但已具有用戶注冊、用戶個人信息修改、多用戶同時在線考試、試卷生成、時間控制、自動判卷,試題錄入、修改題庫、用戶管理、試卷管理、分?jǐn)?shù)管理等重要功能,也就是說實現(xiàn)了真正的無紙化考試,滿足任何授權(quán)的考生在規(guī)定時間內(nèi)隨地考試并迅速獲得成績,同時也大大減輕了教師出題、出題和判卷等繁重的工作量。2 技術(shù)背景該在線考試系統(tǒng)主要采用Visual C# 2005、SQL Server 2005數(shù)據(jù)庫、JavaScript等技術(shù)和工具,整體設(shè)計遵循軟件工程的方法,經(jīng)過需求分析、總體設(shè)計、文檔和代碼的編制、模塊測試和系統(tǒng)實現(xiàn)幾個階段。下面就對這幾種技術(shù)和方法做一個概述。2.1 B/S結(jié)構(gòu)B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級的成本和工作量,降低了用戶的總體成本(TCO)。以目前的技術(shù)看,局域網(wǎng)建立B/S結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,并通過Internet / Intranet模式下數(shù)據(jù)庫應(yīng)用,相對易于把握、成本也是較低的。它是一次性到位的開發(fā),能實現(xiàn)不同的人員,從不同的地點,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)訪問和操作共同的數(shù)據(jù)庫;它能有效地保護(hù)數(shù)據(jù)平臺和管理訪問權(quán)限,服務(wù)器數(shù)據(jù)庫也很安全。特別是在JAVA這樣的跨平臺語言出現(xiàn)之后,B/S架構(gòu)管理軟件更是方便、快捷、高效。2.2 開發(fā)工具簡介2.2.1 Visual C# 2005簡介Visual Studio 是一套完整的開發(fā)工具集,用于生成 ASP.NET Web 應(yīng)用程序、XML Web Services、桌面應(yīng)用程序和移動應(yīng)用程序。Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成開發(fā)環(huán)境 (IDE),利用此 IDE 可以共享工具且有助于創(chuàng)建混合語言解決方案。另外,這些語言利用了 .NET Framework 的功能,通過此框架可使用簡化 ASP Web 應(yīng)用程序和 XML Web Services 開發(fā)的關(guān)鍵技術(shù)。Microsoft Visual C# 2005(讀作 C sharp)是一種編程語言,它是為生成在 .NET Framework 上運(yùn)行的多種應(yīng)用程序而設(shè)計的。C# 簡單、功能強(qiáng)大、類型安全,而且是面向?qū)ο蟮?。C# 憑借它的許多創(chuàng)新,在保持 C 樣式語言的表示形式和優(yōu)美的同時,實現(xiàn)了應(yīng)用程序的快速開發(fā)。Visual Studio 支持 Visual C#,這是通過功能齊全的代碼編輯器、項目模板、設(shè)計器、代碼向?qū)?、功能?qiáng)大且易于使用的調(diào)試器以及其他工具實現(xiàn)的。通過.NET Framework 類庫,可以訪問多種操作系統(tǒng)服務(wù)和其他有用的精心設(shè)計的類,這些類可顯著加快開發(fā)周期。2.2.2 SQL Sever 2005簡介SQL Server 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),是Microsoft推出新一代數(shù)據(jù)管理與分析軟件。SQL Server 是一個全面的、集成的、端到端的數(shù)據(jù)解決方案,它為企業(yè)中的用戶提供了一個安全、可靠和高效的平臺用于企業(yè)數(shù)據(jù)管理和商業(yè)智能應(yīng)用。SQL Server 是一個全面的、集成的、端到端的數(shù)據(jù)解決方案,它為企業(yè)中的用戶提供了一個安全、可靠和高效的平臺用于企業(yè)數(shù)據(jù)管理和商業(yè)智能應(yīng)用。SQL Server 2005 為IT專家和信息工作者帶來了強(qiáng)大的、熟悉的工具,同時減少了在從移動設(shè)備到企業(yè)數(shù)據(jù)系統(tǒng)的多平臺上創(chuàng)建、部署、管理及使用企業(yè)數(shù)據(jù)和分析應(yīng)用程序的復(fù)雜度。 通過全面的功能集、和現(xiàn)有系統(tǒng)的集成性、以及對日常任務(wù)的自動化管理能力,SQL Server 2005 為不同規(guī)模的企業(yè)提供了一個完整的數(shù)據(jù)解決方案。SQL Server 數(shù)據(jù)平臺包括如下工具:關(guān)系型數(shù)據(jù)庫、復(fù)制服務(wù)、通知服務(wù)、集成服務(wù)、分析服務(wù)、報表服務(wù)、管理工具、開發(fā)工具。 SQL Server 2005 數(shù)據(jù)平臺為不同規(guī)模的組織提供了如下好處:充分利用數(shù)據(jù)資產(chǎn)、提高生產(chǎn)力、減少IT復(fù)雜度、更低的總體擁有成本 (TCO)。3系統(tǒng)分析3.1需求分析3.1.1系統(tǒng)需要解決的主要問題因為考試是有特定的對象的,所以考生在進(jìn)入該系統(tǒng)前應(yīng)該進(jìn)行在線報名。報名時填寫相應(yīng)的個人信息(如身份證號、報考科目等),報名后到相關(guān)部門進(jìn)行交費(fèi)。由管理員進(jìn)行審核后,考生進(jìn)入考試系統(tǒng),根據(jù)報名時選擇的考試科目,參加相應(yīng)的考試。鑒于計算機(jī)等級考試為全國性統(tǒng)一考試,考試時間有相應(yīng)的規(guī)定。因此要對登錄了考試系統(tǒng)進(jìn)行參考的用戶進(jìn)行考試時間判斷,避免在非考試時段參加考試。另外,系統(tǒng)還應(yīng)該對考試時間進(jìn)行控制,時間到了會要求考試者交卷。在考試過程中要防止考生作弊,要禁止避免某些按鍵(如ALT、F5等)的操作??荚囌哌x擇答案提交后,應(yīng)該由計算機(jī)自動判卷,得到成績先保存,在閱卷人審核后在考生信息頁面顯示出來??荚囃戤吅?,系統(tǒng)關(guān)閉考試頁面,回到考試前頁面。3.1.2系統(tǒng)應(yīng)該具備的基本功能1試題管理:管理員利用賬號和密碼成功登錄以后,進(jìn)入管理頁面,管理員可以通過系統(tǒng)做的手動添加試題頁面自己手動添加試題,并對相關(guān)信息進(jìn)行添加、修改以及刪除。2試卷生成:事先設(shè)定好考試題目數(shù)量,考試日期,分?jǐn)?shù)等信息。3在線考試:考生根據(jù)準(zhǔn)考證號和密碼成功登錄后,進(jìn)入考試界面。考生有開始考試,提交試卷,查詢成績權(quán)限。考生根據(jù)報名時選擇的考試科目,在規(guī)定時間段內(nèi)參加相應(yīng)的考試,點擊開始考試后,進(jìn)行考試界面,并要防止考生刷新及點擊右鍵等操作,對考試時間計時,考試時間到,系統(tǒng)強(qiáng)制提交試卷。4試卷評判:主、客觀題目均事先由系統(tǒng)自動判斷,主觀題目閱卷人登陸后,可以根據(jù)情況手工判卷并做出相應(yīng)的分?jǐn)?shù)修改。5權(quán)限管理:管理員擁有除閱卷外的所有權(quán)限,管理員根據(jù)賬號和密碼成功登錄后,可以對教師和考生的信息、公告、試題、試卷等進(jìn)行管理。6在線報名:考生通過在線報名頁面,獲取系統(tǒng)自動分配的準(zhǔn)考證號,添加相應(yīng)的考生信息(包括身份證、性別、考試級別以及相應(yīng)的科目)完成報名。在相關(guān)部門交費(fèi)后,由管理員審核成功后獲取考試資格。7站內(nèi)公告:發(fā)布計算機(jī)等級考試的相關(guān)信息,如考試要求、時間等。管理員通過登錄進(jìn)行相關(guān)的添加、修改和刪除。3.2可行性分析3.2.1技術(shù)可行性分析該考試系統(tǒng)的技術(shù)可行性,可以從硬件(包括外圍設(shè)備)的性能要求、軟件的性能要求(包括操作系統(tǒng)、程序設(shè)計、語言、軟件包、數(shù)據(jù)庫管理系統(tǒng)及各種軟件工具)、能源及環(huán)境條件、輔助設(shè)備及備品配件條件幾個方面去考慮。計算機(jī)硬件要求:CPU:奔騰1.0GHz以上內(nèi)存:256MB以上顯示卡:顯存16M及以上硬盤:2GB以上剩余磁盤空間驅(qū)動器:8倍速CD-ROM以上 高分辨率(1024*768)彩色顯示器軟件要求:WINDOWS操作系統(tǒng)或XP操作系統(tǒng),.Net 2005和Microsoft SQL Server2005就目前使用的開發(fā)技術(shù)來說建議系統(tǒng)的功能目標(biāo)應(yīng)該能夠達(dá)到;利用現(xiàn)有的技術(shù)在規(guī)定的期限內(nèi)開發(fā)工作基本能夠完成。3.2.2 經(jīng)濟(jì)可行性分析經(jīng)濟(jì)可行性分析主要是對開發(fā)項目的成本與效益做出評估,即分析新系統(tǒng)所帶來的經(jīng)濟(jì)效益是否超過開發(fā)和維護(hù)網(wǎng)站所需要的費(fèi)用。用戶在使用該系統(tǒng)后只需花一定資金購買一部分計算機(jī)與軟件就能實現(xiàn)。3.2.3 社會因素方面的可行性分析本系統(tǒng)僅用于全國計算機(jī)等級考試,無法律和政策方面的限制。4總體設(shè)計4.1 基本設(shè)計思想及流程圖基本設(shè)計思想:在用戶認(rèn)證之后,系統(tǒng)根據(jù)考生的資料隨機(jī)的從試題庫中選取試卷,在考生做完試卷且交卷之后,將會自動在服務(wù)器端保存考的答案。要求能保證考生順利的作答以及考試的保密和安全性。圖1 操作流程圖4.2 系統(tǒng)功能結(jié)構(gòu)圖根據(jù)需求分析,在線考試系統(tǒng)的結(jié)構(gòu)圖如下:圖2 系統(tǒng)功能結(jié)構(gòu)圖4.3 系統(tǒng)架構(gòu)本系統(tǒng)采用ASP.NET應(yīng)用程序典型的三層架構(gòu)模式,其結(jié)構(gòu)如圖1所示圖3 三層架構(gòu)模式結(jié)構(gòu)圖各層功能介紹:數(shù)據(jù)訪問層:系統(tǒng)最低層,提供數(shù)據(jù)庫操作的接口和存儲本系統(tǒng)所有數(shù)據(jù);業(yè)務(wù)邏輯層:處于頁面展示層與數(shù)據(jù)訪問層之間,與數(shù)據(jù)庫直接關(guān)聯(lián),同時又為頁面展示層服務(wù)。實現(xiàn)業(yè)務(wù)的具體邏輯,如考生報名、登錄參考、試卷試題管理等;頁面展示層:系統(tǒng)最外層,將業(yè)務(wù)功能在瀏覽器上顯示出來,用戶通過界面對系統(tǒng)進(jìn)行操作。4.3.1數(shù)據(jù)訪問層數(shù)據(jù)訪問層完成所有與數(shù)據(jù)庫交互的工作,本系統(tǒng)只包括一個類SQLHelper。這個類的功能是向數(shù)據(jù)庫提交SQL語句,并返回相應(yīng)的操作結(jié)果。配置數(shù)據(jù)庫連接:在Web.config文件中指定數(shù)據(jù)庫連接字符串配置信息,代碼如下SQLHelper類成員:表1 SQLHelper類成員說明屬性/方法功能說明Conn保護(hù)變量,數(shù)據(jù)庫連接SqlConnection對象ConnStr保護(hù)變量,數(shù)據(jù)庫連接串Open連接數(shù)據(jù)庫Close關(guān)閉數(shù)據(jù)庫連接Dispose釋放數(shù)據(jù)庫連接資源ExecutSQL執(zhí)行一條非查詢(Select)類型的SQL命令GetDataRow根據(jù)輸入SQL命令,獲取一個DataRow對象GetDataSet根據(jù)輸入SQL命令,獲取一個DataSet對象GetDataReader根據(jù)SQL命令,獲取一個DataReader對象Insert利用一個Hash表存儲數(shù)據(jù),向數(shù)據(jù)庫插入數(shù)據(jù)Update利用一個Hash表存儲數(shù)據(jù),修改數(shù)據(jù)庫中的數(shù)據(jù)4.3.2業(yè)務(wù)邏輯層科目類Category.cs公告類News.cs試卷類Paper.cs試題類Question.cs分?jǐn)?shù)類Score.cs用戶類User.cs4.3.3頁面顯示層公告管理模塊News*.aspx用戶管理模塊User*.aspx試題管理模塊Question*.aspx試卷管理模塊Paper*.aspx試卷評分模塊Score*.aspx頁面首面Default.aspx考試頁面Exam.aspx注冊頁面Register.aspx公告信息頁面NewsInfo.aspx4.4數(shù)據(jù)庫的設(shè)計4.4.1 創(chuàng)建數(shù)據(jù)庫首先在SQL Server 2005的管理器中創(chuàng)建一個名為ExamDB的數(shù)據(jù)庫。4.4.2 創(chuàng)建表數(shù)據(jù)庫ExamDB包含以下6個表:考試科目表(Exam_Category)、用戶信息表(Exam_Member)、站內(nèi)公告表(Exam_News)、試卷信息表(Exam_Paper)、試題信息表(Exam_Question)、分?jǐn)?shù)信息表(Exam_Score)。下面分別介紹這些表的結(jié)構(gòu)。表2 考試科目表(Exam_Category)編號字段名稱數(shù)據(jù)結(jié)構(gòu)長度說明1IDint4考試科目序號2ExamLevelint4考試級別3ExamSubjectnvarchar20考試科目名稱表3 分?jǐn)?shù)信息表(Exam_Score)編號字段名稱數(shù)據(jù)結(jié)構(gòu)長度說明1IDint4試題序號2UserIDnvarchar7考試科目序號3TestIDint4試題題目4StartTimedatetime8考試開始時間5EndTimedatetime8考試結(jié)束時間6TotalScoreint4考試總成績7sUserAnswerNtext用戶單選答案8sRightAnswerNtext單選標(biāo)準(zhǔn)答案D9bUserAnswerNtext用戶填空答案10bRightAnswerNtext填空標(biāo)準(zhǔn)答案11IsCheckBit1成績是否審核12IsExamedBit1是否參加考試表4 站內(nèi)公告表(Exam_News)編號字段名稱數(shù)據(jù)結(jié)構(gòu)長度說明1IDint4公告序號2Titlentext公告標(biāo)題3Textntext公告內(nèi)容4Timedatetime8發(fā)布時間表5 用戶信息表(Exam_Member)編號字段名稱數(shù)據(jù)結(jié)構(gòu)長度說明1UserIDnvarchar7考生準(zhǔn)考證號/登錄名2CategoryIDInt4考試科目序號3UserPwdnvarchar50用戶登錄密碼4UserIDCardnvarchar18用戶身份證號5UserNamenvarchar50用戶姓名6UserSexnvarchar2用戶性別(男,女)7UserEmailnvarchar50用戶電子郵箱8UserTypeint4用戶類型(1考生,2閱卷人,3管理員)9IsCheckbit1考生審核(0未審核,1審核)表6 試卷信息表(Exam_Paper)編號字段名稱數(shù)據(jù)結(jié)構(gòu)長度說明1TestIDInt4試卷序號2CategoryIDInt4考試科目序號3SingleCountInt4單選題題數(shù)4SingleScoreInt4單選題分值5BlankCountInt4填空題題數(shù)6BlankScoreInt4填空題分值7StartTimedatetime8考試開始時間8EndTimedatetime8考試結(jié)束時間9TestTimeInt4考試總時間表7 試題信息表(Exam_Question)編號字段名稱數(shù)據(jù)結(jié)構(gòu)長度說明1IDInt4試題序號2CategoryIDInt4考試科目序號3QuestionDescNtext試題題目4QuestionTypeInt4試題類型(1單選題,2填空題)5OptionANtext單選備選答案A6OptionBNtext單選備選答案B7OptionCNtext單選備選答案C8OptionDNtext單選備選答案D9AnswerNtext填空備選答案4.4.3關(guān)系設(shè)計圖4 數(shù)據(jù)庫關(guān)系設(shè)計圖4.5數(shù)據(jù)訪問接口及通用組件實現(xiàn)對數(shù)據(jù)訪問的一些輔助和包裝及某些通用功能,包括三個類。4.5.1 獲取安全數(shù)據(jù)(GetSafeData)包含一系列從DataRow對象中,安全獲取數(shù)據(jù)的靜態(tài)方法。表8 GetSafeData類成員說明屬性/方法功能說明ValidateDataRow_S從DataRow中獲取字符串,如果不存在,返回System.String.EmptyValidateDataRow_N從DataRow中獲取整數(shù),如果不存在,返回System.Int32.MinValueValidateDataRow_T從DataRow中獲取浮點數(shù),如果不存在,返回System. Double.MinValueValidateDataRow_F從DataRow中獲取時間數(shù)據(jù),如果不存在,返回System. DateTime.MinValue4.5.2 構(gòu)造SQL語句(SQLString)GetQuotedString:將字符串加上SQL語句中常用的單引號“”;GetConditionClause:構(gòu)造SQL語句中的條件子句,這個方法接收一個哈希表參數(shù),利用哈希表中的每一項都是一個DictionaryEntry對象的對特征,構(gòu)造SQL語句中的條件子句。4.5.3 字符串加密(Security)對一字符串進(jìn)行MD5加密操作,保證數(shù)據(jù)的安全。5網(wǎng)站后臺主要功能模塊5.1 用戶登錄模塊設(shè)計5.1.1前臺頁面設(shè)計圖5 管理員/閱卷人登錄模塊管理員/閱卷人輸入賬號及密碼,系統(tǒng)查詢數(shù)據(jù)庫,自動配對用戶類型,進(jìn)入相應(yīng)的管理頁面。如果出現(xiàn)錯誤,系統(tǒng)會彈出相應(yīng)的提示信息。5.1.2后臺功能代碼單擊登錄按鈕事件: protected void btnOK_Click(object sender, EventArgs e) string UserName = txtName.Text; string UserPwd = Security.Encrypt(txtPwd.Text); User user = new User(); user.LoadNameData(UserName); if (user.Exist)/如果用戶存在 if (user.UserPwd = UserPwd)/如果密碼,轉(zhuǎn)入留言列表頁面 Session.Add(UserID, user.UserID); Session.Add(UserIDCard, user.UserIDCard); Session.Add(UserName, user.UserName); if (user.UserType = 3) SessionIsAdmin = Admin; Response.Redirect(Admin/AdminInfo.aspx); else SessionIsAdmin = Teacher; Response.Redirect(Teacher/Default.aspx); else/如果密碼錯誤,給出提示,光標(biāo)停留在密碼框中 Response.Write(alert(密碼錯誤,請重新輸入密碼!); txtPwd.Focus(); else/如果用戶不存在 Response.Write(alert(對不起,用戶不存在!); 5.2 后臺管理頁面設(shè)計管理頁面只允許具有管理員權(quán)限的人員訪問,因此在每個管理頁面都有相關(guān)的權(quán)限判斷,以保證系統(tǒng)的安全使用。if (SessionIsAdmin = null) Response.Write(alert(管理員未登錄,非法請求!);); Response.Write(window.location.href=./AdminLogin.aspx;);5.2.1人員管理頁面設(shè)計圖6 人員管理此頁面用于管理所有用戶,包括考生、閱卷人和管理員。通過用戶類型下拉框選擇相應(yīng)類型的用戶,在GridView中會顯示出用戶詳細(xì)的信息。當(dāng)考生報名成功后,前來交費(fèi)時,管理員可以通過審核方式來確認(rèn)考生的參考資格。管理員也可以刪除一些無效用戶。審核事件代碼: foreach (string UserID in selectedUsers) Hashtable ht = new Hashtable(); ht.Add(IsCheck, 1); (new User().Check(ht, UserID); Response.Write(alert(審核考生成功!);); Query();刪除事件代碼: foreach (string UserID in selectedUsers) User.Delete(UserID); Query();5.2.2試題管理頁面設(shè)計圖7 試題管理此頁面用于管理所有試題信息。通過考試科目下拉框選擇相應(yīng)的科目,在GridView中會顯示出試題的詳細(xì)信息,包括題干、備選答案和正確答案。管理員可以對試題進(jìn)行編輯、刪除操作。操作實現(xiàn)代碼: protected void gvQuestion_RowCommand(object sender, GridViewCommandEventArgs e) int index = Convert.ToInt32(e.CommandArgument); /待處理的行下標(biāo) int questionId = -1; switch (e.CommandName) /修改 case Edit: questionId = Convert.ToInt32(gvQuestion.Rowsindex.Cells0.Text); Response.Redirect(QuestionAddEdit.aspx?id= + questionId); break; /刪除 case Delete: questionId = Convert.ToInt32(gvQuestion.Rowsindex.Cells0.Text); Question question = new Question(); question.GetSingleQuestion(questionId); question.Delete(); Response.Write(alert(刪除成功!);); gvBind(); break; default: break; 5.2.3公告管理頁面設(shè)計圖8 公告管理此頁面用于管理網(wǎng)站公告信息。通過GridView顯示出公告的詳細(xì)信息,包括編號、標(biāo)題和時間。管理員可以通過詳細(xì)信息查看公告內(nèi)容,也可以對公告進(jìn)行編輯、刪除操作。GridView數(shù)據(jù)綁定: private void InitData() News news = new News(); DataSet ds = news.GetNews(); gvNewsList.DataSource = ds; gvNewsList.DataBind(); 操作代碼: protected void gvNewsList_RowCommand(object sender, GridViewCommandEventArgs e) int index = Convert.ToInt32(e.CommandArgument); /待處理的行下標(biāo) int newsId = -1; switch (e.CommandName) /修改 case Edit: newsId = Convert.ToInt32(gvNewsList.Rowsindex.Cells0.Text); Response.Redirect(NewsAddEdit.aspx?id= + newsId); break; /刪除 case Delete: newsId = Convert.ToInt32(gvNewsList.Rowsindex.Cells0.Text); News news = new News(); news.GetSingleNews(newsId); news.Delete(); Response.Write(alert(刪除成功!);); InitData(); break; default: break; 5.2.4密碼管理頁面設(shè)計圖9 管理員密碼修改此頁面用于管理員信息修改。當(dāng)管理員名及原密碼均正確時,可以對管理員的相關(guān)信息進(jìn)行修改操作。否則將無法修改相關(guān)信息。修改事件代碼: if ( UserOldPwd = user.UserPwd ) Hashtable ht = new Hashtable(); ht.Add(UserPwd, SqlStringConstructor.GetQuotedString(UserPwd); ht.Add(UserIDCard, SqlStringConstructor.GetQuotedString(txtIDCard.Text); user.Update(ht); Response.Write(alert(更新數(shù)據(jù)成功,請重新登錄!); Session.Abandon(); Response.Write(window.location.href=./AdminLogin.aspx;); else Response.Write(alert(原密碼錯誤!); 5.2.5試卷成績信息管理頁面設(shè)計圖10 試卷成績信息此頁面用于管理考生考試信息。在GridView中顯示出了所有考生的考試信息,包括考試科目、總成績和是否通過閱卷人審核。閱卷人可以查看考試的詳細(xì)信息,并進(jìn)行進(jìn)一步地操作,如圖11所示。單擊審核事件: foreach ( string ID in selectedIDs ) Hashtable ht = new Hashtable(); ht.Add(IsCheck, 1); (new Score().Check(ht, ID); Response.Write(alert(審核試卷成功!);); Query();圖11 試卷成績信息修正此頁面用于顯示考試的詳細(xì)信息。閱卷人可以查看到考生考試的具體信息,包括考試時間、成績以及每一道題的答案。閱卷人可以根據(jù)考生的答題情況,對考生分?jǐn)?shù)進(jìn)行相應(yīng)的修改。單擊修正事件: protected void btnModify_Click(object sender, EventArgs e) if (txtModifyScore.Text != ) Score score = new Score(); score.ID = Convert.ToInt32(Request.QueryStringid); Hashtable ht = new Hashtable(); ht.Add(TotalScore, SqlStringConstructor.GetQuotedString(txtModifyScore.Text); ht.Add(IsCheck, 1); score.Update(ht); Response.Write(試卷得分修改成功!); else Response.Write(alert(請輸入實際得分!);); 6網(wǎng)站前臺主要功能模塊6.1網(wǎng)站公告頁面設(shè)計圖12 網(wǎng)站公告模塊數(shù)據(jù)綁定: private void BindNewsData() /定義獲取數(shù)據(jù)的類 News news = new News(); DataSet ds = news.GetTop10News(); /設(shè)定控件的數(shù)據(jù)源 gvNews.DataSource = ds; /綁定控件的數(shù)據(jù) gvNews.DataBind(); 6.2考生在線報名頁面設(shè)計圖13 網(wǎng)上報名此頁面用于考生在線注冊。進(jìn)入頁面后,系統(tǒng)會自動生成準(zhǔn)考證號??忌梢訡heck自己的身份證是否已經(jīng)報名,以免重復(fù)報名。如果此考生已經(jīng)報名,或其它信息填寫錯誤,系統(tǒng)會給出相應(yīng)的提示信息。單擊報名按鈕事件 protected void btnReg_Click(object sender, EventArgs e) string userIDCard = txtIDCard.Text; string userPwd = Security.Encrypt(txtPwd.Text); if ( !(new User().HasUser(userIDCard) ) Hashtable ht = new Hashtable(); ht.Add(UserID, SqlStringConstructor.GetQuotedString(lblID.Text); ht.Add(UserIDCard, SqlStringConstructor.GetQuotedString(txtIDCard.Text); ht.Add(UserName, SqlStringConstructor.GetQuotedString(txtName.Text); ht.Add(UserPwd, SqlStringConstructor.GetQuotedString(userPwd); ht.Add(CategoryID, SqlStringConstructor.GetQuotedString(ddlSubject.SelectedValue.ToString(); ht.Add(UserEmail, SqlStringConstructor.GetQuotedString(txtEmail.Text); if ( rbMale.Checked ) ht.Add(UserSex, SqlStringConstructor.GetQuotedString(rbMale.Text); else ht.Add(UserSex, SqlStringConstructor.GetQuotedString(rbFemale.Text); User user = new User(); user.Add(ht); Session.Add(user_id, user.UserID); Response.Write(alert(報名成功!請到相關(guān)部門交費(fèi)完成報名); Response.Write(window.close(); else Response.Write(alert(同一身份證只能報考一科!); txtIDCard.Text = ; 6.3考生登錄頁面設(shè)計圖14 考生登錄此頁面用于考生考試登錄??忌顚懻_的準(zhǔn)考證號、密碼及驗證碼后,會進(jìn)入考試頁面。如果輸入驗證碼不正確,或其它信息填寫錯誤,系統(tǒng)會給出相應(yīng)的提示信息。6.4 考生在線考試頁面設(shè)計圖15 在線考試此頁面為考生參考主頁面。為了方便考生掌握考試時間,頁面上有計時器??荚嚂r間一到,系統(tǒng)會自動提交試卷并保存相關(guān)答題信息,防止考生超時答卷。為了避免考生作弊,系統(tǒng)還禁用了相關(guān)按鍵,如F5、Alt、Ctrl + C等,以保證考試的公平公正??荚囉嫊r代碼(JavaScript): /計時函數(shù) 防考試作弊代碼(JScript):function document_onkeydown() try/禁止altif(event.altKey=true)ShowMessageBox(不可以用特殊功能鍵!);event.altKey=fals
收藏
編號:118210701
類型:共享資源
大?。?span id="ievbyqtbdd" class="font-tahoma">671.50KB
格式:DOC
上傳時間:2022-07-11
20
積分
- 關(guān) 鍵 詞:
-
的計算機(jī)等級考試
系統(tǒng)的設(shè)計與實現(xiàn)
考試系統(tǒng)的設(shè)計與實現(xiàn)
計算機(jī)等級考試系統(tǒng)設(shè)計與實現(xiàn)
計算機(jī)畢業(yè)設(shè)計
計算機(jī)等級考試
系統(tǒng)—計算機(jī)畢業(yè)設(shè)計
系統(tǒng)的設(shè)計和實現(xiàn)
基于BS的計算機(jī)等級考試系統(tǒng)的設(shè)計與實現(xiàn)
- 資源描述:
-
基于B/S的計算機(jī)等級考試系統(tǒng)的設(shè)計與實現(xiàn)摘 要隨著計算機(jī)技術(shù)的發(fā)展及計算機(jī)的日益普及,基于B/S結(jié)構(gòu)的考試系統(tǒng)與無紙化辦公一樣已成為大勢所趨。論文詳細(xì)論述了一個基于B/S結(jié)構(gòu)的計算機(jī)等級考試系統(tǒng)的設(shè)計過程。軟件采用ASP.NET 2005作開發(fā)平臺,C#作編程語言,SQL Server 2005作數(shù)據(jù)庫管理系統(tǒng),實現(xiàn)了試題管理、試卷生成、在線考試、試卷評判、權(quán)限管理、在線報名及站內(nèi)公告等功能。系統(tǒng)符合全國計算機(jī)等級考試的要求。論文組織如下:首先闡述了該系統(tǒng)的開發(fā)背景、意義;其次介紹了相關(guān)的開發(fā)工具及技術(shù)基礎(chǔ);接著對系統(tǒng)的需求進(jìn)行了分析,并提出了具體的設(shè)計方案和數(shù)據(jù)庫模型;然后展現(xiàn)了整個系統(tǒng)的具體實現(xiàn),包括數(shù)據(jù)庫的設(shè)計和連接,各功能模塊的實現(xiàn);最后對該軟件進(jìn)行了嚴(yán)格的測試。關(guān)鍵詞: B/S結(jié)構(gòu);計算機(jī)等級考試;考試系統(tǒng)The Design and Implementation of Computer Rank Examination System based on B/SAbstractWith the development of the computer technology and the popularization of computers, the examination system based on B/S structure has become the trend of the times the same as the paperless office. The paper discusses in detail the development and design process of a computer rank examination system based on B/S structure. It uses ASP.NET 2005 as the development platform, C# as the programming language, SQL Server 2005 as the database management system, and includes test questions management, examination paper production, online examinations, examination paper judgment, authority management, online enrollment and site notice, etc. It can accord with the requirement of the national computer rank examination.The paper is organized as following: Firstly, analyzes the background and significance; Secondly, introduces the development tools and the foundation of the technology; Thirdly, analyses the demand of the system, gives a specific design project and a database model; Then shows the implementation of the whole system, which includes the design and linkage of the database and the implementation of every module. Finally gives a test of the system.Key words: B/S structure; Computer rank test; Examination system1 引 言目前學(xué)校與社會上的各種考試大都采用傳統(tǒng)的考試方式,在此方式下,組織一次考試至少要經(jīng)過五個步驟,即人工出題、考生考試、人工閱卷、成績評估和試卷分析。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師的工作量將會越來越大,并且其工作將是一件十分煩瑣和非常容易出錯的事情,可以說傳統(tǒng)的考試方式已經(jīng)不能適應(yīng)現(xiàn)代考試的需要。隨著計算機(jī)應(yīng)用的迅猛發(fā)展,網(wǎng)絡(luò)應(yīng)用不斷擴(kuò)大,如遠(yuǎn)程教育和虛擬大學(xué)的出現(xiàn)等等,且這些應(yīng)用正逐步深入到千家萬戶。人們迫切要求利用這些技術(shù)來進(jìn)行在線考試,以減輕人們的工作負(fù)擔(dān)及提高工作效率,與此同時也提高了考試的質(zhì)量,從而使考試更趨于公證、客觀,更加激發(fā)學(xué)生的學(xué)習(xí)興趣。例如目前許多國際著名的計算機(jī)公司所舉辦的各種認(rèn)證考試絕大部分采用這種方式。在線考試模擬系統(tǒng)是現(xiàn)階段研究開發(fā)的一個熱點。它是建立在國際互聯(lián)網(wǎng)上的應(yīng)用系統(tǒng),客戶端的配置可以極為簡單,使考試不受地域的局限。一個完備的在線考試模擬系統(tǒng)可以使用戶在網(wǎng)上學(xué)習(xí)過后及時檢驗自己的學(xué)習(xí)效果,已發(fā)現(xiàn)自己的不足,使得學(xué)習(xí)效率得到很大提高。在線考試模擬系統(tǒng)中題目的生成、試卷的提交、成績的批閱等都可以在網(wǎng)絡(luò)上自動完成。只要形成一套成熟的題庫就可以實現(xiàn)考試的自動化。這樣一來,教師所要做的只是精心設(shè)計題目、維護(hù)題庫,而不是組織考試,從而大大減輕了教師的負(fù)擔(dān),這表明其經(jīng)濟(jì)性是相當(dāng)可觀的。為了適應(yīng)新形勢的發(fā)展,我進(jìn)行了這一系統(tǒng)的初步設(shè)計工作,也可以說是做一個初步的探索,希望它能夠在各類考試中發(fā)揮高效、便捷的作用,把老師從繁重的工作中解脫出來!目前,網(wǎng)絡(luò)應(yīng)用軟件運(yùn)行的模式主要有二類:Client/server模式,Browser/Web模式。前者主要的缺點是維護(hù)、升級較麻煩,后者是近幾年伴隨Internet迅速發(fā)展起來的一種技術(shù),它與客戶/服務(wù)器方式類似,客戶端是一個標(biāo)準(zhǔn)的瀏覽器,服務(wù)器端是Web Server ,而Web Server與數(shù)據(jù)庫和應(yīng)用服務(wù)器的緊密結(jié)合,使得這種模式的應(yīng)用范圍不斷擴(kuò)大,它已不僅僅用于網(wǎng)上查詢,有很多部門的業(yè)務(wù)系統(tǒng)、企業(yè)的MIS系統(tǒng)紛紛采用這種模式,它的主要優(yōu)點是便于擴(kuò)充應(yīng)用、升級維護(hù)簡便。另外,考試系統(tǒng)的軟件也必將不斷的更新;同時軟件產(chǎn)品本身就要經(jīng)過一個不斷自我完善的過程?;谏鲜隹紤],用Browser/Web模式來設(shè)計考試系統(tǒng)比較合適,服務(wù)器端我們采用SQL Server數(shù)據(jù)庫系統(tǒng)和.Net框架來構(gòu)成考試的應(yīng)用服務(wù)系統(tǒng);客戶端采用瀏覽器來完成考試全過程,同時可進(jìn)行遠(yuǎn)程系統(tǒng)維護(hù)和管理。利用網(wǎng)絡(luò)和數(shù)據(jù)庫技術(shù),結(jié)合目前硬件價格普遍下跌與寬帶網(wǎng)大力建設(shè)的有利優(yōu)勢,應(yīng)用微軟.NET技術(shù),我開發(fā)了基于B/S模式的多用戶在線考試模擬系統(tǒng)這一程序。它運(yùn)用方便、操作簡單,效率很高(同時,它要求計算機(jī)配置也很高,尤其是服務(wù)器端)。現(xiàn)階段雖只實現(xiàn)了試卷的客觀題部分,但已具有用戶注冊、用戶個人信息修改、多用戶同時在線考試、試卷生成、時間控制、自動判卷,試題錄入、修改題庫、用戶管理、試卷管理、分?jǐn)?shù)管理等重要功能,也就是說實現(xiàn)了真正的無紙化考試,滿足任何授權(quán)的考生在規(guī)定時間內(nèi)隨地考試并迅速獲得成績,同時也大大減輕了教師出題、出題和判卷等繁重的工作量。2 技術(shù)背景該在線考試系統(tǒng)主要采用Visual C# 2005、SQL Server 2005數(shù)據(jù)庫、JavaScript等技術(shù)和工具,整體設(shè)計遵循軟件工程的方法,經(jīng)過需求分析、總體設(shè)計、文檔和代碼的編制、模塊測試和系統(tǒng)實現(xiàn)幾個階段。下面就對這幾種技術(shù)和方法做一個概述。2.1 B/S結(jié)構(gòu)B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級的成本和工作量,降低了用戶的總體成本(TCO)。以目前的技術(shù)看,局域網(wǎng)建立B/S結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,并通過Internet / Intranet模式下數(shù)據(jù)庫應(yīng)用,相對易于把握、成本也是較低的。它是一次性到位的開發(fā),能實現(xiàn)不同的人員,從不同的地點,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)訪問和操作共同的數(shù)據(jù)庫;它能有效地保護(hù)數(shù)據(jù)平臺和管理訪問權(quán)限,服務(wù)器數(shù)據(jù)庫也很安全。特別是在JAVA這樣的跨平臺語言出現(xiàn)之后,B/S架構(gòu)管理軟件更是方便、快捷、高效。2.2 開發(fā)工具簡介2.2.1 Visual C# 2005簡介Visual Studio 是一套完整的開發(fā)工具集,用于生成 ASP.NET Web 應(yīng)用程序、XML Web Services、桌面應(yīng)用程序和移動應(yīng)用程序。Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成開發(fā)環(huán)境 (IDE),利用此 IDE 可以共享工具且有助于創(chuàng)建混合語言解決方案。另外,這些語言利用了 .NET Framework 的功能,通過此框架可使用簡化 ASP Web 應(yīng)用程序和 XML Web Services 開發(fā)的關(guān)鍵技術(shù)。Microsoft Visual C# 2005(讀作 C sharp)是一種編程語言,它是為生成在 .NET Framework 上運(yùn)行的多種應(yīng)用程序而設(shè)計的。C# 簡單、功能強(qiáng)大、類型安全,而且是面向?qū)ο蟮摹# 憑借它的許多創(chuàng)新,在保持 C 樣式語言的表示形式和優(yōu)美的同時,實現(xiàn)了應(yīng)用程序的快速開發(fā)。Visual Studio 支持 Visual C#,這是通過功能齊全的代碼編輯器、項目模板、設(shè)計器、代碼向?qū)?、功能?qiáng)大且易于使用的調(diào)試器以及其他工具實現(xiàn)的。通過.NET Framework 類庫,可以訪問多種操作系統(tǒng)服務(wù)和其他有用的精心設(shè)計的類,這些類可顯著加快開發(fā)周期。2.2.2 SQL Sever 2005簡介SQL Server 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),是Microsoft推出新一代數(shù)據(jù)管理與分析軟件。SQL Server 是一個全面的、集成的、端到端的數(shù)據(jù)解決方案,它為企業(yè)中的用戶提供了一個安全、可靠和高效的平臺用于企業(yè)數(shù)據(jù)管理和商業(yè)智能應(yīng)用。SQL Server 是一個全面的、集成的、端到端的數(shù)據(jù)解決方案,它為企業(yè)中的用戶提供了一個安全、可靠和高效的平臺用于企業(yè)數(shù)據(jù)管理和商業(yè)智能應(yīng)用。SQL Server 2005 為IT專家和信息工作者帶來了強(qiáng)大的、熟悉的工具,同時減少了在從移動設(shè)備到企業(yè)數(shù)據(jù)系統(tǒng)的多平臺上創(chuàng)建、部署、管理及使用企業(yè)數(shù)據(jù)和分析應(yīng)用程序的復(fù)雜度。 通過全面的功能集、和現(xiàn)有系統(tǒng)的集成性、以及對日常任務(wù)的自動化管理能力,SQL Server 2005 為不同規(guī)模的企業(yè)提供了一個完整的數(shù)據(jù)解決方案。SQL Server 數(shù)據(jù)平臺包括如下工具:關(guān)系型數(shù)據(jù)庫、復(fù)制服務(wù)、通知服務(wù)、集成服務(wù)、分析服務(wù)、報表服務(wù)、管理工具、開發(fā)工具。 SQL Server 2005 數(shù)據(jù)平臺為不同規(guī)模的組織提供了如下好處:充分利用數(shù)據(jù)資產(chǎn)、提高生產(chǎn)力、減少IT復(fù)雜度、更低的總體擁有成本 (TCO)。3系統(tǒng)分析3.1需求分析3.1.1系統(tǒng)需要解決的主要問題因為考試是有特定的對象的,所以考生在進(jìn)入該系統(tǒng)前應(yīng)該進(jìn)行在線報名。報名時填寫相應(yīng)的個人信息(如身份證號、報考科目等),報名后到相關(guān)部門進(jìn)行交費(fèi)。由管理員進(jìn)行審核后,考生進(jìn)入考試系統(tǒng),根據(jù)報名時選擇的考試科目,參加相應(yīng)的考試。鑒于計算機(jī)等級考試為全國性統(tǒng)一考試,考試時間有相應(yīng)的規(guī)定。因此要對登錄了考試系統(tǒng)進(jìn)行參考的用戶進(jìn)行考試時間判斷,避免在非考試時段參加考試。另外,系統(tǒng)還應(yīng)該對考試時間進(jìn)行控制,時間到了會要求考試者交卷。在考試過程中要防止考生作弊,要禁止避免某些按鍵(如ALT、F5等)的操作??荚囌哌x擇答案提交后,應(yīng)該由計算機(jī)自動判卷,得到成績先保存,在閱卷人審核后在考生信息頁面顯示出來??荚囃戤吅螅到y(tǒng)關(guān)閉考試頁面,回到考試前頁面。3.1.2系統(tǒng)應(yīng)該具備的基本功能1試題管理:管理員利用賬號和密碼成功登錄以后,進(jìn)入管理頁面,管理員可以通過系統(tǒng)做的手動添加試題頁面自己手動添加試題,并對相關(guān)信息進(jìn)行添加、修改以及刪除。2試卷生成:事先設(shè)定好考試題目數(shù)量,考試日期,分?jǐn)?shù)等信息。3在線考試:考生根據(jù)準(zhǔn)考證號和密碼成功登錄后,進(jìn)入考試界面。考生有開始考試,提交試卷,查詢成績權(quán)限??忌鶕?jù)報名時選擇的考試科目,在規(guī)定時間段內(nèi)參加相應(yīng)的考試,點擊開始考試后,進(jìn)行考試界面,并要防止考生刷新及點擊右鍵等操作,對考試時間計時,考試時間到,系統(tǒng)強(qiáng)制提交試卷。4試卷評判:主、客觀題目均事先由系統(tǒng)自動判斷,主觀題目閱卷人登陸后,可以根據(jù)情況手工判卷并做出相應(yīng)的分?jǐn)?shù)修改。5權(quán)限管理:管理員擁有除閱卷外的所有權(quán)限,管理員根據(jù)賬號和密碼成功登錄后,可以對教師和考生的信息、公告、試題、試卷等進(jìn)行管理。6在線報名:考生通過在線報名頁面,獲取系統(tǒng)自動分配的準(zhǔn)考證號,添加相應(yīng)的考生信息(包括身份證、性別、考試級別以及相應(yīng)的科目)完成報名。在相關(guān)部門交費(fèi)后,由管理員審核成功后獲取考試資格。7站內(nèi)公告:發(fā)布計算機(jī)等級考試的相關(guān)信息,如考試要求、時間等。管理員通過登錄進(jìn)行相關(guān)的添加、修改和刪除。3.2可行性分析3.2.1技術(shù)可行性分析該考試系統(tǒng)的技術(shù)可行性,可以從硬件(包括外圍設(shè)備)的性能要求、軟件的性能要求(包括操作系統(tǒng)、程序設(shè)計、語言、軟件包、數(shù)據(jù)庫管理系統(tǒng)及各種軟件工具)、能源及環(huán)境條件、輔助設(shè)備及備品配件條件幾個方面去考慮。計算機(jī)硬件要求:CPU:奔騰1.0GHz以上內(nèi)存:256MB以上顯示卡:顯存16M及以上硬盤:2GB以上剩余磁盤空間驅(qū)動器:8倍速CD-ROM以上 高分辨率(1024*768)彩色顯示器軟件要求:WINDOWS操作系統(tǒng)或XP操作系統(tǒng),.Net 2005和Microsoft SQL Server2005就目前使用的開發(fā)技術(shù)來說建議系統(tǒng)的功能目標(biāo)應(yīng)該能夠達(dá)到;利用現(xiàn)有的技術(shù)在規(guī)定的期限內(nèi)開發(fā)工作基本能夠完成。3.2.2 經(jīng)濟(jì)可行性分析經(jīng)濟(jì)可行性分析主要是對開發(fā)項目的成本與效益做出評估,即分析新系統(tǒng)所帶來的經(jīng)濟(jì)效益是否超過開發(fā)和維護(hù)網(wǎng)站所需要的費(fèi)用。用戶在使用該系統(tǒng)后只需花一定資金購買一部分計算機(jī)與軟件就能實現(xiàn)。3.2.3 社會因素方面的可行性分析本系統(tǒng)僅用于全國計算機(jī)等級考試,無法律和政策方面的限制。4總體設(shè)計4.1 基本設(shè)計思想及流程圖基本設(shè)計思想:在用戶認(rèn)證之后,系統(tǒng)根據(jù)考生的資料隨機(jī)的從試題庫中選取試卷,在考生做完試卷且交卷之后,將會自動在服務(wù)器端保存考的答案。要求能保證考生順利的作答以及考試的保密和安全性。圖1 操作流程圖4.2 系統(tǒng)功能結(jié)構(gòu)圖根據(jù)需求分析,在線考試系統(tǒng)的結(jié)構(gòu)圖如下:圖2 系統(tǒng)功能結(jié)構(gòu)圖4.3 系統(tǒng)架構(gòu)本系統(tǒng)采用ASP.NET應(yīng)用程序典型的三層架構(gòu)模式,其結(jié)構(gòu)如圖1所示圖3 三層架構(gòu)模式結(jié)構(gòu)圖各層功能介紹:數(shù)據(jù)訪問層:系統(tǒng)最低層,提供數(shù)據(jù)庫操作的接口和存儲本系統(tǒng)所有數(shù)據(jù);業(yè)務(wù)邏輯層:處于頁面展示層與數(shù)據(jù)訪問層之間,與數(shù)據(jù)庫直接關(guān)聯(lián),同時又為頁面展示層服務(wù)。實現(xiàn)業(yè)務(wù)的具體邏輯,如考生報名、登錄參考、試卷試題管理等;頁面展示層:系統(tǒng)最外層,將業(yè)務(wù)功能在瀏覽器上顯示出來,用戶通過界面對系統(tǒng)進(jìn)行操作。4.3.1數(shù)據(jù)訪問層數(shù)據(jù)訪問層完成所有與數(shù)據(jù)庫交互的工作,本系統(tǒng)只包括一個類SQLHelper。這個類的功能是向數(shù)據(jù)庫提交SQL語句,并返回相應(yīng)的操作結(jié)果。配置數(shù)據(jù)庫連接:在Web.config文件中指定數(shù)據(jù)庫連接字符串配置信息,代碼如下SQLHelper類成員:表1 SQLHelper類成員說明屬性/方法功能說明Conn保護(hù)變量,數(shù)據(jù)庫連接SqlConnection對象ConnStr保護(hù)變量,數(shù)據(jù)庫連接串Open連接數(shù)據(jù)庫Close關(guān)閉數(shù)據(jù)庫連接Dispose釋放數(shù)據(jù)庫連接資源ExecutSQL執(zhí)行一條非查詢(Select)類型的SQL命令GetDataRow根據(jù)輸入SQL命令,獲取一個DataRow對象GetDataSet根據(jù)輸入SQL命令,獲取一個DataSet對象GetDataReader根據(jù)SQL命令,獲取一個DataReader對象Insert利用一個Hash表存儲數(shù)據(jù),向數(shù)據(jù)庫插入數(shù)據(jù)Update利用一個Hash表存儲數(shù)據(jù),修改數(shù)據(jù)庫中的數(shù)據(jù)4.3.2業(yè)務(wù)邏輯層科目類Category.cs公告類News.cs試卷類Paper.cs試題類Question.cs分?jǐn)?shù)類Score.cs用戶類User.cs4.3.3頁面顯示層公告管理模塊News*.aspx用戶管理模塊User*.aspx試題管理模塊Question*.aspx試卷管理模塊Paper*.aspx試卷評分模塊Score*.aspx頁面首面Default.aspx考試頁面Exam.aspx注冊頁面Register.aspx公告信息頁面NewsInfo.aspx4.4數(shù)據(jù)庫的設(shè)計4.4.1 創(chuàng)建數(shù)據(jù)庫首先在SQL Server 2005的管理器中創(chuàng)建一個名為ExamDB的數(shù)據(jù)庫。4.4.2 創(chuàng)建表數(shù)據(jù)庫ExamDB包含以下6個表:考試科目表(Exam_Category)、用戶信息表(Exam_Member)、站內(nèi)公告表(Exam_News)、試卷信息表(Exam_Paper)、試題信息表(Exam_Question)、分?jǐn)?shù)信息表(Exam_Score)。下面分別介紹這些表的結(jié)構(gòu)。表2 考試科目表(Exam_Category)編號字段名稱數(shù)據(jù)結(jié)構(gòu)長度說明1IDint4考試科目序號2ExamLevelint4考試級別3ExamSubjectnvarchar20考試科目名稱表3 分?jǐn)?shù)信息表(Exam_Score)編號字段名稱數(shù)據(jù)結(jié)構(gòu)長度說明1IDint4試題序號2UserIDnvarchar7考試科目序號3TestIDint4試題題目4StartTimedatetime8考試開始時間5EndTimedatetime8考試結(jié)束時間6TotalScoreint4考試總成績7sUserAnswerNtext用戶單選答案8sRightAnswerNtext單選標(biāo)準(zhǔn)答案D9bUserAnswerNtext用戶填空答案10bRightAnswerNtext填空標(biāo)準(zhǔn)答案11IsCheckBit1成績是否審核12IsExamedBit1是否參加考試表4 站內(nèi)公告表(Exam_News)編號字段名稱數(shù)據(jù)結(jié)構(gòu)長度說明1IDint4公告序號2Titlentext公告標(biāo)題3Textntext公告內(nèi)容4Timedatetime8發(fā)布時間表5 用戶信息表(Exam_Member)編號字段名稱數(shù)據(jù)結(jié)構(gòu)長度說明1UserIDnvarchar7考生準(zhǔn)考證號/登錄名2CategoryIDInt4考試科目序號3UserPwdnvarchar50用戶登錄密碼4UserIDCardnvarchar18用戶身份證號5UserNamenvarchar50用戶姓名6UserSexnvarchar2用戶性別(男,女)7UserEmailnvarchar50用戶電子郵箱8UserTypeint4用戶類型(1考生,2閱卷人,3管理員)9IsCheckbit1考生審核(0未審核,1審核)表6 試卷信息表(Exam_Paper)編號字段名稱數(shù)據(jù)結(jié)構(gòu)長度說明1TestIDInt4試卷序號2CategoryIDInt4考試科目序號3SingleCountInt4單選題題數(shù)4SingleScoreInt4單選題分值5BlankCountInt4填空題題數(shù)6BlankScoreInt4填空題分值7StartTimedatetime8考試開始時間8EndTimedatetime8考試結(jié)束時間9TestTimeInt4考試總時間表7 試題信息表(Exam_Question)編號字段名稱數(shù)據(jù)結(jié)構(gòu)長度說明1IDInt4試題序號2CategoryIDInt4考試科目序號3QuestionDescNtext試題題目4QuestionTypeInt4試題類型(1單選題,2填空題)5OptionANtext單選備選答案A6OptionBNtext單選備選答案B7OptionCNtext單選備選答案C8OptionDNtext單選備選答案D9AnswerNtext填空備選答案4.4.3關(guān)系設(shè)計圖4 數(shù)據(jù)庫關(guān)系設(shè)計圖4.5數(shù)據(jù)訪問接口及通用組件實現(xiàn)對數(shù)據(jù)訪問的一些輔助和包裝及某些通用功能,包括三個類。4.5.1 獲取安全數(shù)據(jù)(GetSafeData)包含一系列從DataRow對象中,安全獲取數(shù)據(jù)的靜態(tài)方法。表8 GetSafeData類成員說明屬性/方法功能說明ValidateDataRow_S從DataRow中獲取字符串,如果不存在,返回System.String.EmptyValidateDataRow_N從DataRow中獲取整數(shù),如果不存在,返回System.Int32.MinValueValidateDataRow_T從DataRow中獲取浮點數(shù),如果不存在,返回System. Double.MinValueValidateDataRow_F從DataRow中獲取時間數(shù)據(jù),如果不存在,返回System. DateTime.MinValue4.5.2 構(gòu)造SQL語句(SQLString)GetQuotedString:將字符串加上SQL語句中常用的單引號“”;GetConditionClause:構(gòu)造SQL語句中的條件子句,這個方法接收一個哈希表參數(shù),利用哈希表中的每一項都是一個DictionaryEntry對象的對特征,構(gòu)造SQL語句中的條件子句。4.5.3 字符串加密(Security)對一字符串進(jìn)行MD5加密操作,保證數(shù)據(jù)的安全。5網(wǎng)站后臺主要功能模塊5.1 用戶登錄模塊設(shè)計5.1.1前臺頁面設(shè)計圖5 管理員/閱卷人登錄模塊管理員/閱卷人輸入賬號及密碼,系統(tǒng)查詢數(shù)據(jù)庫,自動配對用戶類型,進(jìn)入相應(yīng)的管理頁面。如果出現(xiàn)錯誤,系統(tǒng)會彈出相應(yīng)的提示信息。5.1.2后臺功能代碼單擊登錄按鈕事件: protected void btnOK_Click(object sender, EventArgs e) string UserName = txtName.Text; string UserPwd = Security.Encrypt(txtPwd.Text); User user = new User(); user.LoadNameData(UserName); if (user.Exist)/如果用戶存在 if (user.UserPwd = UserPwd)/如果密碼,轉(zhuǎn)入留言列表頁面 Session.Add(UserID, user.UserID); Session.Add(UserIDCard, user.UserIDCard); Session.Add(UserName, user.UserName); if (user.UserType = 3) SessionIsAdmin = Admin; Response.Redirect(Admin/AdminInfo.aspx); else SessionIsAdmin = Teacher; Response.Redirect(Teacher/Default.aspx); else/如果密碼錯誤,給出提示,光標(biāo)停留在密碼框中 Response.Write(alert(密碼錯誤,請重新輸入密碼!); txtPwd.Focus(); else/如果用戶不存在 Response.Write(alert(對不起,用戶不存在!); 5.2 后臺管理頁面設(shè)計管理頁面只允許具有管理員權(quán)限的人員訪問,因此在每個管理頁面都有相關(guān)的權(quán)限判斷,以保證系統(tǒng)的安全使用。if (SessionIsAdmin = null) Response.Write(alert(管理員未登錄,非法請求!);); Response.Write(window.location.href=./AdminLogin.aspx;);5.2.1人員管理頁面設(shè)計圖6 人員管理此頁面用于管理所有用戶,包括考生、閱卷人和管理員。通過用戶類型下拉框選擇相應(yīng)類型的用戶,在GridView中會顯示出用戶詳細(xì)的信息。當(dāng)考生報名成功后,前來交費(fèi)時,管理員可以通過審核方式來確認(rèn)考生的參考資格。管理員也可以刪除一些無效用戶。審核事件代碼: foreach (string UserID in selectedUsers) Hashtable ht = new Hashtable(); ht.Add(IsCheck, 1); (new User().Check(ht, UserID); Response.Write(alert(審核考生成功!);); Query();刪除事件代碼: foreach (string UserID in selectedUsers) User.Delete(UserID); Query();5.2.2試題管理頁面設(shè)計圖7 試題管理此頁面用于管理所有試題信息。通過考試科目下拉框選擇相應(yīng)的科目,在GridView中會顯示出試題的詳細(xì)信息,包括題干、備選答案和正確答案。管理員可以對試題進(jìn)行編輯、刪除操作。操作實現(xiàn)代碼: protected void gvQuestion_RowCommand(object sender, GridViewCommandEventArgs e) int index = Convert.ToInt32(e.CommandArgument); /待處理的行下標(biāo) int questionId = -1; switch (e.CommandName) /修改 case Edit: questionId = Convert.ToInt32(gvQuestion.Rowsindex.Cells0.Text); Response.Redirect(QuestionAddEdit.aspx?id= + questionId); break; /刪除 case Delete: questionId = Convert.ToInt32(gvQuestion.Rowsindex.Cells0.Text); Question question = new Question(); question.GetSingleQuestion(questionId); question.Delete(); Response.Write(alert(刪除成功!);); gvBind(); break; default: break; 5.2.3公告管理頁面設(shè)計圖8 公告管理此頁面用于管理網(wǎng)站公告信息。通過GridView顯示出公告的詳細(xì)信息,包括編號、標(biāo)題和時間。管理員可以通過詳細(xì)信息查看公告內(nèi)容,也可以對公告進(jìn)行編輯、刪除操作。GridView數(shù)據(jù)綁定: private void InitData() News news = new News(); DataSet ds = news.GetNews(); gvNewsList.DataSource = ds; gvNewsList.DataBind(); 操作代碼: protected void gvNewsList_RowCommand(object sender, GridViewCommandEventArgs e) int index = Convert.ToInt32(e.CommandArgument); /待處理的行下標(biāo) int newsId = -1; switch (e.CommandName) /修改 case Edit: newsId = Convert.ToInt32(gvNewsList.Rowsindex.Cells0.Text); Response.Redirect(NewsAddEdit.aspx?id= + newsId); break; /刪除 case Delete: newsId = Convert.ToInt32(gvNewsList.Rowsindex.Cells0.Text); News news = new News(); news.GetSingleNews(newsId); news.Delete(); Response.Write(alert(刪除成功!);); InitData(); break; default: break; 5.2.4密碼管理頁面設(shè)計圖9 管理員密碼修改此頁面用于管理員信息修改。當(dāng)管理員名及原密碼均正確時,可以對管理員的相關(guān)信息進(jìn)行修改操作。否則將無法修改相關(guān)信息。修改事件代碼: if ( UserOldPwd = user.UserPwd ) Hashtable ht = new Hashtable(); ht.Add(UserPwd, SqlStringConstructor.GetQuotedString(UserPwd); ht.Add(UserIDCard, SqlStringConstructor.GetQuotedString(txtIDCard.Text); user.Update(ht); Response.Write(alert(更新數(shù)據(jù)成功,請重新登錄!); Session.Abandon(); Response.Write(window.location.href=./AdminLogin.aspx;); else Response.Write(alert(原密碼錯誤!); 5.2.5試卷成績信息管理頁面設(shè)計圖10 試卷成績信息此頁面用于管理考生考試信息。在GridView中顯示出了所有考生的考試信息,包括考試科目、總成績和是否通過閱卷人審核。閱卷人可以查看考試的詳細(xì)信息,并進(jìn)行進(jìn)一步地操作,如圖11所示。單擊審核事件: foreach ( string ID in selectedIDs ) Hashtable ht = new Hashtable(); ht.Add(IsCheck, 1); (new Score().Check(ht, ID); Response.Write(alert(審核試卷成功!);); Query();圖11 試卷成績信息修正此頁面用于顯示考試的詳細(xì)信息。閱卷人可以查看到考生考試的具體信息,包括考試時間、成績以及每一道題的答案。閱卷人可以根據(jù)考生的答題情況,對考生分?jǐn)?shù)進(jìn)行相應(yīng)的修改。單擊修正事件: protected void btnModify_Click(object sender, EventArgs e) if (txtModifyScore.Text != ) Score score = new Score(); score.ID = Convert.ToInt32(Request.QueryStringid); Hashtable ht = new Hashtable(); ht.Add(TotalScore, SqlStringConstructor.GetQuotedString(txtModifyScore.Text); ht.Add(IsCheck, 1); score.Update(ht); Response.Write(試卷得分修改成功!); else Response.Write(alert(請輸入實際得分!);); 6網(wǎng)站前臺主要功能模塊6.1網(wǎng)站公告頁面設(shè)計圖12 網(wǎng)站公告模塊數(shù)據(jù)綁定: private void BindNewsData() /定義獲取數(shù)據(jù)的類 News news = new News(); DataSet ds = news.GetTop10News(); /設(shè)定控件的數(shù)據(jù)源 gvNews.DataSource = ds; /綁定控件的數(shù)據(jù) gvNews.DataBind(); 6.2考生在線報名頁面設(shè)計圖13 網(wǎng)上報名此頁面用于考生在線注冊。進(jìn)入頁面后,系統(tǒng)會自動生成準(zhǔn)考證號??忌梢訡heck自己的身份證是否已經(jīng)報名,以免重復(fù)報名。如果此考生已經(jīng)報名,或其它信息填寫錯誤,系統(tǒng)會給出相應(yīng)的提示信息。單擊報名按鈕事件 protected void btnReg_Click(object sender, EventArgs e) string userIDCard = txtIDCard.Text; string userPwd = Security.Encrypt(txtPwd.Text); if ( !(new User().HasUser(userIDCard) ) Hashtable ht = new Hashtable(); ht.Add(UserID, SqlStringConstructor.GetQuotedString(lblID.Text); ht.Add(UserIDCard, SqlStringConstructor.GetQuotedString(txtIDCard.Text); ht.Add(UserName, SqlStringConstructor.GetQuotedString(txtName.Text); ht.Add(UserPwd, SqlStringConstructor.GetQuotedString(userPwd); ht.Add(CategoryID, SqlStringConstructor.GetQuotedString(ddlSubject.SelectedValue.ToString(); ht.Add(UserEmail, SqlStringConstructor.GetQuotedString(txtEmail.Text); if ( rbMale.Checked ) ht.Add(UserSex, SqlStringConstructor.GetQuotedString(rbMale.Text); else ht.Add(UserSex, SqlStringConstructor.GetQuotedString(rbFemale.Text); User user = new User(); user.Add(ht); Session.Add(user_id, user.UserID); Response.Write(alert(報名成功!請到相關(guān)部門交費(fèi)完成報名); Response.Write(window.close(); else Response.Write(alert(同一身份證只能報考一科!); txtIDCard.Text = ; 6.3考生登錄頁面設(shè)計圖14 考生登錄此頁面用于考生考試登錄??忌顚懻_的準(zhǔn)考證號、密碼及驗證碼后,會進(jìn)入考試頁面。如果輸入驗證碼不正確,或其它信息填寫錯誤,系統(tǒng)會給出相應(yīng)的提示信息。6.4 考生在線考試頁面設(shè)計圖15 在線考試此頁面為考生參考主頁面。為了方便考生掌握考試時間,頁面上有計時器。考試時間一到,系統(tǒng)會自動提交試卷并保存相關(guān)答題信息,防止考生超時答卷。為了避免考生作弊,系統(tǒng)還禁用了相關(guān)按鍵,如F5、Alt、Ctrl + C等,以保證考試的公平公正??荚囉嫊r代碼(JavaScript): /計時函數(shù) 防考試作弊代碼(JScript):function document_onkeydown() try/禁止altif(event.altKey=true)ShowMessageBox(不可以用特殊功能鍵!);event.altKey=fals
展開閱讀全文
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。