版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)論文(設(shè)計)</b></p><p> 論文題目: 中國移動網(wǎng)維在線考試系統(tǒng) </p><p> China mobile network maintenance on-line examination system</p><p> 系 別: 信息技術(shù)系
2、 </p><p> 專 業(yè): 計算機科學(xué)與技術(shù)</p><p> 班 級: 12年 </p><p> 姓 名: XXX </p><p> 學(xué) 號: 120808 </p><p> 指導(dǎo)老師: XXX </p&g
3、t;<p> 職 稱: 講師 </p><p> 日 期: 2012-12-26 </p><p><b> 目 錄</b></p><p><b> 目 錄1</b></p><p><b> 摘 要2<
4、;/b></p><p> Abstract3</p><p> 第1章 軟件需求分析4</p><p> 1.1 軟件概述4</p><p> 1.1.1 目標(biāo)4</p><p> 1.1.2 用戶的特點5</p><p> 1.1.3 假定和約束5</p
5、><p> 1.2 系統(tǒng)應(yīng)該具備的基本功能5</p><p> 1.3 軟件故障處理要求5</p><p> 第2章 系統(tǒng)總體設(shè)計6</p><p> 2.1 基本簡介6</p><p> 2.2 運行環(huán)境與系統(tǒng)結(jié)構(gòu)6</p><p> 2.2.1 運行環(huán)境7<
6、;/p><p> 2.2.2 系統(tǒng)結(jié)構(gòu)圖7</p><p> 2.3 詳細設(shè)計8</p><p> 2.3.1 試題設(shè)計8</p><p> 2.3.2 用戶管理員權(quán)限8</p><p> 第3章 系統(tǒng)實現(xiàn)9</p><p> 3.1 數(shù)據(jù)庫設(shè)計9</p>
7、<p> 3.2 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計12</p><p> 3.2.1 數(shù)據(jù)庫概念設(shè)計12</p><p> 3.2.2 物理結(jié)構(gòu)設(shè)計14</p><p> 3.3 各模塊設(shè)計說明14</p><p> 3.3.1 用戶登錄模塊14</p><p> 3.3.2 用戶權(quán)限模塊
8、15</p><p> 3.3.3 部門信息模塊15</p><p> 3.3.4 員工注冊信息模塊16</p><p> 3.3.5 知識點模塊17</p><p> 3.3.6 組卷模塊模塊17</p><p> 3.3.7 試題模塊模塊18</p><
9、p> 3.3.8 成績查詢模塊18</p><p> 第4章 算法18</p><p> 第5章 部分代碼20</p><p><b> 致謝27</b></p><p><b> 參考文獻:28</b></p><p><b>
10、 摘 要</b></p><p> 隨著計算機網(wǎng)絡(luò)技術(shù)和網(wǎng)絡(luò)教育的不斷發(fā)展,傳統(tǒng)的基于紙筆的考試形式已不能適應(yīng)現(xiàn)在的發(fā)展需要,計算機在線考試正在逐步取代傳統(tǒng)考試。計算機在線考試?yán)镁W(wǎng)絡(luò)實現(xiàn)在線考試、評分等環(huán)節(jié),實現(xiàn)教考分離,在一定程度上減少了影響考試的人為主觀因素,同時減少了教師的工作量。在線考試系統(tǒng)的設(shè)計就是基于上述目的開發(fā)設(shè)計的。</p><p> 本系統(tǒng)主要包括考生
11、考試、教師管理、管理員三大模塊,具有在線考試、成績查詢、考試管理、試題管理、試卷管理和成績管理、系統(tǒng)管理、用戶管理等功能,同時對系統(tǒng)的工作原理、需求分析和總體設(shè)計做了簡要的概述,并針對系統(tǒng)中教師管理模塊進行了詳細的闡述和說明</p><p> 關(guān)鍵詞: 在線考試,ASP,數(shù)據(jù)庫</p><p> Abstract With the development of computer ne
12、twork technique and network education, the traditional test form cannot meet the needs of modern development. Therefore, little by little, the traditional test is replaced by the on-line test. The computer on-line examin
13、ation, grading and so on so as to separate teaching from testing, to a degree, which reduces human factors and the workload of teachers. The design of the on-line examination system is based on the above purposes.</p&
14、gt;<p> The examination system has decomposed into three different modules:Students module, the teacher module and the manager module. These have the on-line tests, achievement inquiry, testing management, test q
15、uestions management, test paper management and achievement management, system management, consumer management and so on. Also the thesis gives a brief outline of the operating principle, needs analysis and overall design
16、 and the thesis has introduced the implementation approach of the teacher mo</p><p> KEY WORDS on-line examination system, asp, database</p><p> 中國移動網(wǎng)維在線考試系統(tǒng)</p><p><b> 軟件
17、需求分析</b></p><p><b> 1.1軟件概述</b></p><p><b> 1.1.1 目標(biāo)</b></p><p> 因為中國移動網(wǎng)維考試系統(tǒng)是面向特定的某些對象的,所以考試者進入系統(tǒng)應(yīng)該進行身份驗證??荚囌哌M入考試系統(tǒng)后,應(yīng)該能根據(jù)自己的需要選擇考試科目,所以該系統(tǒng)還應(yīng)具有考試科目選
18、擇的功能。在線考試于一般的單機考試是不同的。鑒于考試環(huán)境一般為機房,考試者之間的距離很近,為了在線考試做到規(guī)范,對于每個應(yīng)試者來說,試卷的試題和題量都應(yīng)是相同的,但試題并不相同。在線考試基于網(wǎng)絡(luò)環(huán)境,試卷應(yīng)該從服務(wù)器的數(shù)據(jù)庫隨機抽取試題后動態(tài)生成的。另外,系統(tǒng)還應(yīng)該對考試時間進行控制,時間到了會要求考試者交卷??荚囌哌x擇答案提交后,應(yīng)該由計算機自動判卷,得到成績后顯示出來??荚囃戤吅?,可以返回登錄界面或繼續(xù)考試。此外,應(yīng)該能夠方便、快捷
19、的對在線考試系統(tǒng)管理。 </p><p> 1.1.2 用戶的特點</p><p> 1)本系統(tǒng)最終管理員用戶為題庫管理人員,大多為移動網(wǎng)維培訓(xùn)中心的員工。本模塊適用頻率較高,因此應(yīng)加大人性化設(shè)計。 2)本系統(tǒng)最終考生用戶為移動網(wǎng)維培訓(xùn)中心的員工。由于人數(shù)眾多,需加大并發(fā)性控制</p><p> 1.1.3 假定和約束</p><
20、;p> 題庫管理人員大多為老師,因此不需要過多的使用培訓(xùn)。</p><p><b> 1)技術(shù)約束</b></p><p> 要求采用B/S結(jié)構(gòu),數(shù)據(jù)庫采用SQL SERVER。界面要求使用漢字。</p><p><b> 2)標(biāo)準(zhǔn)約束</b></p><p> 《網(wǎng)頁編程規(guī)范》,《
21、界面風(fēng)格規(guī)范》</p><p> 1.2 系統(tǒng)應(yīng)該具備的基本功能</p><p> 用戶登陸:用戶通過用戶名和密碼進行登錄。</p><p> 用戶信息的管理:管理員可以增刪用戶</p><p> 試題庫管理:可以增加、修改、刪除試題。</p><p> 試卷生成:從試題庫里隨機抽取試題生成一份原始試卷。&
22、lt;/p><p> 在線考試:系統(tǒng)嚴(yán)格控制整個考試過程,實行時間的監(jiān)控與權(quán)限的控制,考生需要在限定的考試時間內(nèi)交卷。 </p><p> 計算機自動閱卷:本系統(tǒng)只考慮客觀題,要求計算機能自動閱卷,然后馬上顯示出考生分?jǐn)?shù)。</p><p> 成績查閱:考生考完以后,管理員應(yīng)該能對所有紀(jì)錄進行查詢,并應(yīng)該可以刪除指定紀(jì)錄。</p><p>
23、 1.3軟件故障處理要求</p><p> ?。?)系統(tǒng)運行時,應(yīng)該具有一定的容錯能力(如出現(xiàn)錯誤評判結(jié)果后,可以手工評判或者選擇重新評判),而且一般的非正常操作不應(yīng)該影響系統(tǒng)的正常使用。(2)一旦系統(tǒng)崩潰或出現(xiàn)故障導(dǎo)致系統(tǒng)不能運行,在正常的工作日,應(yīng)該能夠在4個小時內(nèi)恢復(fù)系統(tǒng)正常運行,在節(jié)假日等非工作時間,應(yīng)該能夠在24小時內(nèi)恢復(fù)系統(tǒng)正常運行。</p><p> 第2章 系統(tǒng)總體設(shè)
24、計 </p><p><b> 2.1基本簡介 </b></p><p> 該系統(tǒng)是專門用于用戶注冊、登錄、參加在線考試以及管理員進行試題錄入、修改、刪除、成績查詢、管理用戶的ASP.net應(yīng)用程序。它應(yīng)該具有開放性、方便性和靈活性??忌M行有效的身份驗證登錄后,要求在規(guī)定的時間內(nèi)進行答題,當(dāng)達到規(guī)定的時間后,系統(tǒng)將自動予以提示。一旦考生做完交卷后便能立即看到自己
25、的考試成績,并且其分?jǐn)?shù)將被記入庫中以供審核和查閱;另外,還可完全由計算機自動靈活、隨機的抽取試題庫中的各類試題組成各種形式的試卷,其內(nèi)容會隨著庫中試題的改變而改變,而且,不同的考生生成的試題是不同的。</p><p> 2.2 運行環(huán)境與系統(tǒng)結(jié)構(gòu) </p><p> 為了保證系統(tǒng)運行的效率和可靠性,系統(tǒng)服務(wù)器端應(yīng)具有較高的軟硬件配置,客戶端的要求不是很高。此應(yīng)用程序可廣泛運行于國際
26、互聯(lián)網(wǎng)即Internet,也可適用于內(nèi)部的局域網(wǎng)。其運行要求如下:</p><p><b> 2.2.1運行環(huán)境</b></p><p><b> 軟件環(huán)境:</b></p><p> 客戶端: Windows98/2000/XP,IE5.0以上</p><p> 服務(wù)器端:Windows
27、 NT/Windows2003,Windows 2003 Server,IIS 5.0及其以上版本。</p><p> 開發(fā)環(huán)境:.Net framework 3.5,Visual studio 2008,MDAC 2.7</p><p> 數(shù)據(jù)庫:采用SQL Server 2005,運行于服務(wù)器端。</p><p><b> 硬件環(huán)境:</b
28、></p><p> 服務(wù)器 CPU:PIII 500以上 ,內(nèi)存:256M以上</p><p> 客戶機 CPU:P200MMX以上,內(nèi)存:32M以上</p><p> 2.2 .2系統(tǒng)結(jié)構(gòu)圖</p><p> 根據(jù)需求分析,在線考試系統(tǒng)的結(jié)構(gòu)圖如下:</p><p> 圖2.1 系統(tǒng)結(jié)構(gòu)圖 &l
29、t;/p><p><b> 2.3詳細設(shè)計</b></p><p> 詳細設(shè)計是整個設(shè)計過程中,最重要的步驟之一。下面就分如下幾個部分對系統(tǒng)進行詳細設(shè)計:(1)試題設(shè)計(2)數(shù)據(jù)庫中表的設(shè)計(3)管理功能設(shè)計(4)功能模塊詳細設(shè)計(在第四章詳細介紹)</p><p> 2.3.1 試題設(shè)計 </p><p>
30、 鑒于主觀題的主觀性,目前無法實現(xiàn)系統(tǒng)自動判卷,所以本系統(tǒng)只作客觀題部分。一般情況下,單選題往往在四個供選的答案A、B、C、D中選擇唯一正確的答案 多選題提供四個以上選項,選擇其中正確的答案,判斷題判斷正確與否。</p><p> 2.3.2 用戶、管理員權(quán)限</p><p> 系統(tǒng)管理員:具有管理系統(tǒng)權(quán)限操作,可以增加用戶和更改用戶權(quán)限的權(quán)利。</p><p>
31、; 考務(wù)管理員:具有編寫試題,組合試題,查看學(xué)員成績的權(quán)利。</p><p> 普通員工:主要是指單位的培訓(xùn)對象等。</p><p><b> 第3章 系統(tǒng)實現(xiàn)</b></p><p><b> 3.1 數(shù)據(jù)庫設(shè)計</b></p><p> 聯(lián)系用途,詳細說明用于唯一地標(biāo)識該數(shù)據(jù)庫的代碼
32、、名稱或標(biāo)識符,附加的描述性信息亦要給出。如果該數(shù)據(jù)庫屬于尚在實驗中、尚在測試中或是暫時使用的,則要說明這一特點及其有效時間范圍。</p><p><b> 該數(shù)據(jù)庫表的設(shè)計:</b></p><p> 用來保存權(quán)限管理的基本信息 表3.1 Operation表</p><p> 主要用來保存部門的基本信息 表3.2
33、 Department表</p><p> 主要存儲判斷題的基本信息 表3.3 JudgeProblem表</p><p> 主要存儲知識點的基本信息 表3.4 Knowledge表</p><p> 主要記錄多選題的基本信息 表3.5 MultiProblem表</p><p>
34、 主要存儲試卷類型的基本信息 表3.6 Paper表</p><p> 主要存儲題庫的試卷的基本信息 表3.7 PaperDetails表</p><p> 主要記錄員工考試成績的基本信息 表3.8 Score表</p><p> 主要記錄單選題的基本信息 表3.9 SingleProblem表&l
35、t;/p><p> 主要存儲員工答卷的詳細信息 表3.10 UserAnswer表</p><p> 用來記錄用戶員工的具體信息 表3.11 Users表</p><p> 3.2 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計</p><p> 3.2.1 數(shù)據(jù)庫概念設(shè)計</p><p> 說明本數(shù)據(jù)庫
36、將反映的現(xiàn)實世界中的實體、屬性和它們之間的關(guān)系等的原始數(shù)據(jù)形式,包括各數(shù)據(jù)項、記錄、系、文卷的標(biāo)識符、定義、類型、度量單位和值域,建立本數(shù)據(jù)庫的每一幅用戶視圖。</p><p> 概念結(jié)構(gòu)設(shè)計如圖所示:</p><p><b> 數(shù)據(jù)庫概念設(shè)計</b></p><p> 圖3.1 用戶員工信息實體E-R圖 圖3.2 角色
37、管理信息實體E-R圖</p><p> 圖3.3 部門信息實體E-R圖 圖3.4 考試成績信息實體E-R圖</p><p> 圖3.5 考試員工答卷信息實體E-R圖 圖3.6 知識點信息實體E-R圖</p><p> 圖3.7 判斷題信息實體E-R圖 圖3.8 單/多選題信息實體E-R圖
38、</p><p> 圖3.9 試卷列表信息實體E-R圖 圖3.10 題庫表信息實體E-R圖</p><p> 3.2.2 物理結(jié)構(gòu)設(shè)計</p><p> 建立系統(tǒng)程序員視圖,包括:</p><p> 1) 數(shù)據(jù)在內(nèi)存中的安排,包括對索引區(qū)、緩沖區(qū)的設(shè)計;</p><p> 2)
39、 所使用的外存設(shè)備及外存空間的組織,包括索引區(qū)、數(shù)據(jù)塊的組織與劃分;</p><p> 3) 訪問數(shù)據(jù)的方式方法。</p><p> 3.3 各模塊設(shè)計說明</p><p> 本系統(tǒng)分為以下模塊:用戶登錄模塊,用戶權(quán)限模塊,部門信息模塊,員工注冊信息模塊,知識點模塊,組卷模塊,試題模塊,成績查詢模塊等。</p><p> 3.3
40、.1 用戶登錄模塊</p><p> 功能:驗證用戶ID號和密碼是否正確,并通過用戶ID號進行判斷用戶角色,根據(jù)角色跳轉(zhuǎn)到相應(yīng)頁面。</p><p><b> 登錄流程圖如下:</b></p><p><b> N</b></p><p><b> Y</b><
41、;/p><p><b> Y</b></p><p><b> N</b></p><p> N Y</p><p><b> Y</b></p><p> 圖3.12 系統(tǒng)登錄邏輯圖</p><p>
42、 3.3.2 用戶權(quán)限模塊</p><p> 1) 用戶權(quán)限基本描述</p><p> 作用:用戶權(quán)限的分配和修改。</p><p> 目的:對權(quán)限進行有效管理。</p><p> 功能:權(quán)限分配,權(quán)限修改</p><p> 性能:要求響應(yīng)時間小于1秒。</p><p> 2)
43、用戶權(quán)限流程邏輯 </p><p> 圖3.13 UserOPerationList.aspx 運行界面</p><p> 3.3.3 部門信息模塊</p><p> 1) 部門信息模塊基本描述</p><p> 作用:部門注冊信息錄入及信息處理</p><p> 目的:輸入基本資料進行
44、驗證保存。</p><p> 功能:1)輸入和保存部門名稱</p><p> 2)輸入和保存部門電話</p><p><b> 3)輸入和保存?zhèn)渥?lt;/b></p><p> 性能:要求響應(yīng)時間小于1秒。2) 部門信息模塊流程邏輯 </p><p> 圖3.14 部門信息模塊運行界
45、面 圖3.15 部門信息模塊修改界面</p><p> 3.3.4 員工注冊信息模塊</p><p> 1)員工注冊信息基本描述</p><p> 作用:員工注冊信息錄入及信息處理 。</p><p> 目的:輸入基本資料進行驗證保存。</p><p> 功能:1)輸入和保存員工名稱
46、</p><p> 2)輸入和保存員工電話</p><p><b> 3)輸入和保存?zhèn)渥?lt;/b></p><p> 性能:要求響應(yīng)時間小于1秒。</p><p> 員工注冊信息流程邏輯</p><p> 圖3.16 員工注冊運行界面</p><p> 當(dāng)點擊第
47、一個姓名跳轉(zhuǎn)到 </p><p> 圖3.17 員工注冊修改界面 圖3.18 員工注冊修改保存成功界面</p><p> 當(dāng)點擊運行主界面刪除按鈕時,就會把那一行刪除,會彈出確認(rèn)對話框. 點確定就會刪除選中的行,點取消,就不做刪除操作。</p><p> 查詢時,在左上角的下拉列
48、框中,選擇按某條件查詢,然后在右邊的文本框上輸入要查找的字符。點擊“查詢”按鈕就可以了。</p><p> 3.3.5 知識點模塊</p><p><b> 1)知識點基本描述</b></p><p> 作用:知識點的操作。</p><p> 目的:能正確保存顯示試題中的知識點項目,可以實時增加,刪除,添加
49、知識點條目,能根據(jù)知識點名稱查詢到該條知識點的描述。</p><p> 功能:1)增加和更新知識點名稱和描述。</p><p> 2)單條刪除和選擇性批量刪除知識點。</p><p> 3)根據(jù)知識點名稱實現(xiàn)查詢功能</p><p> 性能:要求響應(yīng)時間小于1秒。 </p><p><b> 2)知
50、識點流程邏輯</b></p><p> 圖3.19 知識點查看主頁面 圖3.20 詳細知識點界面</p><p> 3.3.6 組卷模塊</p><p> 1)組卷模塊基本描述</p><p> 作用:隨機、人工試卷的操作。</p><p&g
51、t; 目的:能正確保存顯示試題中的隨機、人工試卷項目,可以實時增加,刪除,添加隨機、人工 試卷條目,能根據(jù)隨機、人工試卷名稱查詢到該條隨機、人工試卷的描述。</p><p> 功能: 1) 增加和更新隨機、人工試卷名稱和描述。</p><p> 單條刪除和選擇性批量刪除隨機、人工試卷。</p><p> 3) 根據(jù)隨機、人工試卷名稱實現(xiàn)查詢功能</
52、p><p> 性能:要求響應(yīng)時間小于1秒。</p><p> 3.3.7 試題模塊</p><p> 1) 試題模塊基本描述</p><p> 作用:試卷顯示的操作。</p><p> 目的:能正確顯示試卷,從試卷的ID來查詢員工已做的試卷。</p><p> 功能:1)根據(jù)用戶的
53、ID,查詢用戶之前考試過的試卷。</p><p> 2)顯示試卷的詳細內(nèi)容。</p><p> 3)顯示試卷的正確答案。</p><p> 性能:要求響應(yīng)時間小于1秒。</p><p> 3.3.8 成績查詢模塊</p><p> 1) 成績查詢模塊基本描述</p><p>
54、靈 活 性:窗口響應(yīng)絕大部分的快捷菜單和控制面板操作;</p><p> 時間特性:響應(yīng)鼠標(biāo)單擊的時間在2~3秒之間;</p><p> 數(shù)據(jù)安全保密性:數(shù)據(jù)庫的訪問是不被用戶界面層直接訪問的,所以,數(shù)據(jù)的操作對用戶界 面層是透明的,具有一定的數(shù)據(jù)安全保密性。</p><p><b> 第4章 算法</b></p>&
55、lt;p> 在本系統(tǒng)中,實現(xiàn)隨機試卷的生成用到了隨機抽取試題的算法,一方面,由于題庫中的試題ID號(將插入試題的時間作為其ID號)是非連續(xù)的,因此單純的通過運算ID號來獲得試題是不可行的,在這里,我們將所有的同類題目的ID號存入一個連續(xù)的數(shù)組中,然后通過抽取該數(shù)組的下標(biāo)來間接地得到試題的ID號,由于題庫中試題的數(shù)量是不定的,因此我們動態(tài)的初始化數(shù)組長度。</p><p> 另一方面,試題庫中的試題也可能
56、存的較少,或者相對與要抽取的題目而言相差無幾,這樣我們定義了兩種算法,當(dāng)題庫中試題的數(shù)量較少或與所需要的數(shù)量相差無幾時我們用以下算法: </p><p> public int[] getRandomNum(int num) </p><p><b> { </b></p><p> Random rnd = new Random();
57、</p><p> int j = rnd.Next(0, num); </p><p> int[] arrNum = new int[num]; </p><p> if (num % 2 == 1) </p><p> { for (int i = 0; i <= num - 1; i++) </p><
58、;p> { arrNum[i] = 2 * j % num; //取出值賦到數(shù)組中 </p><p><b> j++; </b></p><p><b> } </b></p><p><b> } </b></p><p><b> else &l
59、t;/b></p><p> { for (int i = 0; i <= num - 1; i++) </p><p> { arrNum[i] = 2 * j % (num - 1); //取出值賦到數(shù)組中 </p><p><b> j++; </b></p><p> if (arrNum[0
60、] == arrNum[num - 1]) </p><p> { arrNum[num - 1] = num - 1; } </p><p><b> } </b></p><p><b> } </b></p><p> return arrNum; </p><p&
61、gt;<b> } </b></p><p> //數(shù)據(jù)庫中題型很多時,用該隨機算法抽題。缺點是:題目很少時有可能進入死循環(huán) </p><p> public int[] getRandomNumbig(int num) </p><p> { int minValue = 0, maxValue = num; </p>
62、<p> Random ra = new Random(unchecked((int)DateTime.Now.Ticks)); </p><p> int[] arrNum = new int[num]; </p><p> int tmp = 0; </p><p> for (int i = 0; i <= num - 1; i++)
63、</p><p> { tmp = ra.Next(minValue, maxValue); //隨機取數(shù) </p><p> arrNum[i] = getNum(arrNum, tmp, minValue, maxValue, ra); //將值賦到數(shù)組中 </p><p><b> } </b></p><p&g
64、t; return arrNum; </p><p><b> } </b></p><p> public int getNum(int[] arrNum, int tmp, int minValue, int maxValue, Random ra) </p><p><b> { </b></p>
65、<p> int n = 0; </p><p> while (n <= arrNum.Length - 1) </p><p><b> { </b></p><p> if (arrNum[n] == tmp) //利用循環(huán)判斷是否有重復(fù) </p><p><b> { &l
66、t;/b></p><p> tmp = ra.Next(minValue, maxValue); //重新隨機獲取。 </p><p> getNum(arrNum, tmp, minValue, maxValue, ra);//遞歸:如果取出來的數(shù)字和已取得的數(shù)字有重復(fù)就重新隨機獲取。 </p><p><b> } </b>&
67、lt;/p><p><b> n++; </b></p><p><b> } </b></p><p> return tmp; </p><p><b> } </b></p><p><b> 第5章 部分代碼</b>&
68、lt;/p><p> 建立空解決方案,然后建立三層結(jié)構(gòu),數(shù)據(jù)訪問層是對ExamGradeDAL進行查詢增刪改操作,而連接數(shù)據(jù)庫用的是公共類SQLHelp,每次要操作數(shù)據(jù)庫,用SQLHelp的對象即可實現(xiàn)對數(shù)據(jù)庫的操作。</p><p> 業(yè)務(wù)邏輯層ExamGradeBLL調(diào)用ExamGradeDAL的方法,獲得數(shù)據(jù)庫操作結(jié)果</p><p> 用戶界面層ExamG
69、rade調(diào)用ExamGradeBLL的方法可以直接獲取到數(shù)據(jù)結(jié)果或者間接實現(xiàn)對數(shù)據(jù)的操作。</p><p> 與三層架構(gòu)同級建立一個model項目,為表建立一個Model類,以數(shù)據(jù)庫表名作為類名,以表的字段作為類中的屬性。三層構(gòu)建項目都要對Model引用,在對數(shù)據(jù)庫的數(shù)據(jù)進行增加或者更新操作時,以Model類為對象作為傳遞參數(shù)。</p><p> 下面寫出其中知識點模塊代碼</p
70、><p> Model(模型層)</p><p> using System;</p><p> using System.Collections.Generic;</p><p> using System.Text;</p><p> namespace Model</p><p>&
71、lt;b> {</b></p><p><b> //考試科目類</b></p><p> public class Knowledge</p><p><b> {</b></p><p> #region 私有成員</p><p> priv
72、ate int _departmentId;</p><p> private string _departmentName;</p><p> public int DepartmentId</p><p><b> {</b></p><p> get { return _departmentId; }&
73、lt;/p><p> set { _departmentId = value; }</p><p><b> }</b></p><p> public string DepartmentName</p><p><b> {</b></p><p> get { re
74、turn _departmentName; }</p><p> set { _departmentName = value; }</p><p><b> }</b></p><p> #endregion 私有成員</p><p><b> }</b></p><p&
75、gt;<b> }</b></p><p> DAL(數(shù)據(jù)訪問層)</p><p> using System;</p><p> using System.Collections.Generic;</p><p> using System.Text;</p><p> using
76、Model;</p><p> using System.Data.SqlClient;</p><p> namespace DAL</p><p><b> {</b></p><p> public class KnowledgeService</p><p><b>
77、{</b></p><p> public void Update(string Name, string ID)</p><p><b> {</b></p><p> using (SqlConnection conn = DBHelp.GetConnection())</p><p><b&
78、gt; {</b></p><p> string sql = "update Users set Name='{0}' where ID='{1}'";</p><p> SqlCommand cmd = conn.CreateCommand();</p><p> sql = string.
79、Format(sql, Name, ID);</p><p> cmd.CommandText = sql;</p><p> conn.Open();</p><p> cmd.ExecuteNonQuery();</p><p> conn.Close();</p><p><b> }<
80、/b></p><p><b> }</b></p><p> public static bool insertKnowledge(Knowledge ic)</p><p><b> {</b></p><p> string sql = "insert into Kno
81、wledge ([Name]) values(@Name)";</p><p> SqlParameter[] para = new SqlParameter[]</p><p><b> {</b></p><p> new SqlParameter("@Name",ic.DepartmentName)&l
82、t;/p><p><b> };</b></p><p> int i = DBHelp.ExecuteCommand(sql, para);</p><p> if (i > 0)</p><p><b> {</b></p><p> return true;
83、</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> return false;</p><p><b> }</b></p>
84、;<p><b> }</b></p><p> public static bool DeleteKnowledge(Knowledge id)</p><p><b> {</b></p><p> using (SqlConnection con = DBHelp.GetConnection()
85、)</p><p><b> {</b></p><p> string sql = "delete from Knowledge where ID=@id";</p><p> SqlParameter[] sp = new SqlParameter[] </p><p><b>
86、 {</b></p><p> new SqlParameter("@id",id.DepartmentId),</p><p><b> };</b></p><p> int i = DBHelp.ExecuteCommand(sql, sp);</p><p> if (i
87、> 0)</p><p><b> {</b></p><p> return true;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b><
88、;/p><p> return false;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> public static List<Knowledge>
89、 SelectKnowledge()</p><p><b> {</b></p><p> using (SqlConnection con=DBHelp.GetConnection())</p><p><b> {</b></p><p> string sql = "sel
90、ect * from Knowledge";</p><p> SqlCommand cmd = new SqlCommand(sql,con);</p><p> con.Open();</p><p> List<Knowledge> list = new List<Knowledge>();</p><
91、;p> SqlDataReader dr = cmd.ExecuteReader();</p><p> while (dr.Read())</p><p><b> {</b></p><p> Knowledge c = new Knowledge();</p><p> c.DepartmentId
92、 = Convert.ToInt32(dr["ID"].ToString());</p><p> c.DepartmentName = dr["Name"].ToString();</p><p> list.Add(c);</p><p><b> }</b></p><p&
93、gt; dr.Close();</p><p> con.Close();</p><p> return list;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></
94、p><p><b> }</b></p><p> BLL(邏輯訪問層)</p><p> using System;</p><p> using System.Collections.Generic;</p><p> using System.Text;</p><
95、p> using Model;</p><p> using DAL;</p><p> using System.Data;</p><p> namespace BLL</p><p><b> {</b></p><p> public class KnowledgeMan
96、ager</p><p><b> {</b></p><p> public static void ModifyPwd(string Name, string ID)</p><p><b> {</b></p><p> service.Update(Name, ID);</p&
97、gt;<p><b> }</b></p><p> static KnowledgeService service;</p><p> static KnowledgeManager()</p><p><b> {</b></p><p> service = new K
98、nowledgeService();</p><p><b> }</b></p><p> public static bool KnowledgeInsert(Knowledge ci)</p><p><b> {</b></p><p> if (KnowledgeService.i
99、nsertKnowledge(ci))</p><p><b> {</b></p><p> return true;</p><p><b> }</b></p><p><b> else</b></p><p><b> {&
100、lt;/b></p><p> return false;</p><p><b> }</b></p><p><b> }</b></p><p> public DataSet QueryKnowledge()</p><p><b> {&l
101、t;/b></p><p> DBHelp DB = new DBHelp();</p><p> return DB.GetDataSets("Proc_KnowledgeList");</p><p><b> }</b></p><p> public static bool Ge
102、tDeleteKnowledge(Knowledge id)</p><p><b> {</b></p><p> if (KnowledgeService.DeleteKnowledge(id))</p><p><b> {</b></p><p> return true;</
103、p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> return false;</p><p><b> }</b></p>&l
104、t;p><b> }</b></p><p> public static List<Knowledge> GetSelect()</p><p><b> {</b></p><p> return KnowledgeService.SelectKnowledge();</p>&
105、lt;p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> UI(用戶訪問層)</b></p><p> using System;</p><p
106、> using System.Data;</p><p> using System.Configuration;</p><p> using System.Collections;</p><p> using System.Web;</p><p> using System.Web.Security;</p>
107、;<p> using System.Web.UI;</p><p> using System.Web.UI.WebControls;</p><p> using System.Web.UI.WebControls.WebParts;</p><p> using System.Web.UI.HtmlControls;</p>
108、<p> using BLL;</p><p> using Model;</p><p> using System.Data.SqlClient;</p><p> public partial class Web_KnowledgeManage1 : System.Web.UI.Page</p><p><b&
109、gt; {</b></p><p> protected void Page_Load(object sender, EventArgs e)</p><p><b> {</b></p><p> this.Page.Title = "考試科目管理";</p><p> if
110、(!Page.IsPostBack)</p><p><b> {</b></p><p> if (Session["userID"] == null)</p><p><b> {</b></p><p> Response.Redirect("Login.
111、aspx");</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> string userId = Session["userID"].ToString(
112、);</p><p> ((Label)Page.Master.FindControl("labUser")).Text = UserManager.GetUserName(userId);</p><p> ((Label)Page.Master.FindControl("lblRole")).Text = UserManager.GetUse
113、rRole(userId);</p><p> GridView1.DataSource = KnowledgeManager.GetSelect();</p><p> GridView1.DataKeyNames = new string[] { "DepartmentId" };</p><p> GridView1.DataBind
114、();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> protected void GridView1_RowDataBound1(object sender, GridViewRow
115、EventArgs e)</p><p><b> {</b></p><p> if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Separator)</p><p><b> {</b>&l
116、t;/p><p> Label label1 = e.Row.FindControl("Label1") as Label;</p><p> label1.Text = (e.Row.RowIndex + 1).ToString();</p><p><b> }</b></p><p> if
117、 (e.Row.RowType == DataControlRowType.DataRow)</p><p><b> {</b></p><p> e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#cbe2fa'");<
118、/p><p> e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");</p><p><b> }</b></p><p><b> }</b></p>
119、<p> protected void GridView1_RowDeleting1(object sender, GridViewDeleteEventArgs e)</p><p><b> {</b></p><p> Knowledge c = new Knowledge();</p><p> c.Departmen
120、tId=Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values[0]);</p><p><b> try</b></p><p><b> {</b></p><p> KnowledgeManager.GetDeleteKnowledge(c);</p&g
121、t;<p> lblMessger.Text = "刪除成功!";</p><p><b> }</b></p><p> catch (Exception)</p><p><b> {</b></p><p> Response.Redirect(&q
122、uot;KnowledgeManage.aspx");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 致謝</b></p><
123、;p> 通過這次畢業(yè)設(shè)計,使我感受到方方面面的知識都有它們很深沉的學(xué)問。這次畢業(yè)設(shè)計過程中,得到了學(xué)校的支持,給我提供了舒適的工作學(xué)習(xí)環(huán)境,得到了指導(dǎo)老師的耐心點評指導(dǎo),在此表示衷心的感謝!</p><p><b> 參考文獻:</b></p><p> [1](美)韋拉, SQL Server 2008編程入門經(jīng)典(第3版) 清華大學(xué)出版社,2010&l
124、t;/p><p> [2](美)內(nèi)格爾,(美)埃夫琴 等著,C#高級編程,清華大學(xué)出版社,2006</p><p> [3]王小科,王軍,趙會東,C#項目開發(fā)案例全程實錄,清華大學(xué)出版社,2010</p><p> [4][美] Andrew Troelsen 著,C#與.NET 4高級程序設(shè)計,人民郵電出版社,2009</p><p>
125、 [5]王小科,王軍 等編著,C#開發(fā)實戰(zhàn)1200例,清華大學(xué)出版社,2008</p><p> [6]王小科,徐薇 等編著,C#從入門到精通(第2版),清華大學(xué)出版社,2007</p><p> [7](美)克尼漢 等著,C程序設(shè)計語言(英文版.第2版),機械工業(yè)出版社,2010</p><p> [8](美)瓦格納,C#高效編程:改進C#代碼的50個行之有
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機畢業(yè)論文--在線考試系統(tǒng)
- 計算機專業(yè)本科畢業(yè)論文
- 計算機專業(yè)本科畢業(yè)論文
- 計算機專業(yè)本科畢業(yè)論文
- 計算機專業(yè)本科畢業(yè)論文(招聘管理系統(tǒng))
- 計算機本科畢業(yè)論文(停車場管理系統(tǒng))
- 計算機本科畢業(yè)論文-delphi稅務(wù)信息采集系統(tǒng)
- 計算機本科畢業(yè)論文校園網(wǎng)站設(shè)計
- 計算機本科畢業(yè)論文--企業(yè)人事管理系統(tǒng)設(shè)計
- 計算機本科畢業(yè)論文---計算機局域網(wǎng)組建與應(yīng)用
- 廈門大學(xué)計算機專業(yè)本科畢業(yè)論文
- 計算機科學(xué)與技術(shù)專業(yè)本科畢業(yè)論文
- 本科計算機類畢業(yè)論文
- 考試在線系統(tǒng)計算機科學(xué)與技術(shù)畢業(yè)論文
- 本科畢業(yè)論文-隨機出題在線考試系統(tǒng)
- 高等教育自學(xué)考試計算機應(yīng)用專業(yè)本科畢業(yè)論文
- 計算機科學(xué)與技術(shù)專業(yè)本科畢業(yè)論文(設(shè)計)
- 計算機科學(xué)與技術(shù)專業(yè)本科畢業(yè)論文小區(qū)物業(yè)管理系統(tǒng)
- 2002級計算機本科畢業(yè)論文組織工作計劃
- 計算機在線教育系統(tǒng)畢業(yè)論文
評論
0/150
提交評論