在线考试系统项目报告.doc

上传人:jian****018 文档编号:9011524 上传时间:2020-04-02 格式:DOC 页数:30 大小:5.73MB
返回 下载 相关 举报
在线考试系统项目报告.doc_第1页
第1页 / 共30页
在线考试系统项目报告.doc_第2页
第2页 / 共30页
在线考试系统项目报告.doc_第3页
第3页 / 共30页
点击查看更多>>
资源描述
在线考试系统项目报告目录第一章 需求分析41.1概念分析41.1.1管理员需求分析41.1.2 学生需求分析51.1.3教师需求分析51.2系统分析51.3功能分析71.3.1功能模块图设计71.4.1学生用例图设计71.4.2教师用例图设计8第二章 系统设计82.1总体时序图设计82.2数据库设计92.2.1试卷类型表设计92.2.2试题表设计92.2.3试题内容表设计92.2.4试卷表设计102.2.5试卷详情表设计102.2.6试卷分值表设计102.2.7考生答卷表设计112.2.8考生答卷详情表设计112.3表见关系设计122.3.1试题122.3.2章节试题统计122.3.3试卷132.3.4试卷详细132.3.5试卷考题详细142.3.6考卷列表14第三章 程序设计143.1在线考试系统后台程序实现153.1.1母版页设计153.1.2后台题库添加页面设计153.1.3后台题库管理页面设计163.1.4后台试卷生成173.1.5后台试卷详情查看页面173.1.6后台试卷管理页面183.2在线考试系统前台程序实现183.2.1试卷列表页面设计183.2.2前台考试页面设计19第四章 编码设计194.1试卷详情的编码194.2题库管理的编码21第五章 编码测试235.1页面测试235.2数据表测试23第六章 部署维护246.1创建Windows安装程序包部署Web应用程序246.2 Web.config 配置29第一章 需求分析1.1概念分析本系统的用户可分为管理员、学生用户及教师用户三类。本系统共分为三个界面:一个界面用于管理员登录,主要负责进行基本资料。题库、试卷、成绩的管理以及查询等;另外一个界面用于登录普通用户,主要负责在线考试,查询以往考试成绩留言和在线交流等;还有一个界面用于教师登录,只要负责度题型、科目进行设置,对学生做错的题目进行分析。1.1.1管理员需求分析包括试卷管理,题库管理,成绩管理。(1)试卷管理:管理员可以从课程,各种题型的数量等方面对某份试卷进行修改和删除,添加新试卷等。(2)题库管理:管理员可以对题库中的试题进行三种基本操作:添加新的考题、删除旧有考题、修改原有考题,其中试题类型包括判断题、填空题、选择题;对于每种类型的试题。教师可以设置题干、答案等属性。(3)成绩管理:管理员可以查看考生的考试成绩,并针对不同的课程进行成绩统计,包括考试人数、最高分、最低分、平均分以及个分数段得分人数等。(4)学生管理:管理员可以对用户的资料进行查询、删除。1.1.2 学生需求分析包括在线考试、查询以往考试成绩等。(1)在线考试:学生可以任选时间进行在线考试,考试结束后,系统会根据已有的标准答案进行在线考试,考生可以立刻知道考试成绩。(2)查询以往考试成绩:学生可以在线查询以前参加的每门课程的相关信息1.1.3教师需求分析包括试卷添加,题库添加等。(1)试卷添加:教师可以添加试卷,可以从课程,各种题型的数量等方面对某份试卷进行添加。(2)题库添加:教师可以对添加新的考题、删除旧有考题、修改原有考题,其中试题类型包括判断题、填空题、选择题;对于每种类型的试题。教师可以设置题干、答案等属性。1.2系统分析1.2.1在管理端子系统中:(1)系统维护模块主要是针对管理员,学生,教师,班级等信息进行修改操作; (2)权限管理模块主要是对各使用者对系统的操作权限进行管理。例如学生只能查看个人信息,选择试卷,答卷,查看成绩等;教师只能出题,组卷,判卷,查看学生成绩等;管理员可以全面对系统进行操作及数据维护等。1.2.2在教师端子系统中:(1)出题模块主要是由教师根据题型不同向题库中输入题目以及答案,方便组卷。题目自动存入对应的数据库中。(2)组卷模块中可以由系统随机组卷,输入各题型的数量,分值,系统自动从题库中随机选择题目构成试卷;也可以由教师自主选择题目进行出题。(3)统计成绩模块中教师可以根据学生答卷情况对成绩进行统计,方便教师对学生答卷情况有直观了解,利于教学。(4)提交成绩模块由教师将学生综合成绩情况输入相关管理系统。1.2.3在学生端子系统中:(1)选择试卷模块由学生选择所要进行的考试试卷。(2)答卷模块显示学生所选试卷,供学生作答,选择判断直接对选项进行选择,主观题填写在相应的文本框中。(3)交卷模块会自动根据题库中的信息对学生的选择判断题进行判卷,减少了教师的工作量。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母版页设计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(); private void InitPageData() int choiceCount = 0, blankCount = 0, judgeCount = 0; double choicePoint = 0, blankPoint = 0, judgePoint = 0; String sql = ; String paperID = Request.QueryStringpaperID; sql = select * from UV_Exam_PaperQuestionDetail where PaperID= + paperID; 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(optionC); 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(questionContent); 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; DataRow drTmp = dtChoice.NewRow(); Boolean isRightAnswer = Convert.ToBoolean(drAllIsRight); drTmpchooseNo = i / 4 + 1; if (i % 4 = 0) drTmpquestionContent = drAllQuestionContent; if (isRightAnswer) drTmpRightAnswer = A; drTmpoptionA = drAllSelectContent; i+; drAll = dtAll.Rowsi; isRightAnswer = Convert.ToBoolean(drAllIsRight); if (i % 4 = 1) drTmpoptionB = drAllSelectContent; if (isRightAnswer) drTmpRightAnswer = B; i+; isRightAnswer = Convert.ToBoolean(drAllIsRight); drAll = dtAll.Rowsi; if (i % 4 = 2) drTmpoptionC = drAllSelectContent; if (isRightAnswer) drTmpRightAnswer = C; i+; drAll = dtAll.Rowsi; isRightAnswer = Convert.ToBoolean(drAllIsRight); if (i % 4 = 3) drTmpoptionD = drAllSelectContent; if (isRightAnswer) drTmpRightAnswer = D; dtChoice.Rows.Add(drTmp); choiceCount = dtChoice.Rows.Count; choicePoint = Convert.ToDouble(dtAll.Rows0Point); sqlQuery = sql + and QuestionTypeID=2 and IsRight=1; dtAll = CommonUtils.GetTableBySql(sqlQuery).Copy(); for (int i = 0; i dtAll.Rows.Count; i+) DataRow drAll = dtAll.Rowsi; DataRow drTmp = dtBlank.NewRow(); drTmpquestionContent = drAllQuestionContent; drTmpblankNo = i + 1; drTmpRightAnswer = drAllSelectContent; dtBlank.Rows.Add(drTmp); blankCount = dtBlank.Rows.Count; blankPoint = Convert.ToDouble(dtAll.Rows0Point); sqlQuery = sql + and QuestionTypeID=3; dtAll = CommonUtils.GetTableBySql(sqlQuery).Copy(); for (int i = 0; i dtAll.Rows.Count; i += 2) DataRow drAll = dtAll.Rowsi; DataRow drTmp = dtJudge.NewRow(); drTmpquestionContent = drAllQuestionContent; drTmpjudgeNo = i / 2 + 1; Boolean isRightAnswer = Convert.ToBoolean(drAllIsRight); if (isRightAnswer) drTmpRightAnswer = 正确; else drTmpRightAnswer = 错误; dtJudge.Rows.Add(drTmp); judgeCount = dtJudge.Rows.Count; judgePoint = Convert.ToDouble(dtAll.Rows0Point); dtlChoose.DataSource = dtChoice.DefaultView; dtlChoose.DataBind(); lblChooseCount.Text = Convert.ToString(choiceCount); lblChoosePoint.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.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.Text = Convert.ToString(dtAll.Rows0PaperName); lblExamTimeLength.Text = Convert.ToString(dtAll.Rows0TimeLength); lblExamStartTime.Text = Convert.ToString(dtAll.Rows0ExamDate); lblQuestionCount.Text = Convert.ToString(choiceCount + judgeCount + blankCount); lblTotalScore.Text = Convert.ToString(choiceCount * choicePoint + judgeCount * judgePoint + blankCount * blankPoint); lblCreateDateTime.Text = Convert.ToString(dtAll.Rows0CreateDate); 4.2题库管理的编码public partial class Admin_OnlineExam_Question : System.Web.UI.Page private string sql = ; private UpdatePanel UpdatePanel1; protected void Page_Load(object sender, EventArgs e) UpdatePanel1 = (UpdatePanel)Master.FindControl(UPN); if (SessionCommonUtils.Session_UserId = null) Response.Write(alert(请先登录!); 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(SessionCommonUtils.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_QuestionType ; CommonUtils.ECDropDownList(this.ddlQuestionType, sql, questionTypeName, ID, true); if (!0.Equals(subjectID) & !.Equals(subjectID) sql = select * from UT_Base_Chapter where subjectID= + subjectID; CommonUtils.ECDropDownList(this.ddlChapter, sql, chapterName, ID, true); String operFlag = Request.QueryStringoperFlag; if (operFlag = null) operFlag = add; if (add.Equals(operFlag) InitPageData_Add(); this.btnClose.Visible = false; this.btnConfirm.Visible = true; this.btnModify.Visible = false; else if (query.Equals(operFlag) string questionID = Request.QueryStringID; InitPageData_NotAdd(questionID); this.btnClose.Visible = true; this.btnConfirm.Visible = false; this.btnModify.Visible = false; else if (modify.Equals(operFlag) string questionID = Request.QueryStringID; 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.SelectedValue; 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, chapterName, 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.Visible = 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 InitPageData_Add() this.txtBlankAnswer.Text = ; this.txtBlankContent.Text = ; this.txtJudgeContent.Text = ; this.txtSelectA.Text = ; this.txtSelectB.Text = ; this.txtSelectC.Text = ; this.txtSelectContent.Text = ; this.txtSelectD.Text = ; this.rdbRightAnswer.SelectedIndex = -1; this.rdlJudgeResult.SelectedIndex = -1; 第五章 编码测试5.1页面测试测试用例阶段实际测试阶段页面操作判断方法期望输出实际输出备注打开页面1.开考到开考15分钟之前内允许考试2.查看UV_Exam_PaperQuestionDetail非考试时间弹出不允许考试页面考生信息、试卷信息、考题信息与数据库信息一致与期望值一致交卷查看UV_Exam_PageQuestionDetail计算成绩是否与交卷结果相同考试成绩与交卷结果一致与期望值一致5.2数据表测试测试用例阶段实际测试阶段字段名称描述判断方法期望输出实际输出备注ID主键,自动增长在数据库中查看自动增长与期望值一致PaperID试卷ID写入数据与考生考卷ID是否相等写入数据与考生试卷ID一致与期望值一致StudentID学生ID写入数据与考生ID是否相等写入数据与考生ID一致与期望值一致StartTime考试开始时间写入数据与开考时间是否相等写入数据与开考时间一致与期望值一致EndTime考试结束时间写入数据与终考时间是否相等1.开考试数据为空2.交卷时写入交卷时间与期望值一致Score考试成绩写入数据与试卷结构成绩是否相等1.开考是数据为空2.交卷时写答卷分值与期望值一致测试用例阶段实际测试阶段字段名称描述判断方法期望输出实际输出备注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_Exam_PaperQuestionDetail视图中的SelectContentID一致与期望值一致Remark备注:记录填空题学生答题内容查看UV_Exam_PaperQuestionDetail视图进行比较试题答错,此项填入的数据和用户页面输入的答案一致试题答对,此项为空与期望值一致第六章 部署维护6.1创建Windows安装程序包部署Web应用程序采用“发布站点预编译”功能发布网上选课系统站点到一个目标Web服务器的具体操作步骤如下。1.在VS.NET2005中打开网上选课系统的预编译网站所在文件夹“D:SelectCourse”。2.鼠标右键单击解决方案文件,在弹出的快捷菜单中选择“生成解决方案”命令后,出现一个“另存文件夹为”的话框,选择“保存于”下拉列表框,选择目标文件夹为“D:SelectCourse”,在“文件名”文本框中输入“SelectCourse.sln”文件名,然后单击“保存”按钮。3.选择“文件”“添加”“新建项目”菜单命令,将打开“添加新项目”对画框。4.在“添加新项目”对话框的“项目类型”中选择“其他项目类型”,在“模板”列表中选择“Web安装项目”,在“名称”文件框中输入项目名称为“SelectCourseWebSetup”,在“位置”文本框中输入“Web安装项目”所需要输出的路径为:“C:Install”。单击“确定”按钮,系统将自动创建与安装程序有关的源文件。在“文件系统”标签页中选择标记为“Web应用程序文件夹”的文件夹。5.在“解决方案资源管理器”中用鼠标右键单击项目名“SelectCourseWebSetup”6.在弹出的快捷菜单中选择“添加”“项目输出”命令,弹出“添加项目输出组”对话框,单击“确定”按钮后,在资源管理器窗口中输出项目将显示“内容文件来自D:SelectCourse”信息。7.在“解决方案资源管理器”中单击“SelectCourseWebSetup”Web安装项目,然后使用属性窗口设置以下属性。8.为“SelectCourseWebSetup”Web安装项目定义用户界面。9.在如图所示的安装部分用鼠标右键单击“启动”节点,然后再弹出的快捷菜单中选择“添加对话框”命令。10.再如图所示的窗口中,选择“许可协议”,然后单击“确定按钮”。11.重复9,10两步,再图中,在“管理员安装”-“启动”节点的“欢迎使用”节点下面,选择“许可协议”节点,并进行同样的属性设置。12.生成“Windows”Web安装项目,在“解决方案资源管理器”中用鼠标右键单击“SelectCourseWebSetup”Web安装项目,在弹出的快捷菜单中选择“生成命令”。6.2 Web.config 配置
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!