畢業(yè)論文——基于BS的計算機等級考試系統(tǒng)的設計與實現(xiàn)
基于B/S的計算機等級考試系統(tǒng)的設計與實現(xiàn)摘 要隨著計算機技術的發(fā)展及計算機的日益普及,基于B/S結構的考試系統(tǒng)與無紙化辦公一樣已成為大勢所趨。論文詳細論述了一個基于B/S結構的計算機等級考試系統(tǒng)的設計過程。軟件采用ASP.NET 2005作開發(fā)平臺,C#作編程語言,SQL Server 2005作數(shù)據(jù)庫管理系統(tǒng),實現(xiàn)了試題管理、試卷生成、在線考試、試卷評判、權限管理、在線報名及站內(nèi)公告等功能。系統(tǒng)符合全國計算機等級考試的要求。論文組織如下:首先闡述了該系統(tǒng)的開發(fā)背景、意義;其次介紹了相關的開發(fā)工具及技術基礎;接著對系統(tǒng)的需求進行了分析,并提出了具體的設計方案和數(shù)據(jù)庫模型;然后展現(xiàn)了整個系統(tǒng)的具體實現(xiàn),包括數(shù)據(jù)庫的設計和連接,各功能模塊的實現(xiàn);最后對該軟件進行了嚴格的測試。關鍵詞: B/S結構;計算機等級考試;考試系統(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 引 言目前學校與社會上的各種考試大都采用傳統(tǒng)的考試方式,在此方式下,組織一次考試至少要經(jīng)過五個步驟,即人工出題、考生考試、人工閱卷、成績評估和試卷分析。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師的工作量將會越來越大,并且其工作將是一件十分煩瑣和非常容易出錯的事情,可以說傳統(tǒng)的考試方式已經(jīng)不能適應現(xiàn)代考試的需要。隨著計算機應用的迅猛發(fā)展,網(wǎng)絡應用不斷擴大,如遠程教育和虛擬大學的出現(xiàn)等等,且這些應用正逐步深入到千家萬戶。人們迫切要求利用這些技術來進行在線考試,以減輕人們的工作負擔及提高工作效率,與此同時也提高了考試的質量,從而使考試更趨于公證、客觀,更加激發(fā)學生的學習興趣。例如目前許多國際著名的計算機公司所舉辦的各種認證考試絕大部分采用這種方式。在線考試模擬系統(tǒng)是現(xiàn)階段研究開發(fā)的一個熱點。它是建立在國際互聯(lián)網(wǎng)上的應用系統(tǒng),客戶端的配置可以極為簡單,使考試不受地域的局限。一個完備的在線考試模擬系統(tǒng)可以使用戶在網(wǎng)上學習過后及時檢驗自己的學習效果,已發(fā)現(xiàn)自己的不足,使得學習效率得到很大提高。在線考試模擬系統(tǒng)中題目的生成、試卷的提交、成績的批閱等都可以在網(wǎng)絡上自動完成。只要形成一套成熟的題庫就可以實現(xiàn)考試的自動化。這樣一來,教師所要做的只是精心設計題目、維護題庫,而不是組織考試,從而大大減輕了教師的負擔,這表明其經(jīng)濟性是相當可觀的。為了適應新形勢的發(fā)展,我進行了這一系統(tǒng)的初步設計工作,也可以說是做一個初步的探索,希望它能夠在各類考試中發(fā)揮高效、便捷的作用,把老師從繁重的工作中解脫出來!目前,網(wǎng)絡應用軟件運行的模式主要有二類:Client/server模式,Browser/Web模式。前者主要的缺點是維護、升級較麻煩,后者是近幾年伴隨Internet迅速發(fā)展起來的一種技術,它與客戶/服務器方式類似,客戶端是一個標準的瀏覽器,服務器端是Web Server ,而Web Server與數(shù)據(jù)庫和應用服務器的緊密結合,使得這種模式的應用范圍不斷擴大,它已不僅僅用于網(wǎng)上查詢,有很多部門的業(yè)務系統(tǒng)、企業(yè)的MIS系統(tǒng)紛紛采用這種模式,它的主要優(yōu)點是便于擴充應用、升級維護簡便。另外,考試系統(tǒng)的軟件也必將不斷的更新;同時軟件產(chǎn)品本身就要經(jīng)過一個不斷自我完善的過程。基于上述考慮,用Browser/Web模式來設計考試系統(tǒng)比較合適,服務器端我們采用SQL Server數(shù)據(jù)庫系統(tǒng)和.Net框架來構成考試的應用服務系統(tǒng);客戶端采用瀏覽器來完成考試全過程,同時可進行遠程系統(tǒng)維護和管理。利用網(wǎng)絡和數(shù)據(jù)庫技術,結合目前硬件價格普遍下跌與寬帶網(wǎng)大力建設的有利優(yōu)勢,應用微軟.NET技術,我開發(fā)了基于B/S模式的多用戶在線考試模擬系統(tǒng)這一程序。它運用方便、操作簡單,效率很高(同時,它要求計算機配置也很高,尤其是服務器端)?,F(xiàn)階段雖只實現(xiàn)了試卷的客觀題部分,但已具有用戶注冊、用戶個人信息修改、多用戶同時在線考試、試卷生成、時間控制、自動判卷,試題錄入、修改題庫、用戶管理、試卷管理、分數(shù)管理等重要功能,也就是說實現(xiàn)了真正的無紙化考試,滿足任何授權的考生在規(guī)定時間內(nèi)隨地考試并迅速獲得成績,同時也大大減輕了教師出題、出題和判卷等繁重的工作量。2 技術背景該在線考試系統(tǒng)主要采用Visual C# 2005、SQL Server 2005數(shù)據(jù)庫、JavaScript等技術和工具,整體設計遵循軟件工程的方法,經(jīng)過需求分析、總體設計、文檔和代碼的編制、模塊測試和系統(tǒng)實現(xiàn)幾個階段。下面就對這幾種技術和方法做一個概述。2.1 B/S結構B/S(Browser/Server)結構即瀏覽器和服務器結構。它是隨著Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少部分事務邏輯在前端(Browser)實現(xiàn),但是主要事務邏輯在服務器端(Server)實現(xiàn),形成所謂三層3-tier結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。以目前的技術看,局域網(wǎng)建立B/S結構的網(wǎng)絡應用,并通過Internet / Intranet模式下數(shù)據(jù)庫應用,相對易于把握、成本也是較低的。它是一次性到位的開發(fā),能實現(xiàn)不同的人員,從不同的地點,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)訪問和操作共同的數(shù)據(jù)庫;它能有效地保護數(shù)據(jù)平臺和管理訪問權限,服務器數(shù)據(jù)庫也很安全。特別是在JAVA這樣的跨平臺語言出現(xiàn)之后,B/S架構管理軟件更是方便、快捷、高效。2.2 開發(fā)工具簡介2.2.1 Visual C# 2005簡介Visual Studio 是一套完整的開發(fā)工具集,用于生成 ASP.NET Web 應用程序、XML Web Services、桌面應用程序和移動應用程序。Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成開發(fā)環(huán)境 (IDE),利用此 IDE 可以共享工具且有助于創(chuàng)建混合語言解決方案。另外,這些語言利用了 .NET Framework 的功能,通過此框架可使用簡化 ASP Web 應用程序和 XML Web Services 開發(fā)的關鍵技術。Microsoft Visual C# 2005(讀作 C sharp)是一種編程語言,它是為生成在 .NET Framework 上運行的多種應用程序而設計的。C# 簡單、功能強大、類型安全,而且是面向對象的。C# 憑借它的許多創(chuàng)新,在保持 C 樣式語言的表示形式和優(yōu)美的同時,實現(xiàn)了應用程序的快速開發(fā)。Visual Studio 支持 Visual C#,這是通過功能齊全的代碼編輯器、項目模板、設計器、代碼向導、功能強大且易于使用的調試器以及其他工具實現(xiàn)的。通過.NET Framework 類庫,可以訪問多種操作系統(tǒng)服務和其他有用的精心設計的類,這些類可顯著加快開發(fā)周期。2.2.2 SQL Sever 2005簡介SQL Server 是一個關系數(shù)據(jù)庫管理系統(tǒng),是Microsoft推出新一代數(shù)據(jù)管理與分析軟件。SQL Server 是一個全面的、集成的、端到端的數(shù)據(jù)解決方案,它為企業(yè)中的用戶提供了一個安全、可靠和高效的平臺用于企業(yè)數(shù)據(jù)管理和商業(yè)智能應用。SQL Server 是一個全面的、集成的、端到端的數(shù)據(jù)解決方案,它為企業(yè)中的用戶提供了一個安全、可靠和高效的平臺用于企業(yè)數(shù)據(jù)管理和商業(yè)智能應用。SQL Server 2005 為IT專家和信息工作者帶來了強大的、熟悉的工具,同時減少了在從移動設備到企業(yè)數(shù)據(jù)系統(tǒng)的多平臺上創(chuàng)建、部署、管理及使用企業(yè)數(shù)據(jù)和分析應用程序的復雜度。 通過全面的功能集、和現(xiàn)有系統(tǒng)的集成性、以及對日常任務的自動化管理能力,SQL Server 2005 為不同規(guī)模的企業(yè)提供了一個完整的數(shù)據(jù)解決方案。SQL Server 數(shù)據(jù)平臺包括如下工具:關系型數(shù)據(jù)庫、復制服務、通知服務、集成服務、分析服務、報表服務、管理工具、開發(fā)工具。 SQL Server 2005 數(shù)據(jù)平臺為不同規(guī)模的組織提供了如下好處:充分利用數(shù)據(jù)資產(chǎn)、提高生產(chǎn)力、減少IT復雜度、更低的總體擁有成本 (TCO)。3系統(tǒng)分析3.1需求分析3.1.1系統(tǒng)需要解決的主要問題因為考試是有特定的對象的,所以考生在進入該系統(tǒng)前應該進行在線報名。報名時填寫相應的個人信息(如身份證號、報考科目等),報名后到相關部門進行交費。由管理員進行審核后,考生進入考試系統(tǒng),根據(jù)報名時選擇的考試科目,參加相應的考試。鑒于計算機等級考試為全國性統(tǒng)一考試,考試時間有相應的規(guī)定。因此要對登錄了考試系統(tǒng)進行參考的用戶進行考試時間判斷,避免在非考試時段參加考試。另外,系統(tǒng)還應該對考試時間進行控制,時間到了會要求考試者交卷。在考試過程中要防止考生作弊,要禁止避免某些按鍵(如ALT、F5等)的操作??荚囌哌x擇答案提交后,應該由計算機自動判卷,得到成績先保存,在閱卷人審核后在考生信息頁面顯示出來??荚囃戤吅螅到y(tǒng)關閉考試頁面,回到考試前頁面。3.1.2系統(tǒng)應該具備的基本功能1試題管理:管理員利用賬號和密碼成功登錄以后,進入管理頁面,管理員可以通過系統(tǒng)做的手動添加試題頁面自己手動添加試題,并對相關信息進行添加、修改以及刪除。2試卷生成:事先設定好考試題目數(shù)量,考試日期,分數(shù)等信息。3在線考試:考生根據(jù)準考證號和密碼成功登錄后,進入考試界面??忌虚_始考試,提交試卷,查詢成績權限??忌鶕?jù)報名時選擇的考試科目,在規(guī)定時間段內(nèi)參加相應的考試,點擊開始考試后,進行考試界面,并要防止考生刷新及點擊右鍵等操作,對考試時間計時,考試時間到,系統(tǒng)強制提交試卷。4試卷評判:主、客觀題目均事先由系統(tǒng)自動判斷,主觀題目閱卷人登陸后,可以根據(jù)情況手工判卷并做出相應的分數(shù)修改。5權限管理:管理員擁有除閱卷外的所有權限,管理員根據(jù)賬號和密碼成功登錄后,可以對教師和考生的信息、公告、試題、試卷等進行管理。6在線報名:考生通過在線報名頁面,獲取系統(tǒng)自動分配的準考證號,添加相應的考生信息(包括身份證、性別、考試級別以及相應的科目)完成報名。在相關部門交費后,由管理員審核成功后獲取考試資格。7站內(nèi)公告:發(fā)布計算機等級考試的相關信息,如考試要求、時間等。管理員通過登錄進行相關的添加、修改和刪除。3.2可行性分析3.2.1技術可行性分析該考試系統(tǒng)的技術可行性,可以從硬件(包括外圍設備)的性能要求、軟件的性能要求(包括操作系統(tǒng)、程序設計、語言、軟件包、數(shù)據(jù)庫管理系統(tǒng)及各種軟件工具)、能源及環(huán)境條件、輔助設備及備品配件條件幾個方面去考慮。計算機硬件要求:CPU:奔騰1.0GHz以上內(nèi)存:256MB以上顯示卡:顯存16M及以上硬盤:2GB以上剩余磁盤空間驅動器:8倍速CD-ROM以上 高分辨率(1024*768)彩色顯示器軟件要求:WINDOWS操作系統(tǒng)或XP操作系統(tǒng),.Net 2005和Microsoft SQL Server2005就目前使用的開發(fā)技術來說建議系統(tǒng)的功能目標應該能夠達到;利用現(xiàn)有的技術在規(guī)定的期限內(nèi)開發(fā)工作基本能夠完成。3.2.2 經(jīng)濟可行性分析經(jīng)濟可行性分析主要是對開發(fā)項目的成本與效益做出評估,即分析新系統(tǒng)所帶來的經(jīng)濟效益是否超過開發(fā)和維護網(wǎng)站所需要的費用。用戶在使用該系統(tǒng)后只需花一定資金購買一部分計算機與軟件就能實現(xiàn)。3.2.3 社會因素方面的可行性分析本系統(tǒng)僅用于全國計算機等級考試,無法律和政策方面的限制。4總體設計4.1 基本設計思想及流程圖基本設計思想:在用戶認證之后,系統(tǒng)根據(jù)考生的資料隨機的從試題庫中選取試卷,在考生做完試卷且交卷之后,將會自動在服務器端保存考的答案。要求能保證考生順利的作答以及考試的保密和安全性。圖1 操作流程圖4.2 系統(tǒng)功能結構圖根據(jù)需求分析,在線考試系統(tǒng)的結構圖如下:圖2 系統(tǒng)功能結構圖4.3 系統(tǒng)架構本系統(tǒng)采用ASP.NET應用程序典型的三層架構模式,其結構如圖1所示圖3 三層架構模式結構圖各層功能介紹:數(shù)據(jù)訪問層:系統(tǒng)最低層,提供數(shù)據(jù)庫操作的接口和存儲本系統(tǒng)所有數(shù)據(jù);業(yè)務邏輯層:處于頁面展示層與數(shù)據(jù)訪問層之間,與數(shù)據(jù)庫直接關聯(lián),同時又為頁面展示層服務。實現(xiàn)業(yè)務的具體邏輯,如考生報名、登錄參考、試卷試題管理等;頁面展示層:系統(tǒng)最外層,將業(yè)務功能在瀏覽器上顯示出來,用戶通過界面對系統(tǒng)進行操作。4.3.1數(shù)據(jù)訪問層數(shù)據(jù)訪問層完成所有與數(shù)據(jù)庫交互的工作,本系統(tǒng)只包括一個類SQLHelper。這個類的功能是向數(shù)據(jù)庫提交SQL語句,并返回相應的操作結果。配置數(shù)據(jù)庫連接:在Web.config文件中指定數(shù)據(jù)庫連接字符串配置信息,代碼如下SQLHelper類成員:表1 SQLHelper類成員說明屬性/方法功能說明Conn保護變量,數(shù)據(jù)庫連接SqlConnection對象ConnStr保護變量,數(shù)據(jù)庫連接串Open連接數(shù)據(jù)庫Close關閉數(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è)務邏輯層科目類Category.cs公告類News.cs試卷類Paper.cs試題類Question.cs分數(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ù)庫的設計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)、分數(shù)信息表(Exam_Score)。下面分別介紹這些表的結構。表2 考試科目表(Exam_Category)編號字段名稱數(shù)據(jù)結構長度說明1IDint4考試科目序號2ExamLevelint4考試級別3ExamSubjectnvarchar20考試科目名稱表3 分數(shù)信息表(Exam_Score)編號字段名稱數(shù)據(jù)結構長度說明1IDint4試題序號2UserIDnvarchar7考試科目序號3TestIDint4試題題目4StartTimedatetime8考試開始時間5EndTimedatetime8考試結束時間6TotalScoreint4考試總成績7sUserAnswerNtext用戶單選答案8sRightAnswerNtext單選標準答案D9bUserAnswerNtext用戶填空答案10bRightAnswerNtext填空標準答案11IsCheckBit1成績是否審核12IsExamedBit1是否參加考試表4 站內(nèi)公告表(Exam_News)編號字段名稱數(shù)據(jù)結構長度說明1IDint4公告序號2Titlentext公告標題3Textntext公告內(nèi)容4Timedatetime8發(fā)布時間表5 用戶信息表(Exam_Member)編號字段名稱數(shù)據(jù)結構長度說明1UserIDnvarchar7考生準考證號/登錄名2CategoryIDInt4考試科目序號3UserPwdnvarchar50用戶登錄密碼4UserIDCardnvarchar18用戶身份證號5UserNamenvarchar50用戶姓名6UserSexnvarchar2用戶性別(男,女)7UserEmailnvarchar50用戶電子郵箱8UserTypeint4用戶類型(1考生,2閱卷人,3管理員)9IsCheckbit1考生審核(0未審核,1審核)表6 試卷信息表(Exam_Paper)編號字段名稱數(shù)據(jù)結構長度說明1TestIDInt4試卷序號2CategoryIDInt4考試科目序號3SingleCountInt4單選題題數(shù)4SingleScoreInt4單選題分值5BlankCountInt4填空題題數(shù)6BlankScoreInt4填空題分值7StartTimedatetime8考試開始時間8EndTimedatetime8考試結束時間9TestTimeInt4考試總時間表7 試題信息表(Exam_Question)編號字段名稱數(shù)據(jù)結構長度說明1IDInt4試題序號2CategoryIDInt4考試科目序號3QuestionDescNtext試題題目4QuestionTypeInt4試題類型(1單選題,2填空題)5OptionANtext單選備選答案A6OptionBNtext單選備選答案B7OptionCNtext單選備選答案C8OptionDNtext單選備選答案D9AnswerNtext填空備選答案4.4.3關系設計圖4 數(shù)據(jù)庫關系設計圖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 構造SQL語句(SQLString)GetQuotedString:將字符串加上SQL語句中常用的單引號“”;GetConditionClause:構造SQL語句中的條件子句,這個方法接收一個哈希表參數(shù),利用哈希表中的每一項都是一個DictionaryEntry對象的對特征,構造SQL語句中的條件子句。4.5.3 字符串加密(Security)對一字符串進行MD5加密操作,保證數(shù)據(jù)的安全。5網(wǎng)站后臺主要功能模塊5.1 用戶登錄模塊設計5.1.1前臺頁面設計圖5 管理員/閱卷人登錄模塊管理員/閱卷人輸入賬號及密碼,系統(tǒng)查詢數(shù)據(jù)庫,自動配對用戶類型,進入相應的管理頁面。如果出現(xiàn)錯誤,系統(tǒ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)/如果密碼,轉入留言列表頁面 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/如果密碼錯誤,給出提示,光標停留在密碼框中 Response.Write(alert(密碼錯誤,請重新輸入密碼!); txtPwd.Focus(); else/如果用戶不存在 Response.Write(alert(對不起,用戶不存在!); 5.2 后臺管理頁面設計管理頁面只允許具有管理員權限的人員訪問,因此在每個管理頁面都有相關的權限判斷,以保證系統(tǒng)的安全使用。if (SessionIsAdmin = null) Response.Write(alert(管理員未登錄,非法請求!);); Response.Write(window.location.href=./AdminLogin.aspx;);5.2.1人員管理頁面設計圖6 人員管理此頁面用于管理所有用戶,包括考生、閱卷人和管理員。通過用戶類型下拉框選擇相應類型的用戶,在GridView中會顯示出用戶詳細的信息。當考生報名成功后,前來交費時,管理員可以通過審核方式來確認考生的參考資格。管理員也可以刪除一些無效用戶。審核事件代碼: 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試題管理頁面設計圖7 試題管理此頁面用于管理所有試題信息。通過考試科目下拉框選擇相應的科目,在GridView中會顯示出試題的詳細信息,包括題干、備選答案和正確答案。管理員可以對試題進行編輯、刪除操作。操作實現(xiàn)代碼: protected void gvQuestion_RowCommand(object sender, GridViewCommandEventArgs e) int index = Convert.ToInt32(e.CommandArgument); /待處理的行下標 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公告管理頁面設計圖8 公告管理此頁面用于管理網(wǎng)站公告信息。通過GridView顯示出公告的詳細信息,包括編號、標題和時間。管理員可以通過詳細信息查看公告內(nèi)容,也可以對公告進行編輯、刪除操作。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); /待處理的行下標 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密碼管理頁面設計圖9 管理員密碼修改此頁面用于管理員信息修改。當管理員名及原密碼均正確時,可以對管理員的相關信息進行修改操作。否則將無法修改相關信息。修改事件代碼: 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試卷成績信息管理頁面設計圖10 試卷成績信息此頁面用于管理考生考試信息。在GridView中顯示出了所有考生的考試信息,包括考試科目、總成績和是否通過閱卷人審核。閱卷人可以查看考試的詳細信息,并進行進一步地操作,如圖11所示。單擊審核事件: foreach ( string ID in selectedIDs ) Hashtable ht = new Hashtable(); ht.Add(IsCheck, 1); (new Score().Check(ht, ID); Response.Write(alert(審核試卷成功!);); Query();圖11 試卷成績信息修正此頁面用于顯示考試的詳細信息。閱卷人可以查看到考生考試的具體信息,包括考試時間、成績以及每一道題的答案。閱卷人可以根據(jù)考生的答題情況,對考生分數(shù)進行相應的修改。單擊修正事件: 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)站公告頁面設計圖12 網(wǎng)站公告模塊數(shù)據(jù)綁定: private void BindNewsData() /定義獲取數(shù)據(jù)的類 News news = new News(); DataSet ds = news.GetTop10News(); /設定控件的數(shù)據(jù)源 gvNews.DataSource = ds; /綁定控件的數(shù)據(jù) gvNews.DataBind(); 6.2考生在線報名頁面設計圖13 網(wǎng)上報名此頁面用于考生在線注冊。進入頁面后,系統(tǒng)會自動生成準考證號。考生可以Check自己的身份證是否已經(jīng)報名,以免重復報名。如果此考生已經(jīng)報名,或其它信息填寫錯誤,系統(tǒ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(報名成功!請到相關部門交費完成報名); Response.Write(window.close(); else Response.Write(alert(同一身份證只能報考一科!); txtIDCard.Text = ; 6.3考生登錄頁面設計圖14 考生登錄此頁面用于考生考試登錄。考生填寫正確的準考證號、密碼及驗證碼后,會進入考試頁面。如果輸入驗證碼不正確,或其它信息填寫錯誤,系統(tǒng)會給出相應的提示信息。6.4 考生在線考試頁面設計圖15 在線考試此頁面為考生參考主頁面。為了方便考生掌握考試時間,頁面上有計時器??荚嚂r間一到,系統(tǒng)會自動提交試卷并保存相關答題信息,防止考生超時答卷。為了避免考生作弊,系統(tǒng)還禁用了相關按鍵,如F5、Alt、Ctrl + C等,以保證考試的公平公正??荚囉嫊r代碼(JavaScript): /計時函數(shù) 防考試作弊代碼(JScript):function document_onkeydown() try/禁止altif(event.altKey=true)ShowMessageBox(不可以用特殊功能鍵!);event.altKey=fals
收藏
編號:118210701
類型:共享資源
大小:671.50KB
格式:DOC
上傳時間:2022-07-11
20
積分
- 關 鍵 詞:
-
的計算機等級考試
系統(tǒng)的設計與實現(xiàn)
考試系統(tǒng)的設計與實現(xiàn)
計算機等級考試系統(tǒng)設計與實現(xiàn)
計算機畢業(yè)設計
計算機等級考試
系統(tǒng)—計算機畢業(yè)設計
系統(tǒng)的設計和實現(xiàn)
基于BS的計算機等級考試系統(tǒng)的設計與實現(xiàn)
- 資源描述:
-
基于B/S的計算機等級考試系統(tǒng)的設計與實現(xiàn)摘 要隨著計算機技術的發(fā)展及計算機的日益普及,基于B/S結構的考試系統(tǒng)與無紙化辦公一樣已成為大勢所趨。論文詳細論述了一個基于B/S結構的計算機等級考試系統(tǒng)的設計過程。軟件采用ASP.NET 2005作開發(fā)平臺,C#作編程語言,SQL Server 2005作數(shù)據(jù)庫管理系統(tǒng),實現(xiàn)了試題管理、試卷生成、在線考試、試卷評判、權限管理、在線報名及站內(nèi)公告等功能。系統(tǒng)符合全國計算機等級考試的要求。論文組織如下:首先闡述了該系統(tǒng)的開發(fā)背景、意義;其次介紹了相關的開發(fā)工具及技術基礎;接著對系統(tǒng)的需求進行了分析,并提出了具體的設計方案和數(shù)據(jù)庫模型;然后展現(xiàn)了整個系統(tǒng)的具體實現(xiàn),包括數(shù)據(jù)庫的設計和連接,各功能模塊的實現(xiàn);最后對該軟件進行了嚴格的測試。關鍵詞: B/S結構;計算機等級考試;考試系統(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 引 言目前學校與社會上的各種考試大都采用傳統(tǒng)的考試方式,在此方式下,組織一次考試至少要經(jīng)過五個步驟,即人工出題、考生考試、人工閱卷、成績評估和試卷分析。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師的工作量將會越來越大,并且其工作將是一件十分煩瑣和非常容易出錯的事情,可以說傳統(tǒng)的考試方式已經(jīng)不能適應現(xiàn)代考試的需要。隨著計算機應用的迅猛發(fā)展,網(wǎng)絡應用不斷擴大,如遠程教育和虛擬大學的出現(xiàn)等等,且這些應用正逐步深入到千家萬戶。人們迫切要求利用這些技術來進行在線考試,以減輕人們的工作負擔及提高工作效率,與此同時也提高了考試的質量,從而使考試更趨于公證、客觀,更加激發(fā)學生的學習興趣。例如目前許多國際著名的計算機公司所舉辦的各種認證考試絕大部分采用這種方式。在線考試模擬系統(tǒng)是現(xiàn)階段研究開發(fā)的一個熱點。它是建立在國際互聯(lián)網(wǎng)上的應用系統(tǒng),客戶端的配置可以極為簡單,使考試不受地域的局限。一個完備的在線考試模擬系統(tǒng)可以使用戶在網(wǎng)上學習過后及時檢驗自己的學習效果,已發(fā)現(xiàn)自己的不足,使得學習效率得到很大提高。在線考試模擬系統(tǒng)中題目的生成、試卷的提交、成績的批閱等都可以在網(wǎng)絡上自動完成。只要形成一套成熟的題庫就可以實現(xiàn)考試的自動化。這樣一來,教師所要做的只是精心設計題目、維護題庫,而不是組織考試,從而大大減輕了教師的負擔,這表明其經(jīng)濟性是相當可觀的。為了適應新形勢的發(fā)展,我進行了這一系統(tǒng)的初步設計工作,也可以說是做一個初步的探索,希望它能夠在各類考試中發(fā)揮高效、便捷的作用,把老師從繁重的工作中解脫出來!目前,網(wǎng)絡應用軟件運行的模式主要有二類:Client/server模式,Browser/Web模式。前者主要的缺點是維護、升級較麻煩,后者是近幾年伴隨Internet迅速發(fā)展起來的一種技術,它與客戶/服務器方式類似,客戶端是一個標準的瀏覽器,服務器端是Web Server ,而Web Server與數(shù)據(jù)庫和應用服務器的緊密結合,使得這種模式的應用范圍不斷擴大,它已不僅僅用于網(wǎng)上查詢,有很多部門的業(yè)務系統(tǒng)、企業(yè)的MIS系統(tǒng)紛紛采用這種模式,它的主要優(yōu)點是便于擴充應用、升級維護簡便。另外,考試系統(tǒng)的軟件也必將不斷的更新;同時軟件產(chǎn)品本身就要經(jīng)過一個不斷自我完善的過程?;谏鲜隹紤],用Browser/Web模式來設計考試系統(tǒng)比較合適,服務器端我們采用SQL Server數(shù)據(jù)庫系統(tǒng)和.Net框架來構成考試的應用服務系統(tǒng);客戶端采用瀏覽器來完成考試全過程,同時可進行遠程系統(tǒng)維護和管理。利用網(wǎng)絡和數(shù)據(jù)庫技術,結合目前硬件價格普遍下跌與寬帶網(wǎng)大力建設的有利優(yōu)勢,應用微軟.NET技術,我開發(fā)了基于B/S模式的多用戶在線考試模擬系統(tǒng)這一程序。它運用方便、操作簡單,效率很高(同時,它要求計算機配置也很高,尤其是服務器端)?,F(xiàn)階段雖只實現(xiàn)了試卷的客觀題部分,但已具有用戶注冊、用戶個人信息修改、多用戶同時在線考試、試卷生成、時間控制、自動判卷,試題錄入、修改題庫、用戶管理、試卷管理、分數(shù)管理等重要功能,也就是說實現(xiàn)了真正的無紙化考試,滿足任何授權的考生在規(guī)定時間內(nèi)隨地考試并迅速獲得成績,同時也大大減輕了教師出題、出題和判卷等繁重的工作量。2 技術背景該在線考試系統(tǒng)主要采用Visual C# 2005、SQL Server 2005數(shù)據(jù)庫、JavaScript等技術和工具,整體設計遵循軟件工程的方法,經(jīng)過需求分析、總體設計、文檔和代碼的編制、模塊測試和系統(tǒng)實現(xiàn)幾個階段。下面就對這幾種技術和方法做一個概述。2.1 B/S結構B/S(Browser/Server)結構即瀏覽器和服務器結構。它是隨著Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少部分事務邏輯在前端(Browser)實現(xiàn),但是主要事務邏輯在服務器端(Server)實現(xiàn),形成所謂三層3-tier結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。以目前的技術看,局域網(wǎng)建立B/S結構的網(wǎng)絡應用,并通過Internet / Intranet模式下數(shù)據(jù)庫應用,相對易于把握、成本也是較低的。它是一次性到位的開發(fā),能實現(xiàn)不同的人員,從不同的地點,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)訪問和操作共同的數(shù)據(jù)庫;它能有效地保護數(shù)據(jù)平臺和管理訪問權限,服務器數(shù)據(jù)庫也很安全。特別是在JAVA這樣的跨平臺語言出現(xiàn)之后,B/S架構管理軟件更是方便、快捷、高效。2.2 開發(fā)工具簡介2.2.1 Visual C# 2005簡介Visual Studio 是一套完整的開發(fā)工具集,用于生成 ASP.NET Web 應用程序、XML Web Services、桌面應用程序和移動應用程序。Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成開發(fā)環(huán)境 (IDE),利用此 IDE 可以共享工具且有助于創(chuàng)建混合語言解決方案。另外,這些語言利用了 .NET Framework 的功能,通過此框架可使用簡化 ASP Web 應用程序和 XML Web Services 開發(fā)的關鍵技術。Microsoft Visual C# 2005(讀作 C sharp)是一種編程語言,它是為生成在 .NET Framework 上運行的多種應用程序而設計的。C# 簡單、功能強大、類型安全,而且是面向對象的。C# 憑借它的許多創(chuàng)新,在保持 C 樣式語言的表示形式和優(yōu)美的同時,實現(xiàn)了應用程序的快速開發(fā)。Visual Studio 支持 Visual C#,這是通過功能齊全的代碼編輯器、項目模板、設計器、代碼向導、功能強大且易于使用的調試器以及其他工具實現(xiàn)的。通過.NET Framework 類庫,可以訪問多種操作系統(tǒng)服務和其他有用的精心設計的類,這些類可顯著加快開發(fā)周期。2.2.2 SQL Sever 2005簡介SQL Server 是一個關系數(shù)據(jù)庫管理系統(tǒng),是Microsoft推出新一代數(shù)據(jù)管理與分析軟件。SQL Server 是一個全面的、集成的、端到端的數(shù)據(jù)解決方案,它為企業(yè)中的用戶提供了一個安全、可靠和高效的平臺用于企業(yè)數(shù)據(jù)管理和商業(yè)智能應用。SQL Server 是一個全面的、集成的、端到端的數(shù)據(jù)解決方案,它為企業(yè)中的用戶提供了一個安全、可靠和高效的平臺用于企業(yè)數(shù)據(jù)管理和商業(yè)智能應用。SQL Server 2005 為IT專家和信息工作者帶來了強大的、熟悉的工具,同時減少了在從移動設備到企業(yè)數(shù)據(jù)系統(tǒng)的多平臺上創(chuàng)建、部署、管理及使用企業(yè)數(shù)據(jù)和分析應用程序的復雜度。 通過全面的功能集、和現(xiàn)有系統(tǒng)的集成性、以及對日常任務的自動化管理能力,SQL Server 2005 為不同規(guī)模的企業(yè)提供了一個完整的數(shù)據(jù)解決方案。SQL Server 數(shù)據(jù)平臺包括如下工具:關系型數(shù)據(jù)庫、復制服務、通知服務、集成服務、分析服務、報表服務、管理工具、開發(fā)工具。 SQL Server 2005 數(shù)據(jù)平臺為不同規(guī)模的組織提供了如下好處:充分利用數(shù)據(jù)資產(chǎn)、提高生產(chǎn)力、減少IT復雜度、更低的總體擁有成本 (TCO)。3系統(tǒng)分析3.1需求分析3.1.1系統(tǒng)需要解決的主要問題因為考試是有特定的對象的,所以考生在進入該系統(tǒng)前應該進行在線報名。報名時填寫相應的個人信息(如身份證號、報考科目等),報名后到相關部門進行交費。由管理員進行審核后,考生進入考試系統(tǒng),根據(jù)報名時選擇的考試科目,參加相應的考試。鑒于計算機等級考試為全國性統(tǒng)一考試,考試時間有相應的規(guī)定。因此要對登錄了考試系統(tǒng)進行參考的用戶進行考試時間判斷,避免在非考試時段參加考試。另外,系統(tǒng)還應該對考試時間進行控制,時間到了會要求考試者交卷。在考試過程中要防止考生作弊,要禁止避免某些按鍵(如ALT、F5等)的操作??荚囌哌x擇答案提交后,應該由計算機自動判卷,得到成績先保存,在閱卷人審核后在考生信息頁面顯示出來。考試完畢后,系統(tǒng)關閉考試頁面,回到考試前頁面。3.1.2系統(tǒng)應該具備的基本功能1試題管理:管理員利用賬號和密碼成功登錄以后,進入管理頁面,管理員可以通過系統(tǒng)做的手動添加試題頁面自己手動添加試題,并對相關信息進行添加、修改以及刪除。2試卷生成:事先設定好考試題目數(shù)量,考試日期,分數(shù)等信息。3在線考試:考生根據(jù)準考證號和密碼成功登錄后,進入考試界面。考生有開始考試,提交試卷,查詢成績權限。考生根據(jù)報名時選擇的考試科目,在規(guī)定時間段內(nèi)參加相應的考試,點擊開始考試后,進行考試界面,并要防止考生刷新及點擊右鍵等操作,對考試時間計時,考試時間到,系統(tǒng)強制提交試卷。4試卷評判:主、客觀題目均事先由系統(tǒng)自動判斷,主觀題目閱卷人登陸后,可以根據(jù)情況手工判卷并做出相應的分數(shù)修改。5權限管理:管理員擁有除閱卷外的所有權限,管理員根據(jù)賬號和密碼成功登錄后,可以對教師和考生的信息、公告、試題、試卷等進行管理。6在線報名:考生通過在線報名頁面,獲取系統(tǒng)自動分配的準考證號,添加相應的考生信息(包括身份證、性別、考試級別以及相應的科目)完成報名。在相關部門交費后,由管理員審核成功后獲取考試資格。7站內(nèi)公告:發(fā)布計算機等級考試的相關信息,如考試要求、時間等。管理員通過登錄進行相關的添加、修改和刪除。3.2可行性分析3.2.1技術可行性分析該考試系統(tǒng)的技術可行性,可以從硬件(包括外圍設備)的性能要求、軟件的性能要求(包括操作系統(tǒng)、程序設計、語言、軟件包、數(shù)據(jù)庫管理系統(tǒng)及各種軟件工具)、能源及環(huán)境條件、輔助設備及備品配件條件幾個方面去考慮。計算機硬件要求:CPU:奔騰1.0GHz以上內(nèi)存:256MB以上顯示卡:顯存16M及以上硬盤:2GB以上剩余磁盤空間驅動器:8倍速CD-ROM以上 高分辨率(1024*768)彩色顯示器軟件要求:WINDOWS操作系統(tǒng)或XP操作系統(tǒng),.Net 2005和Microsoft SQL Server2005就目前使用的開發(fā)技術來說建議系統(tǒng)的功能目標應該能夠達到;利用現(xiàn)有的技術在規(guī)定的期限內(nèi)開發(fā)工作基本能夠完成。3.2.2 經(jīng)濟可行性分析經(jīng)濟可行性分析主要是對開發(fā)項目的成本與效益做出評估,即分析新系統(tǒng)所帶來的經(jīng)濟效益是否超過開發(fā)和維護網(wǎng)站所需要的費用。用戶在使用該系統(tǒng)后只需花一定資金購買一部分計算機與軟件就能實現(xiàn)。3.2.3 社會因素方面的可行性分析本系統(tǒng)僅用于全國計算機等級考試,無法律和政策方面的限制。4總體設計4.1 基本設計思想及流程圖基本設計思想:在用戶認證之后,系統(tǒng)根據(jù)考生的資料隨機的從試題庫中選取試卷,在考生做完試卷且交卷之后,將會自動在服務器端保存考的答案。要求能保證考生順利的作答以及考試的保密和安全性。圖1 操作流程圖4.2 系統(tǒng)功能結構圖根據(jù)需求分析,在線考試系統(tǒng)的結構圖如下:圖2 系統(tǒng)功能結構圖4.3 系統(tǒng)架構本系統(tǒng)采用ASP.NET應用程序典型的三層架構模式,其結構如圖1所示圖3 三層架構模式結構圖各層功能介紹:數(shù)據(jù)訪問層:系統(tǒng)最低層,提供數(shù)據(jù)庫操作的接口和存儲本系統(tǒng)所有數(shù)據(jù);業(yè)務邏輯層:處于頁面展示層與數(shù)據(jù)訪問層之間,與數(shù)據(jù)庫直接關聯(lián),同時又為頁面展示層服務。實現(xiàn)業(yè)務的具體邏輯,如考生報名、登錄參考、試卷試題管理等;頁面展示層:系統(tǒng)最外層,將業(yè)務功能在瀏覽器上顯示出來,用戶通過界面對系統(tǒng)進行操作。4.3.1數(shù)據(jù)訪問層數(shù)據(jù)訪問層完成所有與數(shù)據(jù)庫交互的工作,本系統(tǒng)只包括一個類SQLHelper。這個類的功能是向數(shù)據(jù)庫提交SQL語句,并返回相應的操作結果。配置數(shù)據(jù)庫連接:在Web.config文件中指定數(shù)據(jù)庫連接字符串配置信息,代碼如下SQLHelper類成員:表1 SQLHelper類成員說明屬性/方法功能說明Conn保護變量,數(shù)據(jù)庫連接SqlConnection對象ConnStr保護變量,數(shù)據(jù)庫連接串Open連接數(shù)據(jù)庫Close關閉數(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è)務邏輯層科目類Category.cs公告類News.cs試卷類Paper.cs試題類Question.cs分數(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ù)庫的設計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)、分數(shù)信息表(Exam_Score)。下面分別介紹這些表的結構。表2 考試科目表(Exam_Category)編號字段名稱數(shù)據(jù)結構長度說明1IDint4考試科目序號2ExamLevelint4考試級別3ExamSubjectnvarchar20考試科目名稱表3 分數(shù)信息表(Exam_Score)編號字段名稱數(shù)據(jù)結構長度說明1IDint4試題序號2UserIDnvarchar7考試科目序號3TestIDint4試題題目4StartTimedatetime8考試開始時間5EndTimedatetime8考試結束時間6TotalScoreint4考試總成績7sUserAnswerNtext用戶單選答案8sRightAnswerNtext單選標準答案D9bUserAnswerNtext用戶填空答案10bRightAnswerNtext填空標準答案11IsCheckBit1成績是否審核12IsExamedBit1是否參加考試表4 站內(nèi)公告表(Exam_News)編號字段名稱數(shù)據(jù)結構長度說明1IDint4公告序號2Titlentext公告標題3Textntext公告內(nèi)容4Timedatetime8發(fā)布時間表5 用戶信息表(Exam_Member)編號字段名稱數(shù)據(jù)結構長度說明1UserIDnvarchar7考生準考證號/登錄名2CategoryIDInt4考試科目序號3UserPwdnvarchar50用戶登錄密碼4UserIDCardnvarchar18用戶身份證號5UserNamenvarchar50用戶姓名6UserSexnvarchar2用戶性別(男,女)7UserEmailnvarchar50用戶電子郵箱8UserTypeint4用戶類型(1考生,2閱卷人,3管理員)9IsCheckbit1考生審核(0未審核,1審核)表6 試卷信息表(Exam_Paper)編號字段名稱數(shù)據(jù)結構長度說明1TestIDInt4試卷序號2CategoryIDInt4考試科目序號3SingleCountInt4單選題題數(shù)4SingleScoreInt4單選題分值5BlankCountInt4填空題題數(shù)6BlankScoreInt4填空題分值7StartTimedatetime8考試開始時間8EndTimedatetime8考試結束時間9TestTimeInt4考試總時間表7 試題信息表(Exam_Question)編號字段名稱數(shù)據(jù)結構長度說明1IDInt4試題序號2CategoryIDInt4考試科目序號3QuestionDescNtext試題題目4QuestionTypeInt4試題類型(1單選題,2填空題)5OptionANtext單選備選答案A6OptionBNtext單選備選答案B7OptionCNtext單選備選答案C8OptionDNtext單選備選答案D9AnswerNtext填空備選答案4.4.3關系設計圖4 數(shù)據(jù)庫關系設計圖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 構造SQL語句(SQLString)GetQuotedString:將字符串加上SQL語句中常用的單引號“”;GetConditionClause:構造SQL語句中的條件子句,這個方法接收一個哈希表參數(shù),利用哈希表中的每一項都是一個DictionaryEntry對象的對特征,構造SQL語句中的條件子句。4.5.3 字符串加密(Security)對一字符串進行MD5加密操作,保證數(shù)據(jù)的安全。5網(wǎng)站后臺主要功能模塊5.1 用戶登錄模塊設計5.1.1前臺頁面設計圖5 管理員/閱卷人登錄模塊管理員/閱卷人輸入賬號及密碼,系統(tǒng)查詢數(shù)據(jù)庫,自動配對用戶類型,進入相應的管理頁面。如果出現(xiàn)錯誤,系統(tǒ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)/如果密碼,轉入留言列表頁面 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/如果密碼錯誤,給出提示,光標停留在密碼框中 Response.Write(alert(密碼錯誤,請重新輸入密碼!); txtPwd.Focus(); else/如果用戶不存在 Response.Write(alert(對不起,用戶不存在!); 5.2 后臺管理頁面設計管理頁面只允許具有管理員權限的人員訪問,因此在每個管理頁面都有相關的權限判斷,以保證系統(tǒng)的安全使用。if (SessionIsAdmin = null) Response.Write(alert(管理員未登錄,非法請求!);); Response.Write(window.location.href=./AdminLogin.aspx;);5.2.1人員管理頁面設計圖6 人員管理此頁面用于管理所有用戶,包括考生、閱卷人和管理員。通過用戶類型下拉框選擇相應類型的用戶,在GridView中會顯示出用戶詳細的信息。當考生報名成功后,前來交費時,管理員可以通過審核方式來確認考生的參考資格。管理員也可以刪除一些無效用戶。審核事件代碼: 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試題管理頁面設計圖7 試題管理此頁面用于管理所有試題信息。通過考試科目下拉框選擇相應的科目,在GridView中會顯示出試題的詳細信息,包括題干、備選答案和正確答案。管理員可以對試題進行編輯、刪除操作。操作實現(xiàn)代碼: protected void gvQuestion_RowCommand(object sender, GridViewCommandEventArgs e) int index = Convert.ToInt32(e.CommandArgument); /待處理的行下標 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公告管理頁面設計圖8 公告管理此頁面用于管理網(wǎng)站公告信息。通過GridView顯示出公告的詳細信息,包括編號、標題和時間。管理員可以通過詳細信息查看公告內(nèi)容,也可以對公告進行編輯、刪除操作。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); /待處理的行下標 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密碼管理頁面設計圖9 管理員密碼修改此頁面用于管理員信息修改。當管理員名及原密碼均正確時,可以對管理員的相關信息進行修改操作。否則將無法修改相關信息。修改事件代碼: 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試卷成績信息管理頁面設計圖10 試卷成績信息此頁面用于管理考生考試信息。在GridView中顯示出了所有考生的考試信息,包括考試科目、總成績和是否通過閱卷人審核。閱卷人可以查看考試的詳細信息,并進行進一步地操作,如圖11所示。單擊審核事件: foreach ( string ID in selectedIDs ) Hashtable ht = new Hashtable(); ht.Add(IsCheck, 1); (new Score().Check(ht, ID); Response.Write(alert(審核試卷成功!);); Query();圖11 試卷成績信息修正此頁面用于顯示考試的詳細信息。閱卷人可以查看到考生考試的具體信息,包括考試時間、成績以及每一道題的答案。閱卷人可以根據(jù)考生的答題情況,對考生分數(shù)進行相應的修改。單擊修正事件: 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)站公告頁面設計圖12 網(wǎng)站公告模塊數(shù)據(jù)綁定: private void BindNewsData() /定義獲取數(shù)據(jù)的類 News news = new News(); DataSet ds = news.GetTop10News(); /設定控件的數(shù)據(jù)源 gvNews.DataSource = ds; /綁定控件的數(shù)據(jù) gvNews.DataBind(); 6.2考生在線報名頁面設計圖13 網(wǎng)上報名此頁面用于考生在線注冊。進入頁面后,系統(tǒng)會自動生成準考證號??忌梢訡heck自己的身份證是否已經(jīng)報名,以免重復報名。如果此考生已經(jīng)報名,或其它信息填寫錯誤,系統(tǒ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(報名成功!請到相關部門交費完成報名); Response.Write(window.close(); else Response.Write(alert(同一身份證只能報考一科!); txtIDCard.Text = ; 6.3考生登錄頁面設計圖14 考生登錄此頁面用于考生考試登錄。考生填寫正確的準考證號、密碼及驗證碼后,會進入考試頁面。如果輸入驗證碼不正確,或其它信息填寫錯誤,系統(tǒng)會給出相應的提示信息。6.4 考生在線考試頁面設計圖15 在線考試此頁面為考生參考主頁面。為了方便考生掌握考試時間,頁面上有計時器??荚嚂r間一到,系統(tǒng)會自動提交試卷并保存相關答題信息,防止考生超時答卷。為了避免考生作弊,系統(tǒng)還禁用了相關按鍵,如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)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。