版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 畢業(yè)論文(設計)</b></p><p> 論文題目: 中國移動網(wǎng)維在線考試系統(tǒng) </p><p> China mobile network maintenance on-line examination system</p><p> 系 別: 信息技術系
2、 </p><p> 專 業(yè): 計算機科學與技術</p><p> 班 級: 12年 </p><p> 姓 名: XXX </p><p> 學 號: 120808 </p><p> 指導老師: 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 目標4</p><p> 1.1.2 用戶的特點5</p><p> 1.1.3 假定和約束5</p
5、><p> 1.2 系統(tǒng)應該具備的基本功能5</p><p> 1.3 軟件故障處理要求5</p><p> 第2章 系統(tǒng)總體設計6</p><p> 2.1 基本簡介6</p><p> 2.2 運行環(huán)境與系統(tǒng)結構6</p><p> 2.2.1 運行環(huán)境7<
6、;/p><p> 2.2.2 系統(tǒng)結構圖7</p><p> 2.3 詳細設計8</p><p> 2.3.1 試題設計8</p><p> 2.3.2 用戶管理員權限8</p><p> 第3章 系統(tǒng)實現(xiàn)9</p><p> 3.1 數(shù)據(jù)庫設計9</p>
7、<p> 3.2 數(shù)據(jù)庫結構設計12</p><p> 3.2.1 數(shù)據(jù)庫概念設計12</p><p> 3.2.2 物理結構設計14</p><p> 3.3 各模塊設計說明14</p><p> 3.3.1 用戶登錄模塊14</p><p> 3.3.2 用戶權限模塊
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)絡技術和網(wǎng)絡教育的不斷發(fā)展,傳統(tǒng)的基于紙筆的考試形式已不能適應現(xiàn)在的發(fā)展需要,計算機在線考試正在逐步取代傳統(tǒng)考試。計算機在線考試利用網(wǎng)絡實現(xiàn)在線考試、評分等環(huán)節(jié),實現(xiàn)教考分離,在一定程度上減少了影響考試的人為主觀因素,同時減少了教師的工作量。在線考試系統(tǒng)的設計就是基于上述目的開發(fā)設計的。</p><p> 本系統(tǒng)主要包括考生
11、考試、教師管理、管理員三大模塊,具有在線考試、成績查詢、考試管理、試題管理、試卷管理和成績管理、系統(tǒng)管理、用戶管理等功能,同時對系統(tǒng)的工作原理、需求分析和總體設計做了簡要的概述,并針對系統(tǒng)中教師管理模塊進行了詳細的闡述和說明</p><p> 關鍵詞: 在線考試,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 目標</b></p><p> 因為中國移動網(wǎng)維考試系統(tǒng)是面向特定的某些對象的,所以考試者進入系統(tǒng)應該進行身份驗證??荚囌哌M入考試系統(tǒng)后,應該能根據(jù)自己的需要選擇考試科目,所以該系統(tǒng)還應具有考試科目選
18、擇的功能。在線考試于一般的單機考試是不同的。鑒于考試環(huán)境一般為機房,考試者之間的距離很近,為了在線考試做到規(guī)范,對于每個應試者來說,試卷的試題和題量都應是相同的,但試題并不相同。在線考試基于網(wǎng)絡環(huán)境,試卷應該從服務器的數(shù)據(jù)庫隨機抽取試題后動態(tài)生成的。另外,系統(tǒng)還應該對考試時間進行控制,時間到了會要求考試者交卷??荚囌哌x擇答案提交后,應該由計算機自動判卷,得到成績后顯示出來??荚囃戤吅?,可以返回登錄界面或繼續(xù)考試。此外,應該能夠方便、快捷
19、的對在線考試系統(tǒng)管理。 </p><p> 1.1.2 用戶的特點</p><p> 1)本系統(tǒng)最終管理員用戶為題庫管理人員,大多為移動網(wǎng)維培訓中心的員工。本模塊適用頻率較高,因此應加大人性化設計。 2)本系統(tǒng)最終考生用戶為移動網(wǎng)維培訓中心的員工。由于人數(shù)眾多,需加大并發(fā)性控制</p><p> 1.1.3 假定和約束</p><
20、;p> 題庫管理人員大多為老師,因此不需要過多的使用培訓。</p><p><b> 1)技術約束</b></p><p> 要求采用B/S結構,數(shù)據(jù)庫采用SQL SERVER。界面要求使用漢字。</p><p><b> 2)標準約束</b></p><p> 《網(wǎng)頁編程規(guī)范》,《
21、界面風格規(guī)范》</p><p> 1.2 系統(tǒng)應該具備的基本功能</p><p> 用戶登陸:用戶通過用戶名和密碼進行登錄。</p><p> 用戶信息的管理:管理員可以增刪用戶</p><p> 試題庫管理:可以增加、修改、刪除試題。</p><p> 試卷生成:從試題庫里隨機抽取試題生成一份原始試卷。&
22、lt;/p><p> 在線考試:系統(tǒng)嚴格控制整個考試過程,實行時間的監(jiān)控與權限的控制,考生需要在限定的考試時間內(nèi)交卷。 </p><p> 計算機自動閱卷:本系統(tǒng)只考慮客觀題,要求計算機能自動閱卷,然后馬上顯示出考生分數(shù)。</p><p> 成績查閱:考生考完以后,管理員應該能對所有紀錄進行查詢,并應該可以刪除指定紀錄。</p><p>
23、 1.3軟件故障處理要求</p><p> ?。?)系統(tǒng)運行時,應該具有一定的容錯能力(如出現(xiàn)錯誤評判結果后,可以手工評判或者選擇重新評判),而且一般的非正常操作不應該影響系統(tǒng)的正常使用。(2)一旦系統(tǒng)崩潰或出現(xiàn)故障導致系統(tǒng)不能運行,在正常的工作日,應該能夠在4個小時內(nèi)恢復系統(tǒng)正常運行,在節(jié)假日等非工作時間,應該能夠在24小時內(nèi)恢復系統(tǒng)正常運行。</p><p> 第2章 系統(tǒng)總體設
24、計 </p><p><b> 2.1基本簡介 </b></p><p> 該系統(tǒng)是專門用于用戶注冊、登錄、參加在線考試以及管理員進行試題錄入、修改、刪除、成績查詢、管理用戶的ASP.net應用程序。它應該具有開放性、方便性和靈活性??忌M行有效的身份驗證登錄后,要求在規(guī)定的時間內(nèi)進行答題,當達到規(guī)定的時間后,系統(tǒng)將自動予以提示。一旦考生做完交卷后便能立即看到自己
25、的考試成績,并且其分數(shù)將被記入庫中以供審核和查閱;另外,還可完全由計算機自動靈活、隨機的抽取試題庫中的各類試題組成各種形式的試卷,其內(nèi)容會隨著庫中試題的改變而改變,而且,不同的考生生成的試題是不同的。</p><p> 2.2 運行環(huán)境與系統(tǒng)結構 </p><p> 為了保證系統(tǒng)運行的效率和可靠性,系統(tǒ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> 服務器端: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,運行于服務器端。</p><p><b> 硬件環(huán)境:</b
28、></p><p> 服務器 CPU:PIII 500以上 ,內(nèi)存:256M以上</p><p> 客戶機 CPU:P200MMX以上,內(nèi)存:32M以上</p><p> 2.2 .2系統(tǒng)結構圖</p><p> 根據(jù)需求分析,在線考試系統(tǒng)的結構圖如下:</p><p> 圖2.1 系統(tǒng)結構圖 &l
29、t;/p><p><b> 2.3詳細設計</b></p><p> 詳細設計是整個設計過程中,最重要的步驟之一。下面就分如下幾個部分對系統(tǒng)進行詳細設計:(1)試題設計(2)數(shù)據(jù)庫中表的設計(3)管理功能設計(4)功能模塊詳細設計(在第四章詳細介紹)</p><p> 2.3.1 試題設計 </p><p>
30、 鑒于主觀題的主觀性,目前無法實現(xiàn)系統(tǒng)自動判卷,所以本系統(tǒng)只作客觀題部分。一般情況下,單選題往往在四個供選的答案A、B、C、D中選擇唯一正確的答案 多選題提供四個以上選項,選擇其中正確的答案,判斷題判斷正確與否。</p><p> 2.3.2 用戶、管理員權限</p><p> 系統(tǒng)管理員:具有管理系統(tǒng)權限操作,可以增加用戶和更改用戶權限的權利。</p><p>
31、; 考務管理員:具有編寫試題,組合試題,查看學員成績的權利。</p><p> 普通員工:主要是指單位的培訓對象等。</p><p><b> 第3章 系統(tǒng)實現(xiàn)</b></p><p><b> 3.1 數(shù)據(jù)庫設計</b></p><p> 聯(lián)系用途,詳細說明用于唯一地標識該數(shù)據(jù)庫的代碼
32、、名稱或標識符,附加的描述性信息亦要給出。如果該數(shù)據(jù)庫屬于尚在實驗中、尚在測試中或是暫時使用的,則要說明這一特點及其有效時間范圍。</p><p><b> 該數(shù)據(jù)庫表的設計:</b></p><p> 用來保存權限管理的基本信息 表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ù)庫結構設計</p><p> 3.2.1 數(shù)據(jù)庫概念設計</p><p> 說明本數(shù)據(jù)庫
36、將反映的現(xiàn)實世界中的實體、屬性和它們之間的關系等的原始數(shù)據(jù)形式,包括各數(shù)據(jù)項、記錄、系、文卷的標識符、定義、類型、度量單位和值域,建立本數(shù)據(jù)庫的每一幅用戶視圖。</p><p> 概念結構設計如圖所示:</p><p><b> 數(shù)據(jù)庫概念設計</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 物理結構設計</p><p> 建立系統(tǒng)程序員視圖,包括:</p><p> 1) 數(shù)據(jù)在內(nèi)存中的安排,包括對索引區(qū)、緩沖區(qū)的設計;</p><p> 2)
39、 所使用的外存設備及外存空間的組織,包括索引區(qū)、數(shù)據(jù)塊的組織與劃分;</p><p> 3) 訪問數(shù)據(jù)的方式方法。</p><p> 3.3 各模塊設計說明</p><p> 本系統(tǒng)分為以下模塊:用戶登錄模塊,用戶權限模塊,部門信息模塊,員工注冊信息模塊,知識點模塊,組卷模塊,試題模塊,成績查詢模塊等。</p><p> 3.3
40、.1 用戶登錄模塊</p><p> 功能:驗證用戶ID號和密碼是否正確,并通過用戶ID號進行判斷用戶角色,根據(jù)角色跳轉(zhuǎn)到相應頁面。</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 用戶權限模塊</p><p> 1) 用戶權限基本描述</p><p> 作用:用戶權限的分配和修改。</p><p> 目的:對權限進行有效管理。</p><p> 功能:權限分配,權限修改</p><p> 性能:要求響應時間小于1秒。</p><p> 2)
43、用戶權限流程邏輯 </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> 性能:要求響應時間小于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> 性能:要求響應時間小于1秒。</p><p> 員工注冊信息流程邏輯</p><p> 圖3.16 員工注冊運行界面</p><p> 當點擊第
47、一個姓名跳轉(zhuǎn)到 </p><p> 圖3.17 員工注冊修改界面 圖3.18 員工注冊修改保存成功界面</p><p> 當點擊運行主界面刪除按鈕時,就會把那一行刪除,會彈出確認對話框. 點確定就會刪除選中的行,點取消,就不做刪除操作。</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> 性能:要求響應時間小于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> 性能:要求響應時間小于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> 性能:要求響應時間小于1秒。</p><p> 3.3.8 成績查詢模塊</p><p> 1) 成績查詢模塊基本描述</p><p>
54、靈 活 性:窗口響應絕大部分的快捷菜單和控制面板操作;</p><p> 時間特性:響應鼠標單擊的時間在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ù)組的下標來間接地得到試題的ID號,由于題庫中試題的數(shù)量是不定的,因此我們動態(tài)的初始化數(shù)組長度。</p><p> 另一方面,試題庫中的試題也可能
56、存的較少,或者相對與要抽取的題目而言相差無幾,這樣我們定義了兩種算法,當題庫中試題的數(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)判斷是否有重復 </p><p><b> { &l
66、t;/b></p><p> tmp = ra.Next(minValue, maxValue); //重新隨機獲取。 </p><p> getNum(arrNum, tmp, minValue, maxValue, ra);//遞歸:如果取出來的數(shù)字和已取得的數(shù)字有重復就重新隨機獲取。 </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> 建立空解決方案,然后建立三層結構,數(shù)據(jù)訪問層是對ExamGradeDAL進行查詢增刪改操作,而連接數(shù)據(jù)庫用的是公共類SQLHelp,每次要操作數(shù)據(jù)庫,用SQLHelp的對象即可實現(xiàn)對數(shù)據(jù)庫的操作。</p><p> 業(yè)務邏輯層ExamGradeBLL調(diào)用ExamGradeDAL的方法,獲得數(shù)據(jù)庫操作結果</p><p> 用戶界面層ExamG
69、rade調(diào)用ExamGradeBLL的方法可以直接獲取到數(shù)據(jù)結果或者間接實現(xiàn)對數(shù)據(jù)的操作。</p><p> 與三層架構同級建立一個model項目,為表建立一個Model類,以數(shù)據(jù)庫表名作為類名,以表的字段作為類中的屬性。三層構建項目都要對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è)設計,使我感受到方方面面的知識都有它們很深沉的學問。這次畢業(yè)設計過程中,得到了學校的支持,給我提供了舒適的工作學習環(huán)境,得到了指導老師的耐心點評指導,在此表示衷心的感謝!</p><p><b> 參考文獻:</b></p><p> [1](美)韋拉, SQL Server 2008編程入門經(jīng)典(第3版) 清華大學出版社,2010&l
124、t;/p><p> [2](美)內(nèi)格爾,(美)埃夫琴 等著,C#高級編程,清華大學出版社,2006</p><p> [3]王小科,王軍,趙會東,C#項目開發(fā)案例全程實錄,清華大學出版社,2010</p><p> [4][美] Andrew Troelsen 著,C#與.NET 4高級程序設計,人民郵電出版社,2009</p><p>
125、 [5]王小科,王軍 等編著,C#開發(fā)實戰(zhàn)1200例,清華大學出版社,2008</p><p> [6]王小科,徐薇 等編著,C#從入門到精通(第2版),清華大學出版社,2007</p><p> [7](美)克尼漢 等著,C程序設計語言(英文版.第2版),機械工業(yè)出版社,2010</p><p> [8](美)瓦格納,C#高效編程:改進C#代碼的50個行之有
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機畢業(yè)論文--在線考試系統(tǒng)
- 計算機專業(yè)本科畢業(yè)論文
- 計算機專業(yè)本科畢業(yè)論文
- 計算機專業(yè)本科畢業(yè)論文
- 計算機專業(yè)本科畢業(yè)論文(招聘管理系統(tǒng))
- 計算機本科畢業(yè)論文(停車場管理系統(tǒng))
- 計算機本科畢業(yè)論文-delphi稅務信息采集系統(tǒng)
- 計算機本科畢業(yè)論文校園網(wǎng)站設計
- 計算機本科畢業(yè)論文--企業(yè)人事管理系統(tǒng)設計
- 計算機本科畢業(yè)論文---計算機局域網(wǎng)組建與應用
- 廈門大學計算機專業(yè)本科畢業(yè)論文
- 計算機科學與技術專業(yè)本科畢業(yè)論文
- 本科計算機類畢業(yè)論文
- 考試在線系統(tǒng)計算機科學與技術畢業(yè)論文
- 本科畢業(yè)論文-隨機出題在線考試系統(tǒng)
- 高等教育自學考試計算機應用專業(yè)本科畢業(yè)論文
- 計算機科學與技術專業(yè)本科畢業(yè)論文(設計)
- 計算機科學與技術專業(yè)本科畢業(yè)論文小區(qū)物業(yè)管理系統(tǒng)
- 2002級計算機本科畢業(yè)論文組織工作計劃
- 計算機在線教育系統(tǒng)畢業(yè)論文
評論
0/150
提交評論