畢業(yè)設計(論文)C#在線考試系統(tǒng)的設計與實現(xiàn)_第1頁
畢業(yè)設計(論文)C#在線考試系統(tǒng)的設計與實現(xiàn)_第2頁
畢業(yè)設計(論文)C#在線考試系統(tǒng)的設計與實現(xiàn)_第3頁
畢業(yè)設計(論文)C#在線考試系統(tǒng)的設計與實現(xiàn)_第4頁
畢業(yè)設計(論文)C#在線考試系統(tǒng)的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 中中 原原 工工 學學 院院 畢畢 業(yè)業(yè) 實實 訓訓 任任 務務 書書 2011 年 3 月 1 日 學生姓名學生姓名學號學號 專專 業(yè)業(yè)軟件技術軟件技術班級班級編碼編碼 092 課題名稱課題名稱在線考試系統(tǒng)的設計與實現(xiàn)在線考試系統(tǒng)的設計與實現(xiàn) 課題來源課題來源 校內(nèi)實訓模擬試題校內(nèi)實訓模擬試題 指導教師指導教師高亮高亮專業(yè)專業(yè)軟件工程管理軟件工程管理職稱職稱講師講師 課題說明:課題說明: 本系統(tǒng)為方便軟件學院學生的考試管理,提高軟件教學的質(zhì)量,而開發(fā)在線 考試系統(tǒng)以用于現(xiàn)在多媒體教學的需要,方便考生查詢,也方便給予了老師隨時了 解學生學習狀況。我們做的簡單在線考試系統(tǒng)面向的用戶群有三種,一

2、種是參加考 試的考生,一種是老師,另外一種是系統(tǒng)管理員。詳細功能如下: 1. 管理員: 班級管理,系部管理,學生管理,教師管理和管理員管理。 2. 學生端:學生查看學生個人信息,查詢成績,修改密碼,以及選擇試卷并 進入相應的考試界面進行答題(可以保存試卷,提交試卷和下載已經(jīng)打過 的答案) 。 3、教師端:教師可以查看自己的個人信息,修改密碼,維護自己的課程和每 個科目的章節(jié),題型管理和題庫管理,可查看學生的成績,可以隨機或者按照章節(jié) 組卷,然后手工判卷,并反饋教師意見。 承擔的任務:承擔的任務: 管理員端 :(學生管理、教師管理、管理員管理、系部管理、班級管理、修改 密碼) (參與) 教師端:

3、 (組卷、評卷、題型管理、題庫管理、課程管理、章節(jié)管理、查詢成 績、修改密碼) (參與) 學生端:(查看學生個人信息、學生成績查詢、選擇試卷、考試試卷、修改密 碼) (獨立完成) 中中 原原 工工 學學 院院 畢畢 業(yè)業(yè) 實實 訓訓 任任 務務 書書 2011 年 3 月 1 日 工作進度安排:工作進度安排: 2011-3-21 至 2011-4-3 : 需求分析階段 2011-4-4 至 2011-4-17 :設計界面階段 2011-4-18 至 2011-5-1: 編碼階段 2011-5-2 至 2011-5-13: 測試階段 指導教師簽字:指導教師簽字: 年年 月月 日日 實訓單位意見實

4、訓單位意見 簽章:簽章: 年年 月月 日日 學學院院意意見見 簽章:簽章: 年年 月月 日日 中中 原原 工工 學學 院院 畢畢 業(yè)業(yè) 實實 訓訓 評評 審審 表表 學號學號200907012215姓名姓名張霄專業(yè)專業(yè)軟件技術班級班級編碼 092 題目題目在線考試系統(tǒng) 指指 導導 教教 師師 評評 語語 成績(百分制):成績(百分制): 指導教師簽名:指導教師簽名: 年年 月月 日日 軟軟軟軟 件件件件 學學學學 院院院院 畢業(yè)實訓報告畢業(yè)實訓報告 課題名稱:課題名稱: 在線考試系統(tǒng)的設計與實現(xiàn) 專專 業(yè):業(yè): 軟件技術 (軟件編碼及應用方向) 班班 級:級: 編碼 092 學學 號:號: 2

5、00907012215 學生姓名:學生姓名: 指導教師:指導教師: 2011 年年 5 月月 15 日日 摘 要 隨著計算機網(wǎng)絡技術和網(wǎng)絡教育的不斷發(fā)展,傳統(tǒng)的基于紙筆的考試形式已不再適 應現(xiàn)在的發(fā)展需要,計算機在線考試正在逐步取代傳統(tǒng)考試。在線考試系統(tǒng)利用網(wǎng)絡實 現(xiàn)在線考試和評分等環(huán)節(jié),現(xiàn)在教考分離,在一定程度上減少了形象考試的主觀因素, 同時減少了教師的工作量。在線考試系統(tǒng)的設計就是基于上述目的開發(fā)設計的。 本系統(tǒng)主要包括考生考試、教師組卷給分、管理員管理三大模塊,具有在線考試、 成績查詢、試卷管理、組卷和評分、用戶管理等功能。本系統(tǒng)利用了微軟的.net 平臺和 sql server 20

6、05 數(shù)據(jù)庫進行開發(fā),采用了工廠模式的三層架構,同時對系統(tǒng)的工作原理、 需求分析和總體設計做了簡要的概述。 關鍵詞: 在線考試系統(tǒng); c# ;sql server 2005 目 錄 摘摘 要要.ii 第第 1 章章項目分析項目分析.1 1.1 問題描述.1 1.2 技術分析.1 1.3 工程進度計劃.2 第第 2 章章 系統(tǒng)分析與設計系統(tǒng)分析與設計.3 2.1 系統(tǒng)分析.3 2.1.1 參與者.3 2.1.2 用例及用例規(guī)約.3 2.1.3 用例圖.4 2.2 系統(tǒng)設計.5 2.2.1 時序圖.5 2.2.2 類圖.8 2.2.3 系統(tǒng)體系結(jié)構設計.10 2.3 數(shù)據(jù)庫設計.10 2.3.1

7、e-r 圖.11 2.3.2 關系模式.12 2.3.3 表的設計.13 第第 3 章章 實現(xiàn)與測試實現(xiàn)與測試.18 3.1 學生選擇試卷.18 3.1.1 活動圖.19 3.1.2 界面.19 3.1.3 代碼.20 3.1.4 測試用例.22 3.2 學生進行考試.22 3.2.1 活動圖.23 3.2.2 界面.23 3.2.3 代碼.28 3.2.4 測試用例.31 第第 4 章章 結(jié)束語結(jié)束語.32 附錄附錄: 主要源程序主要源程序.34 第 1 章 項目分析 近年來,互聯(lián)網(wǎng)和計算機的迅速發(fā)展,人們的生活、思維、工作、教育以及受教育 等方式都發(fā)生了改變。開發(fā)、應用能夠整合教育測評理論

8、、方法和現(xiàn)在信息技術手段的 在線考試系統(tǒng),為學生個性化學習提供“靈活、方便、科學、公平”的“個別化學習測 評服務”已成為教育工作者所面臨的一項重要任務,通過在線考試教師可對學生的學習 進行考核,了解學生的學習效果,為改進教學提供了依據(jù)。學生可通過網(wǎng)上自測了解自 己對教學內(nèi)容的掌握情況,提高學習興趣。題庫的及時更新和維護,保證試題庫中的試 題更好地適應教學要求,在線考試時就可以減少老師的閱卷工作量,提高老師的工作效 率。所以開發(fā)一個在線考試管理系統(tǒng)勢在必行。它相對于紙介質(zhì)考試而言具有省時、省 力、存儲方便等優(yōu)點?,F(xiàn)在已經(jīng)被越來越多地應用到各種層次和領域的考試當中。因此, 在線考試系統(tǒng)的開發(fā)有著必

9、要意義。 1.1 問題描述 1、在線考試系統(tǒng)解決教師隨機組卷和按章節(jié)組卷的問題。 2、在線考試系統(tǒng)解決學生隨機選擇試卷、顯示試卷、答卷、保存答案的問題。 3、在線考試系統(tǒng)解決教師在計算機上手動判分的問題。 4、在線考試系統(tǒng)能夠?qū)W生、教師、試題庫等的管理。 1.2 技術分析 在線考試系統(tǒng)主要使用的開發(fā)工具有:visual studio 2005 、sql server 2005。visual studio 2005 為系統(tǒng)提供開發(fā)環(huán)境,sql server 2005 提供連接的數(shù)據(jù)庫, 在線考試系統(tǒng)是基于工廠模式的三層架構。 visual studio 2005 是微軟公司推出的最新程序開發(fā)工

10、具,是 visual stuido.net 重要組 成部分,在 visual studio.net 平臺上使用 c#語言可以開發(fā)各種各樣的程序。 sql server 2005 是結(jié)構化查詢語言的縮寫,是一種介于關系代數(shù)與關系演算之間的 語言,是一種用來與關系數(shù)據(jù)庫管理系統(tǒng)通信的標準計算機語言。其功能包括數(shù)據(jù)查詢、 數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制四方面,是一個通用的、功能極強的關系數(shù)據(jù)庫語言, 目前已成為關系數(shù)據(jù)庫的標準語言。 基于工廠模式的三層架構可以很容易的用新的實現(xiàn)來代替原有層次的實現(xiàn),降低層 與層之間的依賴,有利于標準化,利于各層之間的復用。 1.3 工程進度計劃 2011-3-21 至

11、 2011-4-3 : 需求分析階段 2011-4-4 至 2011-4-17 :設計界面階段 2011-4-18 至 2011-5-1: 編碼階段 2011-5-2 至 2011-5-13: 測試階段 第 2 章 系統(tǒng)分析與設計 2.1 系統(tǒng)分析 在線考試系統(tǒng)在以后應用過程中越來越普遍的系統(tǒng),本系統(tǒng)是基于 c/s 的系統(tǒng)。在 在線考試中學生可以選擇試卷、進行考試、查詢成績;教師可以組卷、批改卷子、添加 試題;管理員可以對用戶進行管理。 系統(tǒng)的界面設計也分為學生、教師、管理員三大塊。 2.1.1 參與者 學生 教師 管理員 2.1.2 用例及用例規(guī)約 用例模型通常由一組用例組成,其基本組成部件

12、是用例、參與者和系統(tǒng)。 1、登錄的用例規(guī)約如表 2.1 所示: 表 2.1 用戶登錄用例規(guī)約 用例名稱:用戶登錄 用例 id:01 關聯(lián)角色:學生 教師 管理員 用例說明:系統(tǒng)驗證用戶身份合法性后進入系統(tǒng) 前置條件:無 基本事件流:1.用戶請求系統(tǒng)登陸 2.系統(tǒng)彈出系統(tǒng)登陸頁面 3.用戶輸入用戶名信息 4.用戶輸入口令信息 5.用戶選擇登錄角色信息 6.用戶點擊確認登錄按鈕 7.系統(tǒng)查詢數(shù)據(jù)庫獲取用戶信息賦予相應權限,根據(jù)用戶權限在管理機 能頁面上顯示相應系統(tǒng)主界面 8.用例結(jié)束 其它事件流: 1.用戶名信息為空 2.系統(tǒng)提示用戶名信息不能為空 3.用例結(jié)束 異常事件流: 1.登陸失敗 2.系

13、統(tǒng)登陸時出現(xiàn)系統(tǒng)故障(例如網(wǎng)絡故障或數(shù)據(jù)庫服務器故障)彈出 異常界面,提示系統(tǒng)登陸失敗 后置條件:用戶登錄成功,進入系統(tǒng)主界面 2、學生考試端的用例規(guī)約如表 2.2 所示: 表 2.2 學生考試端用例規(guī)約 用例名稱:學生考試 用例 id:02 關聯(lián)角色:管理員 教師 用例說明:系統(tǒng)驗證用戶身份為學生后才能進入 前置條件:身份為學生 基本事件流:1.學生請求考試 2.系統(tǒng)隨機選擇試卷 3.顯示隨機試卷的基本信息 4.學生進入考試 5.學生保存答案 6.學生提交試卷 7.學生答卷過程中中途斷電而未提交試卷,可重新登錄進入考試試卷并 下載已答過的答案,并提交試卷。 8.用例結(jié)束 其它事件流: 1.學

14、生信息查詢 2.學生成績查詢 3.修改密碼 4.用例結(jié)束 異常事件流: 1.選擇試卷失敗 2.學生考試時出現(xiàn)系統(tǒng)故障(例如網(wǎng)絡故障或數(shù)據(jù)庫服務器故障)彈出 異常界面,考試失敗 后置條件:選擇試卷后,進入考試界面 2.1.3 用例圖 用例圖描述軟件系統(tǒng)和外部參與者之間的交互。在線考試系統(tǒng)的學生端、教師端和 管理員端的用例圖如下所示: 1、 學生端用例圖如 2.1 所示: 圖 2.1 學生端用例圖 2、教師端用例圖如 2.2 所示: 圖 2.2 教師端用例圖 3、管理員端用例圖如 2.3 所示: 圖 2.3 管理員端用例圖 2.2 系統(tǒng)設計 在軟件開發(fā)時期,設計階段是富有活力和最需要發(fā)揮創(chuàng)造力的階

15、段。設計的目標, 是細化解決方案的可視化設計模式,確保設計模型終能平滑的過度到程序代碼。設計的 任務就是把分析階段產(chǎn)生分析模型轉(zhuǎn)換為用適當手段表示的軟件設計模型。 2.2.1 時序圖 時序圖用來描述對象之間的動態(tài)交互,著重體現(xiàn)對象間消息傳遞的時間順序。它以 垂直軸表示時間,水平軸表示不同的對象。對象用一個帶有垂直虛線的矩形框表示,并 標有對象名和類名。垂直虛線是對象的生命線,用于表示在某段時間內(nèi)對象是存在的。 對象間的通信在對象的生命線間通過消息符號來表示,消息的箭頭指明消息的類型。時 序圖中的消息可以是信號或操作調(diào)用。消息可以用消息名及參數(shù)來標識。消息還可帶有 條件表達式,表示分支或決定是否

16、發(fā)送消息。如果用于表示分支,則每個分支是相互排 斥的,即在某一時刻僅可發(fā)送分支中的一個消息。在時序圖的左邊可以有說明信息,用 于說明消息發(fā)送的時刻,描述動作的執(zhí)行情況以及約束信息等。 1、學生個人信息查詢 學生請求查看自己的個人信息,系統(tǒng)根據(jù)學生登錄時的信息,在學生信息表中找到 符合條件的信息反饋給學生。查看學生個人信息時序圖如 2.4 所示: 圖 2.4 學生個人信息時序圖 2、學生成績查詢 學生請求查看考試成績,系統(tǒng)根據(jù)學生的基本信息,在學生成績表中找到符合條件 的信息反饋給學生。查看學生成績時序圖如 2.5 所示: 圖 2.5 學生成績查詢時序圖 3、學生修改密碼 學生請求修改自己的密碼

17、,系統(tǒng)根據(jù)學生修改的信息,在學生信息表中插入修改的 信息并提示學生修改結(jié)果。查看學生修改密碼的時序圖如 2.6 所示: 圖 2.6 學生修改密碼時序圖 4、學生考試 學生想考試系統(tǒng)請求考試,考試系統(tǒng)為學生查找該學生可以進行的考試科目和相對 應的試卷,并把試卷信息反饋給學生。學生進入考試狀態(tài)開始答題,并保存試卷??荚?結(jié)束時,學生應提交試卷。學生考試時序圖如 2.7 所示: 圖 2.7 學生考試時序圖 2.2.2 類圖 通過時序圖基本的類已經(jīng)出現(xiàn),時序圖中的消息其實對應的是類的方法,從用例規(guī) 約中可以抽取類的屬性,通過不斷地迭代可以得到設計類圖。設計類在此處只將重要的 相關類詳細描述。 1、學生

18、類 學生類包含的屬性主要是學生編號,學生姓名,密碼,出生年月,年齡,性別,地 址,所在系部,所在班級。學生類的方法主要是一些增、刪、改、查等基本操作。設計 類圖如圖 2.7 所示: 圖 2.8 學生類 2、學生試卷類 學生試卷類包括的屬性有學生編號,試卷編號,開始時間,結(jié)束時間,剩余時間。 學生試卷類主要的方法有隨機選擇試卷。設計學生試卷類如 2.8 所示: 圖 2.9 學生試卷類 3、學生答卷類 學生答卷類主要的屬性有試卷編號,學生編號,題目編號,學生答案,學生得分。 設計學生答卷類如圖 2.9 所示: 圖 2.10 學生答卷類 4、學生成績類 學生成績類主要屬性包括試卷編號,學生編號,學生

19、成績。學生成績類主要的方法 查看學生成績。設計學生成績類如圖 2.10 所示 圖 2.11 學生成績類 5、學生端各個類之間的聯(lián)系 學生根據(jù)自己要考試的科目隨機選擇試卷進行考試,學生保存并提交考試試卷。老 師評卷后,學生可以查看自己的考試成績。如圖 2.11 所示: 用例圖描述軟件系統(tǒng)和外部參與者之間的交互。在線考試系統(tǒng)的學生端、教師端和 管理員端的用例圖如下所示: 1、 學生端用例圖如 2.1 所示: 圖 2.1 學生端用例圖 2、教師端用例圖如 2.2 所示: 圖 2.2 教師端用例圖 3、管理員端用例圖如 2.3 所示: 圖 2.3 管理員端用例圖 2.2 系統(tǒng)設計 在軟件開發(fā)時期,設計

20、階段是富有活力和最需要發(fā)揮創(chuàng)造力的階段。設計的目標, 是細化解決方案的可視化設計模式,確保設計模型終能平滑的過度到程序代碼。設計的 任務就是把分析階段產(chǎn)生分析模型轉(zhuǎn)換為用適當手段表示的軟件設計模型。 2.2.1 時序圖 時序圖用來描述對象之間的動態(tài)交互,著重體現(xiàn)對象間消息傳遞的時間順序。它以 垂直軸表示時間,水平軸表示不同的對象。對象用一個帶有垂直虛線的矩形框表示,并 標有對象名和類名。垂直虛線是對象的生命線,用于表示在某段時間內(nèi)對象是存在的。 對象間的通信在對象的生命線間通過消息符號來表示,消息的箭頭指明消息的類型。時 序圖中的消息可以是信號或操作調(diào)用。消息可以用消息名及參數(shù)來標識。消息還可

21、帶有 條件表達式,表示分支或決定是否發(fā)送消息。如果用于表示分支,則每個分支是相互排 斥的,即在某一時刻僅可發(fā)送分支中的一個消息。在時序圖的左邊可以有說明信息,用 于說明消息發(fā)送的時刻,描述動作的執(zhí)行情況以及約束信息等。 1、學生個人信息查詢 學生請求查看自己的個人信息,系統(tǒng)根據(jù)學生登錄時的信息,在學生信息表中找到 符合條件的信息反饋給學生。查看學生個人信息時序圖如 2.4 所示: 圖 2.4 學生個人信息時序圖 2、學生成績查詢 學生請求查看考試成績,系統(tǒng)根據(jù)學生的基本信息,在學生成績表中找到符合條件 的信息反饋給學生。查看學生成績時序圖如 2.5 所示: 圖 2.5 學生成績查詢時序圖 3、

22、學生修改密碼 學生請求修改自己的密碼,系統(tǒng)根據(jù)學生修改的信息,在學生信息表中插入修改的 信息并提示學生修改結(jié)果。查看學生修改密碼的時序圖如 2.6 所示: 圖 2.6 學生修改密碼時序圖 4、學生考試 學生想考試系統(tǒng)請求考試,考試系統(tǒng)為學生查找該學生可以進行的考試科目和相對 應的試卷,并把試卷信息反饋給學生。學生進入考試狀態(tài)開始答題,并保存試卷??荚?結(jié)束時,學生應提交試卷。學生考試時序圖如 2.7 所示: 圖 2.7 學生考試時序圖 2.2.2 類圖 通過時序圖基本的類已經(jīng)出現(xiàn),時序圖中的消息其實對應的是類的方法,從用例規(guī) 約中可以抽取類的屬性,通過不斷地迭代可以得到設計類圖。設計類在此處只

23、將重要的 相關類詳細描述。 1、學生類 學生類包含的屬性主要是學生編號,學生姓名,密碼,出生年月,年齡,性別,地 址,所在系部,所在班級。學生類的方法主要是一些增、刪、改、查等基本操作。設計 類圖如圖 2.7 所示: 圖 2.8 學生類 2、學生試卷類 學生試卷類包括的屬性有學生編號,試卷編號,開始時間,結(jié)束時間,剩余時間。 學生試卷類主要的方法有隨機選擇試卷。設計學生試卷類如 2.8 所示: 圖 2.9 學生試卷類 3、學生答卷類 學生答卷類主要的屬性有試卷編號,學生編號,題目編號,學生答案,學生得分。 設計學生答卷類如圖 2.9 所示: 圖 2.10 學生答卷類 4、學生成績類 學生成績類

24、主要屬性包括試卷編號,學生編號,學生成績。學生成績類主要的方法 查看學生成績。設計學生成績類如圖 2.10 所示 圖 2.11 學生成績類 5、學生端各個類之間的聯(lián)系 學生根據(jù)自己要考試的科目隨機選擇試卷進行考試,學生保存并提交考試試卷。老 師評卷后,學生可以查看自己的考試成績。如圖 2.11 所示: 圖 2.12 各類聯(lián)系 圖 2.12 各類聯(lián)系 2.2.3 系統(tǒng)體系結(jié)構設計 結(jié)構化體系結(jié)構是完成模塊設計的基礎。保證了程序的清晰、易讀;逐步細化實現(xiàn) 程序的正確、可靠。在線考試系統(tǒng)的主要體系結(jié)構如圖所示: 在線考試系統(tǒng) 管理員教師學生 系 部 管 理 班 級 管 理 教 師 管 理 學 生 管

25、 理 管 理 員 管 理 修 改 密 碼 判 卷 題 型 管 理 題 庫 管 理 課 程 管 理 章 節(jié) 管 理 查 看 學 生 成 績 查 看 教 師 信 息 修 改 密 碼 組 卷 查 看 學 生 信 息 查 看 個 人 成 績 選 擇 試 卷 修 改 密 碼 答 卷 圖 2.13 結(jié)構圖 2.3 數(shù)據(jù)庫設計 數(shù)據(jù)庫(database)是按照數(shù)據(jù)結(jié)構織、存儲和管理數(shù)據(jù)的倉庫,它產(chǎn)生于距今五 十年前,隨著信息技術場的發(fā)展,特別是二十世紀九十年代以后,數(shù)據(jù)管理再僅僅是存 儲和管理數(shù)據(jù),而轉(zhuǎn)變成用戶所需要的各種數(shù)據(jù)管理的方式。數(shù)據(jù)庫有很多種類型,從 最簡單的存儲有各種數(shù)據(jù)的表格到能夠進行海量數(shù)據(jù)

26、存儲的大型數(shù)據(jù)庫系統(tǒng)都在各個方 面得到了廣泛的應用。 數(shù)據(jù)庫設計(database design)是指對于一個給定的應用環(huán)境,構造最優(yōu)的數(shù)據(jù)庫模 式,建立數(shù)據(jù)庫及其應用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應用需求 (信息要求和處理要求) 。數(shù)據(jù)庫設計是建立數(shù)據(jù)庫及其應用系統(tǒng)的技術,是信息系統(tǒng)開 發(fā)和建議中的核心技術。由于數(shù)據(jù)庫應用系統(tǒng)的復雜性,為了支持相關程序運行,數(shù)據(jù) 庫設計就變得異常復雜,因此最佳設計不可能一蹴而就,而只能是一種“反復探尋,逐 步求精”的過程,也就是規(guī)劃和結(jié)構化數(shù)據(jù)庫中的數(shù)據(jù)對象以及這些數(shù)據(jù)對象之間關系 的過程。 2.3.1 e-r 圖 e-r 圖是用來描述現(xiàn)實世界

27、的概念模型,構成 e-r 圖的基本要素是實體型、屬性和聯(lián) 系,其表示方法為: 實體型(entity):具有相同屬性的實體具有相同的特征和性質(zhì),用實體名及其屬性 名集合來抽象和刻畫同類實體;在 e-r 圖中用矩形表示,矩形框內(nèi)寫明實體名;比如學生 張三、學生李四體。如果是弱實體的話,在矩形外面再套實線矩形。 屬性(attribute):實體所具有的某一特性,一個實體可由若干個屬性來刻畫。在 e- r 圖中用橢圓形表示,并用無向邊將其與相應的實體連接起來;比如學生的姓名、學號、 性別、都是屬性。如果是多值屬性的話,再橢圓形外面再套實線橢圓。如果是派生屬性 則用虛線橢圓表示。 聯(lián)系(relation

28、ship):聯(lián)系也稱關系,信息世界中反映實體內(nèi)部或?qū)嶓w之間的聯(lián)系。 實體內(nèi)部的聯(lián)系通常是指組成實體的各屬性之間的聯(lián)系;實體之間的聯(lián)系通常是指不同 實體集之間的聯(lián)系。在 e-r 圖中用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與 有關實體連接起來,同時在無向邊旁標上聯(lián)系的類型(1 : 1,1 : n 或 m : n) 。 比如 老師給學生授課存在授課關系,學生選課存在選課關系。如果是弱實體的聯(lián)系則在菱形 外面再套菱形。 該系統(tǒng)的模型主要描述了學生,教師,管理員及實體的那些屬性,還有他們之間的 關系。如圖 2.14 所示: 教師 管理員 系部 管理 查看 管理 管理 學 生 用戶名 密碼 密碼

29、出生日期 姓名 學號 用戶 名 密碼 職稱 簡介 家庭住址 專業(yè) 住址年齡 性別 系部號系部名 管理 班級 班級編號班級號 所屬系 郵箱 班級 n m mn 1 m 判 試 卷 m n 組成 試 卷 1 n 管理 學 生 成 績 m n m n m n 選擇考試 試卷試卷 m m nn 單選題主觀題 多選題判斷題 m m m 圖 2.14 在線考試系統(tǒng) e-r 圖 2.3.2 關系模式 整個系統(tǒng)各實體可用以下關系來表示(其中主鍵已用下劃線標識): 管理員(管理員編號、管理員名字、管理員密碼) 教師(教師號、教師名、密碼、教師職稱、職務、電話、通訊地址、e-mail、簡介) 學生(學號、姓名、密

30、碼、出生日期、性別、年齡、家庭地址、主修專業(yè)、班級編 號) 系部(系部編號、系部名稱) 班級(班級編號,班級名,系部號) 課程(課程編號,教師編號,科目名稱) 試卷(試卷號,課程編號,開始時間,結(jié)束時間) 試卷班級(試卷號,所屬班級) 成績(試卷號,學生學號,成績) 分值(試卷號,題型,數(shù)量,分值) 組卷(試卷號,試題序號,題型,試題號) 答卷(編號,試卷號,學生學號,題型,試題號,學生答案,學生得分) 教師反饋(試卷號,學生編號,教師號,反饋信息) 題型(題型編號,題型名稱,所屬科目) 章節(jié)(章節(jié)編號,章節(jié)名,課程編號) 主觀題(試題號,題型編號,試題題目,答案,章節(jié)編號) 單選題(試題號,

31、試題題目,a,b,c,d,正確答案,章節(jié)編號) 多選題(試題號,試題題目,a,b,c,d,正確答案,章節(jié)編號) 判斷題(試題號,試題題目,正確答案,章節(jié)編號) 試卷是否提交(學生編號,試卷編號,是否提交) 教師職稱(職稱編號,教師職稱) 2.3.3 表的設計 表 2.3 學生信息表 序號列名字段說明數(shù)據(jù)類型長度主鍵允許空 1 stuid學生編號varchar50是否 2 stuname學生姓名varchar50否是 3 stupwd密碼varchar50否是 4 stubrith出生年月varchar50否是 5 stusex性別varchar4否是 6 stuage年齡int否是 7 stu

32、address家庭住址varchar50否是 8 stumajor所屬系部varchar50否是 9 classid所屬班級varchar50否是 表 2.4 班級信息表 序號列名字段說明數(shù)據(jù)類型長度主 鍵 允許空 1classid班級編號varchar50是否 2classname班級名稱varchar50否是 3depid系部編號varchar50否是 2depname系部名稱varchar50否是 表 2.5 章節(jié)信息表 序號列名字段說明數(shù)據(jù)類型長度主 鍵 允許空 1chapterid章節(jié)編號varchar50是否 2chaptername章節(jié)名稱varchar50否是 3 course

33、rid科目編號varchar50否是 表 2.6 判斷題信息表 序號列名字段說明數(shù)據(jù)類型長度主 鍵 允許空 1 selectid判斷題編號varchar50是否 2 questiontitle判斷題題目varchar100否是 3 answer正確答案varchar50否是 4 chapterid章節(jié)編號varchar50否是 表 2.7 單選題信息表 序號列名字段說明數(shù)據(jù)類型長度主 鍵 允許空 1selectid單選題編號varchar50是否 2questiontitle單選題題目varchar100否是 3aa 答案varchar50否是 4bb 答案varchar50否是 5cc 答案

34、varchar50否是 6dd 答案varchar50否是 7answer正確答案varchar50否是 8chapterid章節(jié)編號varchar50否是 表 2.8 多選題信息表 序號列名字段說明數(shù)據(jù)類型長度主 鍵 允許空 1 selectid多選題編號varchar50是否 2 questiontitle多選題題目varchar100否是 3 aa 答案varchar50否是 4 bb 答案varchar50否是 5 cc 答案varchar50否是 6 dd 答案varchar50否是 7 answer正確答案varchar50否是 8 chapterid章節(jié)編號varchar50否是

35、 表 2.9 客觀題信息表 序號列名字段說明數(shù)據(jù)類型長度主鍵允許空 1 subid客觀題編號varchar50是否 2 typeid客觀題題型編 號 varchar50否是 3 questiontitle客觀題題題目varchar100否是 4 answer正確答案varchar8000否是 5 chapterid章節(jié)編號varchar50否是 表 2.10 題型管理信息表 序號列名字段說明數(shù)據(jù)類型長度主鍵允許空 1 typeid題型編號varchar50是否 2 questiontypename題型名varchar50否是 3 courseid所屬科目編 號 varchar50否是 表 2.

36、11 試卷分值管理表 序號列名字段說明數(shù)據(jù)類型長度主鍵允許空 1 paperid試卷編號varchar50是否 2 questiontypename題型名varchar50否是 3 number出題個數(shù)int 否是 4 value分值iint否是 表 2.12 生成試卷表 表 2.13 試卷班級 2.14 學生試卷信息表 序號列名字段說明數(shù)據(jù)類型長度主鍵允許空 1 stuid學生編號varchar50否是 2 paperid試卷編號varchar50否是 3 startime開始時間datetime否是 4 endtime結(jié)束時間datetime否是 5 submit是否提交varchar50

37、否是 6 resulttime剩余時間int否是 序號列名字段說明數(shù)據(jù)類型長度主鍵允許空 1 paperid試卷編號varchar50是否 2 questionsort順序varchar50否是 3 questiontypename題型名int 否是 4 questionid試題編號iint否是 序號列名字段說明數(shù)據(jù)類型長度主鍵允許空 1paperid試卷編號varchar50否是 2classid班級編號varchar50否是 表 2.15 學生成績信息表 序號列名字段說明數(shù)據(jù)類型長度主鍵允許空 1paperid試卷編號varchar50否是 2stuid學生編號varchar50否是 3s

38、core成績int否是 表 2.16 教師反饋信息表 序號列名字段說明數(shù)據(jù)類型長度主鍵允許空 1 paperid試卷編號varchar50否是 2 stuid學生編號varchar50否是 3 teacherid教師編號varchar50否是 4 back反饋意見varchar40000否是 表 2.17 試卷信息表 表 2.18 學生答卷信息表 序號列名字段說明數(shù)據(jù)類型長度主鍵允許空 1id編號varchar50是否 2paperid試卷編號varchar50否是 3stuid學生編號varchar50否是 4questiontypename題型名varchar50否是 5questioni

39、d試題編號varchar50否是 6stuanswer學生答案varchar50否是 7stuscore學生得分varchar50否是 序號列名字段說明數(shù)據(jù)類型長度主鍵允許空 1 paperid試卷編號varchar50是否 2 courseid科目編號varchar50否是 3 startime開始時間datetime否是 4 endtime結(jié)束時間datetime否是 第 3 章 實現(xiàn)與測試 在線考試系統(tǒng)是一個為教師、學生提供一個在線考試的系統(tǒng)。該系統(tǒng)包含學生端、 教師端、管理員端。該系統(tǒng)為學生考試提供了一個方便的平臺,也為教師改卷提供了簡 單的程序,同時也為管理員的管理提供了一個入口。會

40、對學生作弊有一定的預防能力, 教師批卷會大大提高其效率,也方便了管理員的管理。該課題不僅符合現(xiàn)在考試系統(tǒng)的 需求,同時還操作簡單、易學,是教師、學生的有用的工具。 3.1 學生選擇試卷 在線考試系統(tǒng)是為了方便教師和學生所設計的系統(tǒng),它不僅方便了教師每次出試卷 時不用四處尋找題型和考題和教師可以隨時添加題型和考題,還使學生進行在線考試預 防考生作弊現(xiàn)象。 在這里為大家介紹學生端在進行考試之前要進行選擇試卷的功能,考生可以選擇自 己所要考試的科目,系統(tǒng)根據(jù)考生登錄時,判斷考生所在系部和班級選擇出該考生可以 考試的所有科目,再根據(jù)所有科目的考試時間和考生登錄考試窗體的時間進行比較,判 斷在該時間所能

41、進行的考試科目,考生就可以根據(jù)所要考試的科目進行選擇,然后系統(tǒng) 會隨機為該考生抽出一份考卷,學生就進入考試界面中進行考試。 在選擇考試界面中,主要是考生選擇所要的科目后,系統(tǒng)如何隨機為考生抽出一份 試卷和系統(tǒng)自動判斷考生在現(xiàn)在時間可以進行的考試科目的判斷。 3.1.1 活動圖 圖 3.1 學生選擇試卷活動圖 3.1.2 界面 在選擇界面中學生可以選擇考試科目,系統(tǒng)會自動為學生隨機選擇一份試卷,學生可 以在下面的 textbox 中看到學生考試試卷的基本信息:試卷號,考試科目,開始時間, 結(jié)束時間和總時間??忌x擇試卷界面如圖 3.2 所示: 圖 3.2 學生選擇試卷界面 3.1.3 代碼 隨機

42、產(chǎn)生試卷的代碼: string id = combobox2.selectedvalue.tostring(); int k = new bll.selecttest().sgetpapercount(id); if (k != 0) random r = new random(unchecked(int)datetime.now.ticks); int curr_que_num = (int)(k) * r.nextdouble() + 1); datatable dt2 = new bll.selecttest().sgetpaper(id); string paperid = dt2.r

43、owscurr_que_num - 10.tostring(); datatable dt = new bll.selecttest().selectpaper(paperid); model.updatepwd.paperid = dt.rows00.tostring(); datetime dt1 = datetime.now; if (dt1.hour (datetime)dt.rows03).hour) label3.text = 不能進行考試!; button1.enabled = false; else textbox1.text += 試卷號: + dt.rows00.tostr

44、ing(); textbox1.text += rn; textbox1.text += 考試科目: + combobox2.text; textbox1.text += rn; textbox1.text += 開始時間: + dt.rows02.tostring(); model.updatepwd.startime = (datetime)dt.rows02; textbox1.text += rn; textbox1.text += 結(jié)束時間 + dt.rows03.tostring(); model.updatepwd.endtime = (datetime)dt.rows03; t

45、extbox1.text += rn; if (dt1.hour = (datetime)dt.rows02).hour) int a1 = (datetime)dt.rows02).minute; int a2 = dt1.minute; int a3 = a2 - a1; if (a3 = 0) datatable table = new bll.selecttest().yesno(model.updatepwd.userid, model.updatepwd.paperid); if (table.rows.count = 0) label3.text = 可以進行考試!; else

46、label3.text = 你已考過此試卷!; button1.enabled = true; int hour = convert.toint32(datetime)dt.rows03).hour) - convert.toint32(datetime)dt.rows02).hour); int minute = convert.toint32(datetime)dt.rows03).minute) - convert.toint32(datetime)dt.rows02).minute); int alltime = hour * 60 + minute; resulttime = all

47、time - a2 + a1; model.updatepwd.resulttime = resulttime; textbox1.text += 考試總時間為: + alltime.tostring() + 分鐘; else if (a3 = 30) label3.text = 考試時間已過三十分鐘,該生無權考試!; else label3.text = 可以進行考試!; button1.enabled = true; int hour = convert.toint32(datetime)dt.rows03).hour) - convert.toint32(datetime)dt.rows

48、02).hour); int minute = convert.toint32(datetime)dt.rows03).minute) - convert.toint32(datetime)dt.rows02).minute); int alltime = hour * 60 + minute; resulttime = alltime - a3; model.updatepwd.resulttime = resulttime; textbox1.text += 考試總時間為: + alltime.tostring() + 分鐘; else textbox1.text = 沒有試卷,請選擇試卷

49、!; label3.text = 沒有試卷,請選擇試卷!; 3.1.4 測試用例 學生選擇試卷的測試用例: 表 3.1 測試用例 01 項目名稱在線考試系統(tǒng) 序號01 版本號1.0 說明 考生選擇試卷界面各組件均能正確響應鼠標鍵盤單擊事件, 操作成功后能正確進入考試界面 模塊登錄模塊優(yōu)先級1 測試目的 驗證:考生選擇試卷界面各組件均能正確響應鼠標鍵盤單擊 事件 初始條件學生登錄成功后,單擊選擇試卷進入該界面 步驟 1. 用學生登錄系統(tǒng),進入學生端的主界面 2. 鼠標單擊菜單上的進入考試系統(tǒng)或單擊左邊樹中的選擇試 卷 期望輸出lable 中輸出可以進行考試的字樣 實際輸出正確輸出,無誤 測試狀態(tài)

50、成功通過測試 編制人張霄 編制時間2010 年 05 月 19 日 備注其他窗口界面中各組件對鼠標鍵盤相應測試參照本測試用例 3.2 學生進行考試 學生考試界面主要是在線考試系統(tǒng)中最主要的功能中的一個,該界面也是該系統(tǒng)中 難做的一部分,在考試界面中,考生要進行考試,在考試中考生可以隨時保存自己已經(jīng) 答過的問題,還可以做完題之后直接單擊提交試卷按鈕系統(tǒng)自動保存答案。在考試中, 有時會遇見中途斷電或電腦自動關機的現(xiàn)象,所以系統(tǒng)提供了下載已經(jīng)保存的答案的功 能,所以考生只需要再次登錄在線考試系統(tǒng),系統(tǒng)就會自動跳到考試界面,考生單擊下 載已經(jīng)保存的答案的按鈕就可以看到考生之前的答案了,繼而可以繼續(xù)考試

51、。在考試時 間已到,而考生未提交試卷,系統(tǒng)會自動提交考試試卷,考生不能再作答。 3.2.1 活動圖 圖 3.3 考生考試活動圖 3.2.2 界面 在線考試系統(tǒng)中的考試界面大部分的控件都是自動生成的,它所有的題是在一個大 的 panel 中存放著,每個題型實在 groupbox 中放著,而每個題型中的每個題也是在一個 groupbox 中放著。再根據(jù)每個題型的高度來判斷每個題型所放置位置,以免導致每個題 型的高度不正確而引起題顯示不出來。 1、考生考試中的信息。如圖 3.4 所示: 圖 3.4 考生考試信息界面 2、在線考試系統(tǒng)中的判斷題,把兩個 radionbuttonn 放到一組,使僅僅兩個

52、形成互 斥事件。如圖 3.5 所示: 圖 3.5 判斷題 3、在線考試系統(tǒng)中的單選題,把四個 radionbuttonn 放到一組,使僅僅四個形成互 斥事件。如圖 3.6 所示: 圖 3.6 單選題 4、在線考試系統(tǒng)中的多選題,把四個 checkbox 放到一組,使僅僅四個形成互斥事 件。如圖 3.7 所示: 圖 3.7 多選題 5、在線考試系統(tǒng)中的客觀題。如圖 3.8 所示: 圖 3.8 客觀題 考生可以保存提交答案,在保存考生答案時。 對判斷題而言:是循環(huán)每個 radionbutton 按鈕,把考生的答案存在一個數(shù)組中并同 時把這題的編號也存在別一個數(shù)組中,然后遍歷判斷題中的題,找到與存放

53、試題編號的 數(shù)組中一樣的編號試題,然后根據(jù)試題編號數(shù)組找出學生答案數(shù)組中對應的學生答案, 然后把學生答案插入到學生答卷表中。單選題與判斷題的保存方式一樣。 對于多選題來說:首先要循環(huán)所有的 checkbox 控件,以四個為一組進行大循環(huán),在 大循環(huán)中再循環(huán)那四個 checkbox 控件,小循環(huán)結(jié)束后把答案再輸給多選題的學生答案數(shù) 組中,并把對應的題目編號輸給多選題的試題編號的數(shù)組中。然后再遍歷所有的多選題, 找出與多選題試題編號的數(shù)組相對應的試題編號和與多選題學生答案的數(shù)組中的考生答 案,最后把考生答案插入到學生答卷表中。 對于客觀題來說:是循環(huán)每個 textbox 控件,把考生的答案存在一個

54、數(shù)組中并同時 把這題的編號也存在別一個數(shù)組中,然后遍歷客觀題中的題,找到與存放試題編號的數(shù) 組中一樣的編號試題,然后根據(jù)試題編號數(shù)組找出學生答案數(shù)組中對應的學生答案,然 后把學生答案插入到學生答卷表中 在提交按鈕中系統(tǒng)自動把學生的判斷題,單選題,多選題的得分已經(jīng)算出來了,并 且插入數(shù)據(jù)庫,讓老師講不會再去判單選題,判斷題,多選題了。 6、在線考試系統(tǒng)中的保存的判斷題。如圖 3.9 所示: 圖 3.9 判斷題 7、在線考試系統(tǒng)中的保存的單選題。如圖 3.10 所示: 圖 3.10 單選題 8、在線考試系統(tǒng)中的保存的多選題。如圖 3.11 所示: 圖 3.11 多選題 9、在線考試系統(tǒng)中的提交按鈕

55、,學生考完試后要進行提交,提交時會跳出一個文本 框問你是否要提交,單擊“是”時,提交成功,否則沒有提交試卷。如圖 3.12 所示: 圖 3.12 提示框 10、提交成功,所有控件不能再用。如圖 3.13 所示: 圖 3.13 提交后窗體 11、但學生沒有提交時,中途斷電或者是電腦自動關機時,考生可以再次登錄系統(tǒng) 會自動進入上次的考試界面并且學生還可以下載上次已經(jīng)答過的答案。如圖 3.14 所示: 圖 3.14 提示框 3.2.3 代碼 自動生成判斷題的代碼: public void jud() int s = 0; datatable quid = new bll.getpaper().get

56、questionid(判斷題, paperid); for (int j = 0; j quid.rows.count; j+) int num = quid.rows.count; group1 = new groupbox(); group1.top = 10 + (s % num) * 100; group1.size = new size(ff, 80); group1.left = 10; string questionid; questionid = quid.rowsj0.tostring(); datatable myjud = new bll.getpaper().getju

57、d(questionid); lab = new mylable(); group1 .myquestionid= quid.rowsj0.tostring(); lab.text = convert.tostring(j + 1) + 、 + myjud.rows01.tostring(); lab.ranswer = myjud.rows02.tostring(); lab.size = new size(ff, 20); lab.top = 15; lab.left = 25; radionbtn1 = new myradionbtn1(); radionbtn1.text = 是; r

58、adionbtn1.questionid = quid.rowsj0.tostring(); radionbtn1.left = 40; radionbtn1.top = 50; group1.controls.add(radionbtn1); myradionbtn1.myradionbtn1.add(radionbtn1); radionbtn1 = new myradionbtn1(); radionbtn1.text = 否; radionbtn1.questionid = quid.rowsj0.tostring(); radionbtn1.left = 260; radionbtn

59、1.top = 50; group1.controls.add(radionbtn1); myradionbtn1.myradionbtn1.add(radionbtn1); mylable.mylable.add(lab); group1.controls.add(lab); groupbox.groupbox1.add(group1); group.controls.add(group1); s+; int hh = quid.rows.count * 53; group.size = new size(ff, hh *2); sizetop0 = hh * 2; group.top =

60、20; group.left = 20 + (b / 8) * 100; mygroupbox.mygroupbox.add(group); panel1.controls.add(group); 保存單選題代碼: if (mytype.rowsi0.tostring() = 單選題) datatable quid = new bll.getpaper().getquestionid(單選題, paperid); /遍歷單選題中所有的radtionbtn的控件記錄學生正確答案 selectssanswer = new stringquid.rows.count * 2; selectsques

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論