在線考試系統(tǒng)項目報告_第1頁
在線考試系統(tǒng)項目報告_第2頁
在線考試系統(tǒng)項目報告_第3頁
在線考試系統(tǒng)項目報告_第4頁
在線考試系統(tǒng)項目報告_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上在線考試系統(tǒng)項目報告目錄第一章 需求分析1.1概念分析本系統(tǒng)的用戶可分為管理員、學生用戶及教師用戶三類。本系統(tǒng)共分為三個界面:一個界面用于管理員登錄,主要負責進行基本資料。題庫、試卷、成績的管理以及查詢等;另外一個界面用于登錄普通用戶,主要負責在線考試,查詢以往考試成績留言和在線交流等;還有一個界面用于教師登錄,只要負責度題型、科目進行設置,對學生做錯的題目進行分析。1.1.1管理員需求分析包括試卷管理,題庫管理,成績管理。(1)試卷管理:管理員可以從課程,各種題型的數(shù)量等方面對某份試卷進行修改和刪除,添加新試卷等。(2)題庫管理:管理員可以對題庫中的試題進行三種基本

2、操作:添加新的考題、刪除舊有考題、修改原有考題,其中試題類型包括判斷題、填空題、選擇題;對于每種類型的試題。教師可以設置題干、答案等屬性。(3)成績管理:管理員可以查看考生的考試成績,并針對不同的課程進行成績統(tǒng)計,包括考試人數(shù)、最高分、最低分、平均分以及個分數(shù)段得分人數(shù)等。(4)學生管理:管理員可以對用戶的資料進行查詢、刪除。1.1.2 學生需求分析包括在線考試、查詢以往考試成績等。(1)在線考試:學生可以任選時間進行在線考試,考試結束后,系統(tǒng)會根據(jù)已有的標準答案進行在線考試,考生可以立刻知道考試成績。(2)查詢以往考試成績:學生可以在線查詢以前參加的每門課程的相關信息1.1.3教師需求分析包

3、括試卷添加,題庫添加等。(1)試卷添加:教師可以添加試卷,可以從課程,各種題型的數(shù)量等方面對某份試卷進行添加。(2)題庫添加:教師可以對添加新的考題、刪除舊有考題、修改原有考題,其中試題類型包括判斷題、填空題、選擇題;對于每種類型的試題。教師可以設置題干、答案等屬性。1.2系統(tǒng)分析1.2.1在管理端子系統(tǒng)中:(1)系統(tǒng)維護模塊主要是針對管理員,學生,教師,班級等信息進行修改操作; (2)權限管理模塊主要是對各使用者對系統(tǒng)的操作權限進行管理。例如學生只能查看個人信息,選擇試卷,答卷,查看成績等;教師只能出題,組卷,判卷,查看學生成績等;管理員可以全面對系統(tǒng)進行操作及數(shù)據(jù)維護等。1.2.2在教師端

4、子系統(tǒng)中:(1)出題模塊主要是由教師根據(jù)題型不同向題庫中輸入題目以及答案,方便組卷。題目自動存入對應的數(shù)據(jù)庫中。(2)組卷模塊中可以由系統(tǒng)隨機組卷,輸入各題型的數(shù)量,分值,系統(tǒng)自動從題庫中隨機選擇題目構成試卷;也可以由教師自主選擇題目進行出題。(3)統(tǒng)計成績模塊中教師可以根據(jù)學生答卷情況對成績進行統(tǒng)計,方便教師對學生答卷情況有直觀了解,利于教學。(4)提交成績模塊由教師將學生綜合成績情況輸入相關管理系統(tǒng)。1.2.3在學生端子系統(tǒng)中:(1)選擇試卷模塊由學生選擇所要進行的考試試卷。(2)答卷模塊顯示學生所選試卷,供學生作答,選擇判斷直接對選項進行選擇,主觀題填寫在相應的文本框中。(3)交卷模塊會

5、自動根據(jù)題庫中的信息對學生的選擇判斷題進行判卷,減少了教師的工作量。1.3功能分析1.3.1功能模塊圖設計1.4用例圖設計1.4.1學生用例圖設計1.4.2教師用例圖設計第二章 系統(tǒng)設計2.1總體時序圖設計2.2數(shù)據(jù)庫設計2.2.1試卷類型表設計2.2.2試題表設計2.2.3試題內(nèi)容表設計2.2.4試卷表設計2.2.5試卷詳情表設計2.2.6試卷分值表設計2.2.7考生答卷表設計2.2.8考生答卷詳情表設計2.3表見關系設計2.3.1試題2.3.2章節(jié)試題統(tǒng)計 2.3.3試卷2.3.4試卷詳細 2.3.5試卷考題詳細 2.3.6考卷列表 第三章 程序設計3.1在線考試系統(tǒng)后臺程序?qū)崿F(xiàn)3.1.1

6、母版頁設計3.1.2后臺題庫添加頁面設計3.1.3后臺題庫管理頁面設計3.1.4后臺試卷生成3.1.5后臺試卷詳情查看頁面3.1.6后臺試卷管理頁面3.2在線考試系統(tǒng)前臺程序?qū)崿F(xiàn)3.2.1試卷列表頁面設計3.2.2前臺考試頁面設計第四章 編碼設計4.1試卷詳情的編碼public partial class Admin_OnlineExam_PaperDetail : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) if (!Page.IsPostBack) InitPageData(); priva

7、te void InitPageData() int choiceCount = 0, blankCount = 0, judgeCount = 0; double choicePoint = 0, blankPoint = 0, judgePoint = 0; String sql = "" String paperID = Request.QueryString"paperID" sql = " select * from UV_Exam_PaperQuestionDetail where PaperID=" + paperID;

8、 DataTable dtChoice = new DataTable(); dtChoice.Columns.Add("chooseNo"); dtChoice.Columns.Add("questionContent"); dtChoice.Columns.Add("RightAnswer"); dtChoice.Columns.Add("optionA"); dtChoice.Columns.Add("optionB"); dtChoice.Columns.Add("option

9、C"); dtChoice.Columns.Add("optionD"); DataTable dtBlank = new DataTable(); dtBlank.Columns.Add("questionContent"); dtBlank.Columns.Add("blankNo"); dtBlank.Columns.Add("RightAnswer"); DataTable dtJudge = new DataTable(); dtJudge.Columns.Add("questionC

10、ontent"); dtJudge.Columns.Add("judgeNo"); dtJudge.Columns.Add("RightAnswer"); String sqlQuery = sql + " and QuestionTypeID=1" DataTable dtAll = CommonUtils.GetTableBySql(sqlQuery).Copy(); for (int i = 0; i < dtAll.Rows.Count; i+) DataRow drAll = dtAll.Rowsi; Dat

11、aRow drTmp = dtChoice.NewRow(); Boolean isRightAnswer = Convert.ToBoolean(drAll"IsRight"); drTmp"chooseNo" = i / 4 + 1; if (i % 4 = 0) drTmp"questionContent" = drAll"QuestionContent" if (isRightAnswer) drTmp"RightAnswer" = "A" drTmp"op

12、tionA" = drAll"SelectContent" i+; drAll = dtAll.Rowsi; isRightAnswer = Convert.ToBoolean(drAll"IsRight"); if (i % 4 = 1) drTmp"optionB" = drAll"SelectContent" if (isRightAnswer) drTmp"RightAnswer" = "B" i+; isRightAnswer = Convert.ToBo

13、olean(drAll"IsRight"); drAll = dtAll.Rowsi; if (i % 4 = 2) drTmp"optionC" = drAll"SelectContent" if (isRightAnswer) drTmp"RightAnswer" = "C" i+; drAll = dtAll.Rowsi; isRightAnswer = Convert.ToBoolean(drAll"IsRight"); if (i % 4 = 3) drTmp&qu

14、ot;optionD" = drAll"SelectContent" if (isRightAnswer) drTmp"RightAnswer" = "D" dtChoice.Rows.Add(drTmp); choiceCount = dtChoice.Rows.Count; choicePoint = Convert.ToDouble(dtAll.Rows0"Point"); sqlQuery = sql + " and QuestionTypeID=2 and IsRight=1"

15、; dtAll = CommonUtils.GetTableBySql(sqlQuery).Copy(); for (int i = 0; i < dtAll.Rows.Count; i+) DataRow drAll = dtAll.Rowsi; DataRow drTmp = dtBlank.NewRow(); drTmp"questionContent" = drAll"QuestionContent" drTmp"blankNo" = i + 1; drTmp"RightAnswer" = drAll

16、"SelectContent" dtBlank.Rows.Add(drTmp); blankCount = dtBlank.Rows.Count; blankPoint = Convert.ToDouble(dtAll.Rows0"Point"); sqlQuery = sql + " and QuestionTypeID=3" dtAll = CommonUtils.GetTableBySql(sqlQuery).Copy(); for (int i = 0; i < dtAll.Rows.Count; i += 2) Dat

17、aRow drAll = dtAll.Rowsi; DataRow drTmp = dtJudge.NewRow(); drTmp"questionContent" = drAll"QuestionContent" drTmp"judgeNo" = i / 2 + 1; Boolean isRightAnswer = Convert.ToBoolean(drAll"IsRight"); if (isRightAnswer) drTmp"RightAnswer" = "正確"

18、else drTmp"RightAnswer" = "錯誤" dtJudge.Rows.Add(drTmp); judgeCount = dtJudge.Rows.Count; judgePoint = Convert.ToDouble(dtAll.Rows0"Point"); dtlChoose.DataSource = dtChoice.DefaultView; dtlChoose.DataBind(); lblChooseCount.Text = Convert.ToString(choiceCount); lblChooseP

19、oint.Text = Convert.ToString(choicePoint); lblChooseTotalPoint.Text = Convert.ToString(choiceCount * choicePoint); dtlJudge.DataSource = dtJudge.DefaultView; dtlJudge.DataBind(); lblJudgeCount.Text = Convert.ToString(judgeCount); lblJudgePoint.Text = Convert.ToString(judgePoint); lblJudgeTotalPoint.

20、Text = Convert.ToString(judgeCount * judgePoint); dtlBlank.DataSource = dtBlank.DefaultView; dtlBlank.DataBind(); lblBlankCount.Text = Convert.ToString(blankCount); lblBlankPoint.Text = Convert.ToString(blankPoint); lblBlankTotalPoint.Text = Convert.ToString(blankCount * blankPoint); lblPageTitle.Te

21、xt = Convert.ToString(dtAll.Rows0"PaperName"); lblExamTimeLength.Text = Convert.ToString(dtAll.Rows0"TimeLength"); lblExamStartTime.Text = Convert.ToString(dtAll.Rows0"ExamDate"); lblQuestionCount.Text = Convert.ToString(choiceCount + judgeCount + blankCount); lblTotalS

22、core.Text = Convert.ToString(choiceCount * choicePoint + judgeCount * judgePoint + blankCount * blankPoint); lblCreateDateTime.Text = Convert.ToString(dtAll.Rows0"CreateDate"); 4.2題庫管理的編碼public partial class Admin_OnlineExam_Question : System.Web.UI.Page private string sql = "" p

23、rivate UpdatePanel UpdatePanel1; protected void Page_Load(object sender, EventArgs e) UpdatePanel1 = (UpdatePanel)Master.FindControl("UPN"); if (SessionCommonUtils.Session_UserId = null) Response.Write("<Script language='javascript'>alert('請先登錄!')</script>&

24、quot;); Response.End(); else if (!Page.IsPostBack) InitPageData(); private void InitPageData() string subjectID = this.ddlSubject.SelectedValue; string chapterID = this.ddlChapter.SelectedValue; string questionTypeID = this.ddlQuestionType.SelectedValue; string teacherID = Convert.ToString(SessionCo

25、mmonUtils.Session_UserId); ; sql = "select * from UV_Select_TeacherSubjectRelation where 1=1 " sql += " and teacherID=" + teacherID; CommonUtils.ECDropDownList(this.ddlSubject, sql, "subjectName", "subjectID", true); sql = " select * from UT_Exam_Question

26、Type " CommonUtils.ECDropDownList(this.ddlQuestionType, sql, "questionTypeName", "ID", true); if (!"0".Equals(subjectID) && !"".Equals(subjectID) sql = "select * from UT_Base_Chapter where subjectID=" + subjectID; CommonUtils.ECDropDownL

27、ist(this.ddlChapter, sql, "chapterName", "ID", true); String operFlag = Request.QueryString"operFlag" if (operFlag = null) operFlag = "add" if ("add".Equals(operFlag) InitPageData_Add(); this.btnClose.Visible = false; this.btnConfirm.Visible = true;

28、this.btnModify.Visible = false; else if ("query".Equals(operFlag) string questionID = Request.QueryString"ID" InitPageData_NotAdd(questionID); this.btnClose.Visible = true; this.btnConfirm.Visible = false; this.btnModify.Visible = false; else if ("modify".Equals(operFla

29、g) string questionID = Request.QueryString"ID" InitPageData_NotAdd(questionID); this.btnClose.Visible = false; this.btnConfirm.Visible = false; this.btnModify.Visible = true; protected void ddlSubject_SelectedIndexChanged(object sender, EventArgs e) string subjectID = this.ddlSubject.Selec

30、tedValue; InitDDLChapter(subjectID); private void InitDDLChapter(string subjectID) if (!"0".Equals(subjectID) && !"".Equals(subjectID) sql = "select * from UT_Base_Chapter where subjectID=" + subjectID; CommonUtils.ECDropDownList(this.ddlChapter, sql, "chap

31、terName", "ID", true); protected void ddlQuestionType_SelectedIndexChanged(object sender, EventArgs e) string questionTypeID = this.ddlQuestionType.SelectedValue; if (questionTypeID.Equals("1") this.pnlSelect.Visible = true; this.pnlBlanck.Visible = false; this.pnlJudge.Visi

32、ble = false; if (questionTypeID.Equals("3") this.pnlSelect.Visible = false; this.pnlBlanck.Visible = false; this.pnlJudge.Visible = true; if (questionTypeID.Equals("2") this.pnlSelect.Visible = false; this.pnlBlanck.Visible = true; this.pnlJudge.Visible = false; private void Init

33、PageData_Add() this.txtBlankAnswer.Text = "" this.txtBlankContent.Text = "" this.txtJudgeContent.Text = "" this.txtSelectA.Text = "" this.txtSelectB.Text = "" this.txtSelectC.Text = "" this.txtSelectContent.Text = "" this.txtSelec

34、tD.Text = "" this.rdbRightAnswer.SelectedIndex = -1; this.rdlJudgeResult.SelectedIndex = -1; 第五章 編碼測試5.1頁面測試測試用例階段實際測試階段頁面操作判斷方法期望輸出實際輸出備注打開頁面1.開考到開考15分鐘之前內(nèi)允許考試2.查看UV_Exam_PaperQuestionDetail非考試時間彈出不允許考試頁面考生信息、試卷信息、考題信息與數(shù)據(jù)庫信息一致與期望值一致交卷查看UV_Exam_PageQuestionDetail計算成績是否與交卷結果相同考試成績與交卷結果一致與期望

35、值一致5.2數(shù)據(jù)表測試測試用例階段實際測試階段字段名稱描述判斷方法期望輸出實際輸出備注ID主鍵,自動增長在數(shù)據(jù)庫中查看自動增長與期望值一致PaperID試卷ID寫入數(shù)據(jù)與考生考卷ID是否相等寫入數(shù)據(jù)與考生試卷ID一致與期望值一致StudentID學生ID寫入數(shù)據(jù)與考生ID是否相等寫入數(shù)據(jù)與考生ID一致與期望值一致StartTime考試開始時間寫入數(shù)據(jù)與開考時間是否相等寫入數(shù)據(jù)與開考時間一致與期望值一致EndTime考試結束時間寫入數(shù)據(jù)與終考時間是否相等1.開考試數(shù)據(jù)為空2.交卷時寫入交卷時間與期望值一致Score考試成績寫入數(shù)據(jù)與試卷結構成績是否相等1.開考是數(shù)據(jù)為空2.交卷時寫答卷分值與期望

36、值一致測試用例階段實際測試階段字段名稱描述判斷方法期望輸出實際輸出備注ID主鍵,自動增長在數(shù)據(jù)庫中查看自動增長與期望值一致StudentAnwerID答卷ID查看UT_Exam_StudentAnswer表的ID與UT_Exam_StudentAnswer表ID值一致與期望值一致QuestionID試題ID查看UV_Exam_PaperQuestionDetail視圖進行比較與UV_Exam_PaperQuestionDetail視圖中的QuestionID一致與期望值一致SelectContentID選項ID查看UV_Exam_PaperQuestionDetail視圖進行比較與UV_Exa

37、m_PaperQuestionDetail視圖中的SelectContentID一致與期望值一致Remark備注:記錄填空題學生答題內(nèi)容查看UV_Exam_PaperQuestionDetail視圖進行比較試題答錯,此項填入的數(shù)據(jù)和用戶頁面輸入的答案一致試題答對,此項為空與期望值一致第六章 部署維護6.1創(chuàng)建Windows安裝程序包部署Web應用程序采用“發(fā)布站點預編譯”功能發(fā)布網(wǎng)上選課系統(tǒng)站點到一個目標Web服務器的具體操作步驟如下。1.在VS.NET2005中打開網(wǎng)上選課系統(tǒng)的預編譯網(wǎng)站所在文件夾“D:SelectCourse”。2.鼠標右鍵單擊解決方案文件,在彈出的快捷菜單中選擇“生成解決方案”命令后,出現(xiàn)一個“另存文件夾為”的話框,選擇“保存于”下拉列表框,選擇目標文件夾為“D:SelectCourse”,在“文件名”文本框中輸入“SelectCourse.sln”文件名,然后

溫馨提示

  • 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

提交評論