版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上在线考试系统项目报告目录第一章 需求分析1.1概念分析本系统的用户可分为管理员、学生用户及教师用户三类。本系统共分为三个界面:一个界面用于管理员登录,主要负责进行基本资料。题库、试卷、成绩的管理以及查询等;另外一个界面用于登录普通用户,主要负责在线考试,查询以往考试成绩留言和在线交流等;还有一个界面用于教师登录,只要负责度题型、科目进行设置,对学生做错的题目进行分析。1.1.1管理员需求分析包括试卷管理,题库管理,成绩管理。(1)试卷管理:管理员可以从课程,各种题型的数量等方面对某份试卷进行修改和删除,添加新试卷等。(2)题库管理:管理员可以对题库中的试题进行三种基本
2、操作:添加新的考题、删除旧有考题、修改原有考题,其中试题类型包括判断题、填空题、选择题;对于每种类型的试题。教师可以设置题干、答案等属性。(3)成绩管理:管理员可以查看考生的考试成绩,并针对不同的课程进行成绩统计,包括考试人数、最高分、最低分、平均分以及个分数段得分人数等。(4)学生管理:管理员可以对用户的资料进行查询、删除。1.1.2 学生需求分析包括在线考试、查询以往考试成绩等。(1)在线考试:学生可以任选时间进行在线考试,考试结束后,系统会根据已有的标准答案进行在线考试,考生可以立刻知道考试成绩。(2)查询以往考试成绩:学生可以在线查询以前参加的每门课程的相关信息1.1.3教师需求分析包
3、括试卷添加,题库添加等。(1)试卷添加:教师可以添加试卷,可以从课程,各种题型的数量等方面对某份试卷进行添加。(2)题库添加:教师可以对添加新的考题、删除旧有考题、修改原有考题,其中试题类型包括判断题、填空题、选择题;对于每种类型的试题。教师可以设置题干、答案等属性。1.2系统分析1.2.1在管理端子系统中:(1)系统维护模块主要是针对管理员,学生,教师,班级等信息进行修改操作; (2)权限管理模块主要是对各使用者对系统的操作权限进行管理。例如学生只能查看个人信息,选择试卷,答卷,查看成绩等;教师只能出题,组卷,判卷,查看学生成绩等;管理员可以全面对系统进行操作及数据维护等。1.2.2在教师端
4、子系统中:(1)出题模块主要是由教师根据题型不同向题库中输入题目以及答案,方便组卷。题目自动存入对应的数据库中。(2)组卷模块中可以由系统随机组卷,输入各题型的数量,分值,系统自动从题库中随机选择题目构成试卷;也可以由教师自主选择题目进行出题。(3)统计成绩模块中教师可以根据学生答卷情况对成绩进行统计,方便教师对学生答卷情况有直观了解,利于教学。(4)提交成绩模块由教师将学生综合成绩情况输入相关管理系统。1.2.3在学生端子系统中:(1)选择试卷模块由学生选择所要进行的考试试卷。(2)答卷模块显示学生所选试卷,供学生作答,选择判断直接对选项进行选择,主观题填写在相应的文本框中。(3)交卷模块会
5、自动根据题库中的信息对学生的选择判断题进行判卷,减少了教师的工作量。1.3功能分析1.3.1功能模块图设计1.4用例图设计1.4.1学生用例图设计1.4.2教师用例图设计第二章 系统设计2.1总体时序图设计2.2数据库设计2.2.1试卷类型表设计2.2.2试题表设计2.2.3试题内容表设计2.2.4试卷表设计2.2.5试卷详情表设计2.2.6试卷分值表设计2.2.7考生答卷表设计2.2.8考生答卷详情表设计2.3表见关系设计2.3.1试题2.3.2章节试题统计 2.3.3试卷2.3.4试卷详细 2.3.5试卷考题详细 2.3.6考卷列表 第三章 程序设计3.1在线考试系统后台程序实现3.1.1
6、母版页设计3.1.2后台题库添加页面设计3.1.3后台题库管理页面设计3.1.4后台试卷生成3.1.5后台试卷详情查看页面3.1.6后台试卷管理页面3.2在线考试系统前台程序实现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分钟之前内允许考试2.查看UV_Exam_PaperQuestionDetail非考试时间弹出不允许考试页面考生信息、试卷信息、考题信息与数据库信息一致与期望值一致交卷查看UV_Exam_PageQuestionDetail计算成绩是否与交卷结果相同考试成绩与交卷结果一致与期望
35、值一致5.2数据表测试测试用例阶段实际测试阶段字段名称描述判断方法期望输出实际输出备注ID主键,自动增长在数据库中查看自动增长与期望值一致PaperID试卷ID写入数据与考生考卷ID是否相等写入数据与考生试卷ID一致与期望值一致StudentID学生ID写入数据与考生ID是否相等写入数据与考生ID一致与期望值一致StartTime考试开始时间写入数据与开考时间是否相等写入数据与开考时间一致与期望值一致EndTime考试结束时间写入数据与终考时间是否相等1.开考试数据为空2.交卷时写入交卷时间与期望值一致Score考试成绩写入数据与试卷结构成绩是否相等1.开考是数据为空2.交卷时写答卷分值与期望
36、值一致测试用例阶段实际测试阶段字段名称描述判断方法期望输出实际输出备注ID主键,自动增长在数据库中查看自动增长与期望值一致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备注:记录填空题学生答题内容查看UV_Exam_PaperQuestionDetail视图进行比较试题答错,此项填入的数据和用户页面输入的答案一致试题答对,此项为空与期望值一致第六章 部署维护6.1创建Windows安装程序包部署Web应用程序采用“发布站点预编译”功能发布网上选课系统站点到一个目标Web服务器的具体操作步骤如下。1.在VS.NET2005中打开网上选课系统的预编译网站所在文件夹“D:SelectCourse”。2.鼠标右键单击解决方案文件,在弹出的快捷菜单中选择“生成解决方案”命令后,出现一个“另存文件夹为”的话框,选择“保存于”下拉列表框,选择目标文件夹为“D:SelectCourse”,在“文件名”文本框中输入“SelectCourse.sln”文件名,然后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年六方担保协议:确保项目顺利进行3篇
- 2024年临床手术合作合同标准样本版B版
- 2024年度供应链管理服务合同的履行条件3篇
- 2024年度公益活动拍摄场地租赁合同3篇
- 2024年度卫星导航定位系统购销合同3篇
- 2024年度电子竞技赛事策划合同3篇
- 2024智能分拣快递运输服务智能化合同2篇
- 2024年专业印刷服务合同3篇
- 2024年新型化工材料租赁与供应合同3篇
- 2024年婚姻财产分割合同2篇
- 幼儿园绘本故事:《妈妈买绿豆》 PPT课件
- et200pro故障安全模块操作说明
- 《小学语文随文小练笔策略的设计研究》开题报告
- 架空线路安全载流量对照表
- 日语词汇-建筑词汇
- 食品标签与食品营养标签解读课件
- 新人教版小学三年级数学上册期末总复习提纲资料
- 龙门吊轨道基础计算书汇总
- 项目工程管理流程图
- 宿舍热水设计计算
- 2021年山东省东营市中考物理试卷
评论
0/150
提交评论