【正文】
(職稱): 論文提交日期: 基于 .NET 的公務(wù)員考試模擬系統(tǒng) 的設(shè)計(jì) 摘 要 隨著互聯(lián)網(wǎng)的迅速的發(fā)展,基于互聯(lián)網(wǎng)的各種應(yīng)用日益受到人們的重視,基于 Web 的在線考試系統(tǒng)在這種形勢(shì)下應(yīng)運(yùn)而生,它可以利用網(wǎng)絡(luò),隨時(shí)隨地對(duì)學(xué)生進(jìn)行考試,是傳統(tǒng)考場(chǎng)的延伸。 本文在基于一般 在線 考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)技術(shù)上,結(jié)合公務(wù)員考試的特點(diǎn),通過對(duì)系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)、 后臺(tái) 設(shè)計(jì)、前端開發(fā),構(gòu)建了一個(gè)基于 B/S 三層結(jié)構(gòu)的、以 為開發(fā)平臺(tái) 和 SQL Server 2021 為 數(shù)據(jù)庫(kù) 的 公務(wù)員 考試系統(tǒng)。 本公務(wù)員 考試 系統(tǒng)采用的技術(shù)較為新穎,在今后的應(yīng)用將會(huì)很廣泛。 關(guān)鍵詞: 在線 考試系統(tǒng) ;在線考試;試卷生成; ; C Design of the Online Examination Model for Civil Servants Based on .NET Abstract With the rapid development of the Inter, people are attaching greater and greater importance to Interbased applications. The Online Examination System has thus e into being. With the help of the Inter, it has bee an extension of the traditional examination system which can test students at any time and any place. Based on the design and implementation technology of traditional tests, and bined with the features of Civil Servant examinations, this article tries to establish an examination system based on B/S, and SQL Server 2021. This system can realize the general functions of the online test, such as the formation of test papers, the evaluation of test papers, user management, and so on. This civil servant examination system has used many novel technologies, and will be widely used in future practice. This system may be used in selftest by students as well as in formal examinations. Key words: Online Examination System。 。在傳統(tǒng)的考試方式下,組織一次考試要經(jīng)過出題、考試、評(píng)卷等步驟,隨著考試類型的增加及考試要求的提高,教師的工作量會(huì)越來(lái)越大,并且工作容易出錯(cuò)。因此在一定的程度上,傳統(tǒng)的考試方式已經(jīng)存在改革的必要。在公務(wù)員考試科目中,行政能力測(cè)試題量大,題目類型多,申論的資料量也是達(dá) 到好幾千字,如果人人都盲目的去買各種資料也是不可取的,同時(shí)也是一種浪費(fèi),并且大部分資料及練習(xí)題都是相同的,或者是可以重復(fù)利用的。這樣就可以利用網(wǎng)絡(luò)考試系統(tǒng)的運(yùn)作成本低、高效、靈活的突出優(yōu)勢(shì),實(shí)現(xiàn)公務(wù)員考試的無(wú)紙化,對(duì)公務(wù)員考試所需的各種人力、物力、財(cái)力資源都是一種節(jié)約。但是 ASP 采用的是解釋執(zhí)行的方式,執(zhí)行效率不高;部分考試系統(tǒng)性能低下,同時(shí)支持的在線測(cè)試數(shù)量較少,遠(yuǎn)遠(yuǎn)達(dá)不到系統(tǒng)運(yùn)行時(shí)的規(guī)模化效應(yīng)。 鑒于上述原因,本畢業(yè)設(shè)計(jì)選擇采用 技術(shù) 來(lái)開發(fā)一個(gè)公務(wù)員考試 模擬 系統(tǒng),語(yǔ)言采用大家都較為熟悉并較為規(guī)范的 C.NET 語(yǔ)言,數(shù)據(jù)庫(kù)選擇常用的 SQL Server 2021。 C組件可以成為基本的 Web 服務(wù),這些服務(wù)可以被運(yùn)行在任意平臺(tái)上的任何應(yīng)用所調(diào)用。 C就是這樣一種編程語(yǔ)言,它使程序員能快速地為新一代 Microsoft .Net平臺(tái)開發(fā)出應(yīng)用程序。這種語(yǔ)言被設(shè)計(jì)來(lái)幫助開發(fā)人員減少代碼量以及代碼出 錯(cuò)的機(jī)會(huì)。而 C語(yǔ)言開發(fā)是建立在 平臺(tái)上,可以把組件轉(zhuǎn)化成 Web 服務(wù),從而被運(yùn)行在任何平臺(tái)上的任意應(yīng)用程序所調(diào)用。 3) 消除編程錯(cuò)誤 甚至專業(yè)的 C++程序員也經(jīng)常犯一些最簡(jiǎn)單的錯(cuò)誤,例如,忘一記對(duì)變量 進(jìn)行初始化。而一旦程序投入使用,即使是最簡(jiǎn)單的錯(cuò)誤也要花費(fèi)很大的代價(jià)去修補(bǔ)。 4) 支持版本封裝 后續(xù)版本可以在舊版本的基礎(chǔ)上直接開發(fā),無(wú)須修改程序。 5) 與商業(yè)邏輯相關(guān)聯(lián) 大多數(shù)編程工具很難把程序代碼同商業(yè)邏輯聯(lián)系起來(lái),但 C不同,它可用于任何對(duì)象的可擴(kuò)展元數(shù)據(jù)。 簡(jiǎn)介 大大提高了編程人員的開發(fā)效率,與 相比,減少了 70%的編碼工作量。對(duì)開發(fā)人員來(lái)說, 對(duì)經(jīng)常使用的功能進(jìn)行了封裝,如用戶管理、數(shù)據(jù)控件等,可以象使用標(biāo)準(zhǔn)控件一樣使用這些功能。 中,內(nèi)置了許多基于提供者模型的新服務(wù),常見的就是成員和角色服務(wù)。當(dāng)然,也可以通過 命令來(lái)安裝 SQL Server 提供程序所使用的 SQL Server 數(shù)據(jù)庫(kù)。此外, Visual Studio 2021 還增加了一套登錄控件,可以方便的實(shí)現(xiàn)注冊(cè)、登錄、注銷和恢復(fù)密碼等功能,不需要編寫任何代碼。數(shù)據(jù)源控件包括 SqlDataSource、 XmlDataSource 等,數(shù)據(jù)控件包括 GridView 等??梢院苋菀椎?將 SQL 語(yǔ)句或存儲(chǔ)過程與數(shù)據(jù)源控件相關(guān)聯(lián),并且將它們綁定到數(shù)據(jù)綁定控件。當(dāng)然,也可以根據(jù)自己的需要,編寫代碼以顯式的綁定到控件。單個(gè)的母版頁(yè)可以定義所有頁(yè)面或一組頁(yè)面的相同外觀和通用行為,因此開發(fā)人員無(wú)須在每個(gè)頁(yè)面中編寫重復(fù)的代碼,需要修改頁(yè)面布局時(shí)只需修改母版頁(yè)即可。 在運(yùn)行時(shí)檢測(cè)內(nèi)容頁(yè)中每個(gè) Content 服務(wù)器控件的 ContentPlaceHolderID 是否與母版頁(yè)的匹配,如果匹配,則將 Content 服務(wù)器控件中的所有內(nèi)容查度到母版頁(yè)中的 ContentPlaceHolderID 的位置。本系統(tǒng)采用的是微軟公司的 SQL Server 2021。第三,容量龐大,每個(gè)數(shù)據(jù)庫(kù)中可創(chuàng)建多達(dá) 20 萬(wàn)個(gè)數(shù)據(jù)表,數(shù)據(jù)表中的記錄的行數(shù)只受服務(wù)器硬盤空間的限制,符合實(shí)際系統(tǒng)的考題數(shù)目較多的要求。在這種結(jié)構(gòu)下,用戶界面完全通過 WWW 瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),形成所謂 3tier 結(jié)構(gòu)。顯然 B/S 結(jié)構(gòu)應(yīng)用程序相對(duì)于傳統(tǒng)的 C/S 結(jié)構(gòu)應(yīng)用程序是巨大的進(jìn)步。 考生登錄后可進(jìn)行在線考試、成績(jī)查詢;教師能手工添加試卷,對(duì)主觀題進(jìn)行評(píng)閱;管理員則主要負(fù)責(zé)公告信息的管理,用戶及角色的管理等。 功能需求 根據(jù)初步的需求分析,系統(tǒng)功能應(yīng)該主要包括在線 考試、試卷生成、用戶管理等。 1) 在線考試:學(xué)生可以任選時(shí)間進(jìn)行在線考試,考試結(jié)束后,對(duì)于客觀題目,系統(tǒng)會(huì)根據(jù)題目的標(biāo)準(zhǔn)答案進(jìn)行在線評(píng)判,考生可以立即查詢成績(jī)。考試中,考生掉線應(yīng)該允許其繼續(xù)考試。 2) 查詢成績(jī):學(xué)生可以在線查詢以前參加過的考試(主觀和客觀)的成績(jī)。 教師 對(duì)于教師而言,主要包括試卷管理、主觀試卷評(píng)閱、瀏覽公告三大功能。同時(shí),教師還可以對(duì)數(shù)據(jù)庫(kù)中已有的試卷進(jìn)行修改和刪除等。 3) 瀏覽公告:教師可以瀏覽最新發(fā)布的公告,以及與考試相關(guān)的各種資料。 1) 用戶管理:管理員可以添加、刪除用戶。 3) 公告管理:包括對(duì)公告的發(fā)布、刪除、修改。 此外,所有的用戶都可以修改自己的密碼。此外系統(tǒng)應(yīng)當(dāng)操作簡(jiǎn)便、界面友好、維護(hù)簡(jiǎn)便。 4 系統(tǒng)總體設(shè)計(jì) 系統(tǒng)功能描述 根據(jù)需求分析,系統(tǒng)功能主要包括在線考試 、試卷生成、試卷評(píng)閱、用戶及角色管理、公告管理等。考生可以進(jìn)行在線考試、成績(jī)查詢,其中在線考試包括行政能力測(cè)試和申論測(cè)試。管理員可以進(jìn)行用戶管理、角色管理、公告管理,其中用戶管理包括添加用戶、刪除用戶、角色修改。 系統(tǒng)總體的功能如圖 41 所示: 第 6 頁(yè) 共 27 頁(yè) 圖 41 系統(tǒng)功能圖 數(shù)據(jù)庫(kù)設(shè)計(jì) 由于本系統(tǒng)開發(fā)環(huán)境為 Visual Studio 2021,為了系統(tǒng)的安全性及部分功能的簡(jiǎn)便性,因此采用了 自帶的成員資格及角色服務(wù),在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)設(shè)計(jì)了兩個(gè)數(shù)據(jù)庫(kù):其中一個(gè)為 Exam_User,專門用于實(shí)現(xiàn)身份與角色認(rèn)證;另一個(gè)為 Exam,用于存放與考試系統(tǒng)業(yè)務(wù)相關(guān)的各種表,均為 SQL Server 2021數(shù)據(jù)庫(kù)。 Exam_User 數(shù)據(jù)庫(kù) 在構(gòu)建此數(shù)據(jù)庫(kù)時(shí),采用的方法是在數(shù)據(jù)庫(kù)的企業(yè)管理器中先添加一個(gè)名為Exam_User 的空數(shù)據(jù)庫(kù)。此時(shí),在Exam_User 數(shù)據(jù)庫(kù)中就創(chuàng)建好了一系列新的表、視圖、存儲(chǔ)過程。由于在此考試系統(tǒng)中使用到的只是其身份與角色服務(wù),因此只對(duì)其中部分進(jìn)行介紹,現(xiàn)將使用到的表的結(jié)構(gòu)介紹如下: 1) asp_Users(用戶表):該表主要用于存儲(chǔ)用戶基本信息,具體詳細(xì)字段如表 41: 表 41:用戶表 asp_Users 列 名 數(shù)據(jù)類型 長(zhǎng) 度 允許空 字段說明 ApplicationId uniqueidentifier 16 應(yīng)用程序編號(hào) UserId uniqueidentifier 16 用戶編號(hào) UserName nvarchar 256 用戶名 第 7 頁(yè) 共 27 頁(yè) LowerrdUserName nvarchar 256 用戶名小寫 LastActivityDate datetime 8 用戶最后活動(dòng)日期與時(shí)間 2) asp_Roles(角色表):該表用于存儲(chǔ)系統(tǒng)的角色 信息,具體詳細(xì)字段如表 42: 表 42:角色表 asp_Roles 列 名 數(shù)據(jù)類型 長(zhǎng) 度 允許空 字段說明 ApplicationId uniqueidentifier 16 應(yīng)用程序編號(hào) RoleId uniqueidentifier 16 角色編號(hào) RoleName nvarchar 256 角色名稱 LowerRoleName nvarchar 256 角色名小寫 3) asp_UsersInRoles(用戶所屬角色表):該表用于存儲(chǔ)每個(gè)用戶所對(duì)應(yīng)的角色編號(hào)信息,具體詳 細(xì)字段如表 43: 表 43:用戶所屬角色表 asp_UsersInRoles 列 名 數(shù)據(jù)類型 長(zhǎng) 度 允許空 字段說明 UserId uniqueidentifier 16 用戶編號(hào) RoleId uniqueidentifier 16 角色編號(hào) 4) asp_Membership(用戶相關(guān)信息表):該表用于存儲(chǔ)用戶的所有相關(guān)信息,如密碼、密碼問題及答案、登錄時(shí)間等,具體詳細(xì)字段如表 44: 表 44:用戶相關(guān)信息表 asp_Membership 列 名 數(shù)據(jù)類型 長(zhǎng)度 允許空 字段說明 ApplicationId uniqueidentifier 16 應(yīng)用程序編號(hào) UserId uniqueidentifier 16 用戶編號(hào) 第 8 頁(yè) 共 27 頁(yè) Password nvarchar 256 密碼 (明文,哈稀散列,加密,如果哈稀或加密 base64encoded ) PasswordFormat int 1 密碼格式 (0 明文 ,1 哈稀 , 2 加密 ) PasswordSalt nvarchar 256 128bit 的隨機(jī)數(shù)用來(lái)產(chǎn)生密碼哈稀數(shù) PasswordQuestion nvarchar 256 Y 密碼問題 PsswordAnswer nvarchar 256 Y 密碼答案 IsLovkedOut bit 1 是否鎖定 1 鎖定 , 0 未鎖定 CreateDate datetime 8 帳號(hào)創(chuàng)建的日期與時(shí)間 LastLoginDate datetime 8 用戶最后登陸的日期與時(shí)間 LastPasswordChange datetime 8 用戶密碼的最后修改日期與時(shí)間 LastLockoutDate datetime 8 用戶最后被鎖定的日期與時(shí)間 FailePassword AttemptCount int 4 嘗試密碼失敗的次數(shù) FailedPassword AttemptWindowStart datetime 8 如果 FailedPasswordAttemptCount 不是0,記錄首次登陸失敗的日期與時(shí)間 FailedPasswordAnswer AttemptCoun