版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上在線考試系統(tǒng)項(xiàng)目報(bào)告目錄第一章 需求分析1.1概念分析本系統(tǒng)的用戶可分為管理員、學(xué)生用戶及教師用戶三類。本系統(tǒng)共分為三個(gè)界面:一個(gè)界面用于管理員登錄,主要負(fù)責(zé)進(jìn)行基本資料。題庫(kù)、試卷、成績(jī)的管理以及查詢等;另外一個(gè)界面用于登錄普通用戶,主要負(fù)責(zé)在線考試,查詢以往考試成績(jī)留言和在線交流等;還有一個(gè)界面用于教師登錄,只要負(fù)責(zé)度題型、科目進(jìn)行設(shè)置,對(duì)學(xué)生做錯(cuò)的題目進(jìn)行分析。1.1.1管理員需求分析包括試卷管理,題庫(kù)管理,成績(jī)管理。(1)試卷管理:管理員可以從課程,各種題型的數(shù)量等方面對(duì)某份試卷進(jìn)行修改和刪除,添加新試卷等。(2)題庫(kù)管理:管理員可以對(duì)題庫(kù)中的試題進(jìn)行三種基本
2、操作:添加新的考題、刪除舊有考題、修改原有考題,其中試題類型包括判斷題、填空題、選擇題;對(duì)于每種類型的試題。教師可以設(shè)置題干、答案等屬性。(3)成績(jī)管理:管理員可以查看考生的考試成績(jī),并針對(duì)不同的課程進(jìn)行成績(jī)統(tǒng)計(jì),包括考試人數(shù)、最高分、最低分、平均分以及個(gè)分?jǐn)?shù)段得分人數(shù)等。(4)學(xué)生管理:管理員可以對(duì)用戶的資料進(jìn)行查詢、刪除。1.1.2 學(xué)生需求分析包括在線考試、查詢以往考試成績(jī)等。(1)在線考試:學(xué)生可以任選時(shí)間進(jìn)行在線考試,考試結(jié)束后,系統(tǒng)會(huì)根據(jù)已有的標(biāo)準(zhǔn)答案進(jìn)行在線考試,考生可以立刻知道考試成績(jī)。(2)查詢以往考試成績(jī):學(xué)生可以在線查詢以前參加的每門(mén)課程的相關(guān)信息1.1.3教師需求分析包
3、括試卷添加,題庫(kù)添加等。(1)試卷添加:教師可以添加試卷,可以從課程,各種題型的數(shù)量等方面對(duì)某份試卷進(jìn)行添加。(2)題庫(kù)添加:教師可以對(duì)添加新的考題、刪除舊有考題、修改原有考題,其中試題類型包括判斷題、填空題、選擇題;對(duì)于每種類型的試題。教師可以設(shè)置題干、答案等屬性。1.2系統(tǒng)分析1.2.1在管理端子系統(tǒng)中:(1)系統(tǒng)維護(hù)模塊主要是針對(duì)管理員,學(xué)生,教師,班級(jí)等信息進(jìn)行修改操作; (2)權(quán)限管理模塊主要是對(duì)各使用者對(duì)系統(tǒng)的操作權(quán)限進(jìn)行管理。例如學(xué)生只能查看個(gè)人信息,選擇試卷,答卷,查看成績(jī)等;教師只能出題,組卷,判卷,查看學(xué)生成績(jī)等;管理員可以全面對(duì)系統(tǒng)進(jìn)行操作及數(shù)據(jù)維護(hù)等。1.2.2在教師端
4、子系統(tǒng)中:(1)出題模塊主要是由教師根據(jù)題型不同向題庫(kù)中輸入題目以及答案,方便組卷。題目自動(dòng)存入對(duì)應(yīng)的數(shù)據(jù)庫(kù)中。(2)組卷模塊中可以由系統(tǒng)隨機(jī)組卷,輸入各題型的數(shù)量,分值,系統(tǒng)自動(dòng)從題庫(kù)中隨機(jī)選擇題目構(gòu)成試卷;也可以由教師自主選擇題目進(jìn)行出題。(3)統(tǒng)計(jì)成績(jī)模塊中教師可以根據(jù)學(xué)生答卷情況對(duì)成績(jī)進(jìn)行統(tǒng)計(jì),方便教師對(duì)學(xué)生答卷情況有直觀了解,利于教學(xué)。(4)提交成績(jī)模塊由教師將學(xué)生綜合成績(jī)情況輸入相關(guān)管理系統(tǒng)。1.2.3在學(xué)生端子系統(tǒng)中:(1)選擇試卷模塊由學(xué)生選擇所要進(jìn)行的考試試卷。(2)答卷模塊顯示學(xué)生所選試卷,供學(xué)生作答,選擇判斷直接對(duì)選項(xiàng)進(jìn)行選擇,主觀題填寫(xiě)在相應(yīng)的文本框中。(3)交卷模塊會(huì)
5、自動(dòng)根據(jù)題庫(kù)中的信息對(duì)學(xué)生的選擇判斷題進(jìn)行判卷,減少了教師的工作量。1.3功能分析1.3.1功能模塊圖設(shè)計(jì)1.4用例圖設(shè)計(jì)1.4.1學(xué)生用例圖設(shè)計(jì)1.4.2教師用例圖設(shè)計(jì)第二章 系統(tǒng)設(shè)計(jì)2.1總體時(shí)序圖設(shè)計(jì)2.2數(shù)據(jù)庫(kù)設(shè)計(jì)2.2.1試卷類型表設(shè)計(jì)2.2.2試題表設(shè)計(jì)2.2.3試題內(nèi)容表設(shè)計(jì)2.2.4試卷表設(shè)計(jì)2.2.5試卷詳情表設(shè)計(jì)2.2.6試卷分值表設(shè)計(jì)2.2.7考生答卷表設(shè)計(jì)2.2.8考生答卷詳情表設(shè)計(jì)2.3表見(jiàn)關(guān)系設(shè)計(jì)2.3.1試題2.3.2章節(jié)試題統(tǒng)計(jì) 2.3.3試卷2.3.4試卷詳細(xì) 2.3.5試卷考題詳細(xì) 2.3.6考卷列表 第三章 程序設(shè)計(jì)3.1在線考試系統(tǒng)后臺(tái)程序?qū)崿F(xiàn)3.1.1
6、母版頁(yè)設(shè)計(jì)3.1.2后臺(tái)題庫(kù)添加頁(yè)面設(shè)計(jì)3.1.3后臺(tái)題庫(kù)管理頁(yè)面設(shè)計(jì)3.1.4后臺(tái)試卷生成3.1.5后臺(tái)試卷詳情查看頁(yè)面3.1.6后臺(tái)試卷管理頁(yè)面3.2在線考試系統(tǒng)前臺(tái)程序?qū)崿F(xiàn)3.2.1試卷列表頁(yè)面設(shè)計(jì)3.2.2前臺(tái)考試頁(yè)面設(shè)計(jì)第四章 編碼設(shè)計(jì)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" = "錯(cuò)誤" 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題庫(kù)管理的編碼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('請(qǐng)先登錄!')</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; 第五章 編碼測(cè)試5.1頁(yè)面測(cè)試測(cè)試用例階段實(shí)際測(cè)試階段頁(yè)面操作判斷方法期望輸出實(shí)際輸出備注打開(kāi)頁(yè)面1.開(kāi)考到開(kāi)考15分鐘之前內(nèi)允許考試2.查看UV_Exam_PaperQuestionDetail非考試時(shí)間彈出不允許考試頁(yè)面考生信息、試卷信息、考題信息與數(shù)據(jù)庫(kù)信息一致與期望值一致交卷查看UV_Exam_PageQuestionDetail計(jì)算成績(jī)是否與交卷結(jié)果相同考試成績(jī)與交卷結(jié)果一致與期望
35、值一致5.2數(shù)據(jù)表測(cè)試測(cè)試用例階段實(shí)際測(cè)試階段字段名稱描述判斷方法期望輸出實(shí)際輸出備注ID主鍵,自動(dòng)增長(zhǎng)在數(shù)據(jù)庫(kù)中查看自動(dòng)增長(zhǎng)與期望值一致PaperID試卷ID寫(xiě)入數(shù)據(jù)與考生考卷ID是否相等寫(xiě)入數(shù)據(jù)與考生試卷ID一致與期望值一致StudentID學(xué)生ID寫(xiě)入數(shù)據(jù)與考生ID是否相等寫(xiě)入數(shù)據(jù)與考生ID一致與期望值一致StartTime考試開(kāi)始時(shí)間寫(xiě)入數(shù)據(jù)與開(kāi)考時(shí)間是否相等寫(xiě)入數(shù)據(jù)與開(kāi)考時(shí)間一致與期望值一致EndTime考試結(jié)束時(shí)間寫(xiě)入數(shù)據(jù)與終考時(shí)間是否相等1.開(kāi)考試數(shù)據(jù)為空2.交卷時(shí)寫(xiě)入交卷時(shí)間與期望值一致Score考試成績(jī)寫(xiě)入數(shù)據(jù)與試卷結(jié)構(gòu)成績(jī)是否相等1.開(kāi)考是數(shù)據(jù)為空2.交卷時(shí)寫(xiě)答卷分值與期望
36、值一致測(cè)試用例階段實(shí)際測(cè)試階段字段名稱描述判斷方法期望輸出實(shí)際輸出備注ID主鍵,自動(dòng)增長(zhǎng)在數(shù)據(jù)庫(kù)中查看自動(dòng)增長(zhǎng)與期望值一致StudentAnwerID答卷ID查看UT_Exam_StudentAnswer表的ID與UT_Exam_StudentAnswer表ID值一致與期望值一致QuestionID試題ID查看UV_Exam_PaperQuestionDetail視圖進(jìn)行比較與UV_Exam_PaperQuestionDetail視圖中的QuestionID一致與期望值一致SelectContentID選項(xiàng)ID查看UV_Exam_PaperQuestionDetail視圖進(jìn)行比較與UV_Exa
37、m_PaperQuestionDetail視圖中的SelectContentID一致與期望值一致Remark備注:記錄填空題學(xué)生答題內(nèi)容查看UV_Exam_PaperQuestionDetail視圖進(jìn)行比較試題答錯(cuò),此項(xiàng)填入的數(shù)據(jù)和用戶頁(yè)面輸入的答案一致試題答對(duì),此項(xiàng)為空與期望值一致第六章 部署維護(hù)6.1創(chuàng)建Windows安裝程序包部署Web應(yīng)用程序采用“發(fā)布站點(diǎn)預(yù)編譯”功能發(fā)布網(wǎng)上選課系統(tǒng)站點(diǎn)到一個(gè)目標(biāo)Web服務(wù)器的具體操作步驟如下。1.在VS.NET2005中打開(kāi)網(wǎng)上選課系統(tǒng)的預(yù)編譯網(wǎng)站所在文件夾“D:SelectCourse”。2.鼠標(biāo)右鍵單擊解決方案文件,在彈出的快捷菜單中選擇“生成解決方案”命令后,出現(xiàn)一個(gè)“另存文件夾為”的話框,選擇“保存于”下拉列表框,選擇目標(biāo)文件夾為“D:SelectCourse”,在“文件名”文本框中輸入“SelectCourse.sln”文件名,然后
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年三人組建生物科技公司二零二四年度合作協(xié)議3篇
- 2024年中國(guó)建筑工程施工安全生產(chǎn)協(xié)議3篇
- 2024年版第三方擔(dān)保合同模板版B版
- 網(wǎng)絡(luò)時(shí)代作家的創(chuàng)新探索-洞察分析
- 云計(jì)算在支付清算中的應(yīng)用-洞察分析
- 網(wǎng)絡(luò)架構(gòu)優(yōu)化研究-洞察分析
- 用戶體驗(yàn)一致性研究-洞察分析
- 心律失?;颊呱钯|(zhì)量研究-洞察分析
- 采購(gòu)合同管理的關(guān)鍵環(huán)節(jié)解析3篇
- 采購(gòu)合同中的工程變更合同價(jià)款3篇
- 水庫(kù)黑臭水體綜合整治工程項(xiàng)目建議書(shū)可行性研究報(bào)告
- GRR-計(jì)數(shù)型(范例填寫(xiě))
- 【徐福記集團(tuán)企業(yè)內(nèi)部控制現(xiàn)狀及完善建議分析(11000字論文)】
- 焦度計(jì)的光學(xué)結(jié)構(gòu)原理
- GRR表格MSA第四版完整版
- 低值易耗品的驗(yàn)收
- 公司年會(huì)節(jié)目單表格模板
- 抖音短視頻運(yùn)營(yíng)部門(mén)薪酬績(jī)效考核體系(抖音、快手、B站、西瓜視頻、小紅書(shū)短視頻運(yùn)營(yíng)薪酬績(jī)效)
- 藥品生產(chǎn)組織機(jī)構(gòu)圖
- 食品食材配送人員配置和工作職責(zé)
- GB/T 20878-2007不銹鋼和耐熱鋼牌號(hào)及化學(xué)成分
評(píng)論
0/150
提交評(píng)論