计算机在线考试系统项目总结

合集下载

在线考试系统(项目开发总结报告)

在线考试系统(项目开发总结报告)

项目开发总结报告1引言1.1编写目的编写此计划的目的是为了对“在线考试系统”项目的完成情况进行总结。

它说明了本项目软件开发的方法,可以为本项目的相关专题计划的制定提供指导和参考,供项目组全体人员阅读。

1.2背景随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训。

但是,远程教育软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到远程教育当中去,这就给软件设计人员提出了更高的设计要求。

远程教育包括很多环节,例如教学系统、答疑系统和考试系统等等。

其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。

在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。

显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。

随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。

人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。

例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。

伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的在线考试系统也得到了当今远程教育研究者的关注,考试是考察学生对所学习知识的接受和理解程度的重要手段,无纸化的考卷,考试的随时性,随地性,这些特点都是研究并开发网络考试系统主要的原因,网络考试系统远远超越了传统考试固定时间,固定地点的考试模式的限制,将给学生和老师带来极大的便利。

计算机在线考试系统项目总结

计算机在线考试系统项目总结

计算机在线考试系统项目总结(总9页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--附件: 总结计算机在线考试系统项目随着计算机信息技术、网络技术和软件技术的不断发展和完善,促进了人们很多传统的工作手段和方法也随之改变。

“在线考试系统”就是利用计算机信息技和网络平台结合软件技术,把在教学中可实现标准化考试的课程由传统的纸张考试模式转变成为无纸化考试模式,以实现试题管理、考务管理、随机生成试卷、在线监考、自动阅卷和成绩统计等功能,达到节约资源,提高工作效率,保证考试结果客观公正性的目的。

一、系统可行性由于《计算机文化基础》这门课程的考试题型通常为判断、单项选择、多项选择、填空和文字录入等,而这类题型的答案通常又具有单一性、确定性或有限枚举性等特点,所以便于计算机编码和标准化,以实现无纸化考试。

二、系统需求目前,学院每年学习《计算机文化基础》人数约3000余人,根据以往惯例,该课程的考核方式采用闭卷笔试,由此产生的试卷印刷、装订、分袋、回收试卷、阅卷、成绩统计等工作量非常庞大,且由于考核方法的落后,基本上难以准确、客观、公正地反映学生具有的基本职业技能和素质,其结果是培养的学生,懂理论多些,会实践操作少些,从而偏离了高职学院培养高技能专业人才的目标。

针对《计算机文化基础》课程实践性强的特点,探索与之相适应的,将考核和实践过程有机的结合在一起的较为准确、客观、公正地反映学生具有的计算机文化基础技能和素质的考试方式,减少成绩考核中的片面性,真实反映学生的计算机文化基础技能水平,提高学生对实践教学的重视程度,促进学生学习和实践的积极性和主动性,促使学生朝着提高自身基础技能的方向发展。

三、系统设计1.系统功能设计根据系统需求可知,该在线考试系统应具有以下主要功能,包括考务管理(考生管理、考场安排)、题库管理(试题录入、删改)、试卷管理(定义试卷模板)、考试管理(在线监考、异常处理)、成绩管理(自动阅卷、成绩报表)和系统管理等。

在线考试系统项目报告

在线考试系统项目报告

在线考试系统项目报告目录第一章需求分析...............................................错误!未定义书签。

概念分析..................................................错误!未定义书签。

管理员需求分析........................................错误!未定义书签。

学生需求分析..........................................错误!未定义书签。

教师需求分析..........................................错误!未定义书签。

系统分析..................................................错误!未定义书签。

功能分析..................................................错误!未定义书签。

功能模块图设计........................................错误!未定义书签。

用例图设计................................................错误!未定义书签。

学生用例图设计........................................错误!未定义书签。

教师用例图设计........................................错误!未定义书签。

第二章系统设计...............................................错误!未定义书签。

总体时序图设计............................................错误!未定义书签。

数据库设计................................................错误!未定义书签。

在线考试系统(项目开发总结报告)

在线考试系统(项目开发总结报告)

在线考试系统(项目开发总结报告)项目开发总结报告1引言1.1编写目的编写此计划的目的是为了对“在线考试系统”项目的完成情况进行总结。

它说明了本项目软件开发的方法,可以为本项目的相关专题计划的制定提供指导和参考,供项目组全体人员阅读。

1.2背景随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训。

但是,远程教育软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到远程教育当中去,这就给软件设计人员提出了更高的设计要求。

远程教育包括很多环节,例如教学系统、答疑系统和考试系统等等。

其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。

在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。

显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。

随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。

人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。

例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。

伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的在线考试系统也得到了当今远程教育研究者的关注,考试是考察学生对所学习知识的接受和理解程度的重要手段,无纸化的考卷,考试的随时性,随地性,这些特点都是研究并开发网络考试系统主要的原因,网络考试系统远远超越了传统考试固定时间,固定地点的考试模式的限制,将给学生和老师带来极大的便利。

关于考试系统总结报告

关于考试系统总结报告

关于考试系统总结报告简介本报告旨在对最近使用的考试系统进行总结和评估。

我们将对考试系统的性能、用户体验、功能等进行分析,并提出改进的建议和优化方案。

背景考试系统是一种在线测试工具,用于管理和执行各种形式的考试。

通过使用考试系统,可以方便地创建、分发和评估考试。

使用考试系统还可以减少考试过程中的错误和作弊情况。

我们使用的考试系统是一款开源软件,具有丰富的功能和灵活的配置选项。

性能评估首先,我们对考试系统的性能进行了评估。

通过进行压力测试,我们测试了系统在多个并发用户的情况下的表现。

在测试中,系统能够处理100个并发用户的载荷,响应时间平均在1秒以内。

考虑到我们目前的用户规模,系统的性能表现是稳定的,并且有很大的扩展潜力。

然而,在高峰期,一些用户报告了网站加载速度较慢的问题。

为了解决这个问题,我们建议对后台服务器进行优化,并考虑增加服务器资源以提高响应速度。

用户体验评估我们还对用户体验进行了评估。

通过用户反馈和使用情况的调查,我们发现系统的界面设计简洁、直观,并且易于使用。

大多数用户对系统的操作流程和功能都感到满意。

然而,一些用户提到他们在使用考试系统过程中遇到了一些困难。

主要问题包括:1.注册和登录流程复杂。

2.部分用户界面不够直观,导致用户迷失。

3.考试过程中的页面刷新速度较慢。

针对这些问题,我们建议简化注册和登录流程,提供更多的帮助文档和使用指南,并对考试页面进行性能优化,以提高用户体验。

功能评估我们还对考试系统的功能进行了评估。

总体而言,系统提供了丰富的功能集,包括题库管理、试卷生成、考试监控和成绩统计等。

这些功能能够满足我们的需求,并提供了灵活的配置选项。

然而,一些用户提出了一些改进的建议。

其中包括:1.添加题目搜索和分类功能,以便用户更方便地查找题目。

2.增加自动评分功能,减少人工评分的工作量。

3.提供更多的考试形式,如单项选择、多项选择和填空题。

我们认为这些建议是非常有价值的,并计划在未来的版本中逐步实施它们。

在线考试系统报告

在线考试系统报告

在线考试系统报告摘要随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。

人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证!客观!更加激发学生的学习兴趣。

在线考试系统是为了方面学生考试、老师阅卷、提高考试的公正性、公平。

一、项目名称1.1 在线考试系统二、项目目标2.1 使用Gridview进行数据的添加、删除、更新2.2 运用Javascript来进行考试倒计时三、项目中的具体任务3.1 学生在线考试3.2 后台编辑试题3.3 当场评卷四、工具与设备5.1 软件Visual Studio 2005和SQL 2005五、流程图分析4.1 数据库的组织结构A、这是SQL 2005的表B 、数据库的流程图4.2 前台结构 学生和管理员(Users ) 选择考试科目(Course ) 试卷的类型(Paper )试卷的题目类型(PaperDetail ) 单选题(SingleProblem ) 多选题(MultiProblem ) 判断题(JudgeProblem ) 填空题(FillBlankProblem )分数(Score )A、前台登录B、准备考试C、卷面计时代码:<SCRIPT language="javascript"><!--var sec=0;var min=0;var hou=0;flag=0;idt=window.setTimeout("ls();",1000);function ls(){sec++;if(sec==60){sec=0;min+=1;}if(min==60){min=0;hou+=1;}document.getElementById("lbltime").innerText=min+"分"+sec+"秒"; idt=window.setTimeout("ls();",1000);if(min==30){document.getElementById("imgBtnSubmit").click();}}//--></SCRIPT>编写卷面的后台代码:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using MyOnLineExam.DataAccessLayer;using System.Data.SqlClient;using MyOnLineExam.BusinessLogicLayer;public partial class Web_UserTest : System.Web.UI.Pageprotected void Page_Load(object sender, EventArgs e){if (!IsPostBack){lblPaperName.Text = Session["PaperName"].ToString();InitData();}}//初始化试卷,从数据库中将试题取出protected void InitData(){//Response.Write(Session["PaperID"].ToString());//Response.End();SqlParameter[] Params1 = new SqlParameter[2];DataBase DB = new DataBase();int paperID = int.Parse(Session["PaperID"].ToString());Params1[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params1[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "单选题"); //题目类型DataSet ds1 = DB.GetDataSet("Proc_PaperDetail",Params1);GridView1.DataSource = ds1;GridView1.DataBind();((Label)GridView1.HeaderRow.FindControl("Label27")).Text =((Label)GridView1.Rows[0].FindControl("Label4")).Text;SqlParameter[] Params2 = new SqlParameter[2];Params2[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params2[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "多选题"); //题目类型DataSet ds2 = DB.GetDataSet("Proc_PaperDetail", Params2);GridView2.DataSource = ds2;GridView2.DataBind();((Label)GridView2.HeaderRow.FindControl("Label28")).Text =((Label)GridView2.Rows[0].FindControl("Label8")).Text;SqlParameter[] Params3 = new SqlParameter[2];Params3[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params3[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "判断题"); //题目类型DataSet ds3 = DB.GetDataSet("Proc_PaperDetail", Params3);GridView3.DataSource = ds3;GridView3.DataBind();((Label)GridView3.HeaderRow.FindControl("Label29")).Text =((Label)GridView3.Rows[0].FindControl("Label12")).Text;SqlParameter[] Params4 = new SqlParameter[2];Params4[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params4[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "填空题"); //题目类型DataSet ds4 = DB.GetDataSet("Proc_PaperDetail", Params4);GridView4.DataSource = ds4;GridView4.DataBind();((Label)GridView4.HeaderRow.FindControl("Label30")).Text =((Label)GridView4.Rows[0].FindControl("Label17")).Text;}//提交试卷,生成成绩protected void imgBtnSubmit_Click(object sender, ImageClickEventArgs e){int score = 0;int singlemark = int.Parse(((Label)GridView1.Rows[0].FindControl("Label4")).Text);//取出单选题的每题foreach (GridViewRow dr in GridView1.Rows)//对单选题每题进行判断用户选择答案{string str = "";if (((RadioButton)dr.FindControl("RadioButton1")).Checked){str = "A";}else if (((RadioButton)dr.FindControl("RadioButton2")).Checked){str = "B";}else if (((RadioButton)dr.FindControl("RadioButton3")).Checked){str = "C";}else if (((RadioButton)dr.FindControl("RadioButton4")).Checked){str = "D";}if (((Label)dr.FindControl("Label3")).Text.Trim() == str)//将用户选择结果和答案进行比较{score = score + singlemark;}}int multimark = int.Parse(((Label)GridView2.Rows[0].FindControl("Label8")).Text);//取出多选题每题分值foreach (GridViewRow dr in GridView2.Rows)//对多选题每题进行判断用户选择答案{string str = "";if (((CheckBox)dr.FindControl("CheckBox1")).Checked){str += "A";}if (((CheckBox)dr.FindControl("CheckBox2")).Checked){str += "B";}if (((CheckBox)dr.FindControl("CheckBox3")).Checked){str += "C";}if (((CheckBox)dr.FindControl("CheckBox4")).Checked){str += "D";}if (((Label)dr.FindControl("Label7")).Text.Trim() == str)//将用户选择结果和答案进行比较{score = score + multimark;}}int judgemark = int.Parse(((Label)GridView3.Rows[0].FindControl("Label12")).Text);//取出判断题每题分值foreach (GridViewRow dr in GridView3.Rows)//对判断题每题进行判断用户选择答案{bool j = false;if (((CheckBox)dr.FindControl("CheckBox5")).Checked){j = true;}if (j == bool.Parse(((Label)dr.FindControl("Label11")).Text.Trim())){score = score + judgemark;}}int fillmark = int.Parse(((Label)GridView4.Rows[0].FindControl("Label17")).Text);//取出填空题每题分值foreach (GridViewRow dr in GridView4.Rows){string str = "";str = ((TextBox)dr.FindControl("TextBox1")).Text.Trim();if (str == ((Label)dr.FindControl("Label16")).Text.Trim()){score = score + fillmark;}}Scores insertScore = new Scores(); //创建Scores类对象erID = Session["userID"].ToString();//设置Scores对象的属性insertScore.PaperID=int.Parse(Session["PaperID"].ToString());insertScore.Score = score;if (insertScore.InsertByProc())//调用InsertByProc方法向数据库中插入成绩{if (score >= 8)//根据成绩给出相应提示{Response.Write("<script language=javascript>alert('您太棒了!您的成绩为:"+score+"分!')</script>");}else if (score >= 6){Response.Write("<script language=javascript>alert('合格!您的成绩为:"+score+"分!')</script>");}else{Response.Write("<script language=javascript>alert('需要努力了!您的成绩为:"+score+"分!')</script>");}Panel1.Visible = true;}}protected void imgBtnAnswer_Click(object sender, ImageClickEventArgs e){Response.Redirect("TestAnswer.aspx");}}D、算出分数E、跳去后台管理添加科目的后台代码:protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){Course course = new Course(); //创建考试科目对象 = txtName.Text; //设置考试科目对象属性if (course.InsertByProc()) //调用添加考试科目方法添加考试科目{lblMessage.Text = "成功添加该考试科目!";}else{lblMessage.Text = "添加该考试科目失败!";}}}F、录入试题单选题单选题录入的后台代码:protected void Page_Load(object sender, EventArgs e) {if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"]!=null)//如果是修改题目,初始化数据{InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int SingleProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号SingleProblem singleproblem = new SingleProblem(); //创建单选题对象if (singleproblem.LoadData(SingleProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = singleproblem.CourseID.ToString();txtTitle.Text = singleproblem.Title;txtAnswerA.Text = singleproblem.AnswerA;txtAnswerB.Text = singleproblem.AnswerB;txtAnswerC.Text = singleproblem.AnswerC;txtAnswerD.Text = singleproblem.AnswerD;ddlAnswer.SelectedItem.Text = singleproblem.Answer;}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){SingleProblem singleproblem = new SingleProblem(); //创建单选题对象singleproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为单选题对象各属性赋值singleproblem.Title = txtTitle.Text;singleproblem.AnswerA = txtAnswerA.Text;singleproblem.AnswerB = txtAnswerB.Text;singleproblem.AnswerC = txtAnswerC.Text;singleproblem.AnswerD = txtAnswerD.Text;singleproblem.Answer = ddlAnswer.SelectedItem.Text;if (Request["ID"] != null) //如果是修改题目信息{singleproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (singleproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该单选题!";}else{lblMessage.Text = "修改该单选题失败!";}}else//如果是添加试题{if (singleproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该单选题!";}else{lblMessage.Text = "添加该单选题失败!";}}}}多选题多选题录入的后台代码:protected void Page_Load(object sender, EventArgs e) {if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"]!=null)//如果是修改题目,初始化数据{InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int SingleProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号SingleProblem singleproblem = new SingleProblem(); //创建单选题对象if (singleproblem.LoadData(SingleProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = singleproblem.CourseID.ToString();txtTitle.Text = singleproblem.Title;txtAnswerA.Text = singleproblem.AnswerA;txtAnswerB.Text = singleproblem.AnswerB;txtAnswerC.Text = singleproblem.AnswerC;txtAnswerD.Text = singleproblem.AnswerD;ddlAnswer.SelectedItem.Text = singleproblem.Answer;}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){SingleProblem singleproblem = new SingleProblem(); //创建单选题对象singleproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为单选题对象各属性赋值singleproblem.Title = txtTitle.Text;singleproblem.AnswerA = txtAnswerA.Text;singleproblem.AnswerB = txtAnswerB.Text;singleproblem.AnswerC = txtAnswerC.Text;singleproblem.AnswerD = txtAnswerD.Text;singleproblem.Answer = ddlAnswer.SelectedItem.Text;if (Request["ID"] != null) //如果是修改题目信息{singleproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (singleproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该单选题!";}else{lblMessage.Text = "修改该单选题失败!";}}else//如果是添加试题{if (singleproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该单选题!";}else{lblMessage.Text = "添加该单选题失败!";}}}}填空题填空题录入的后台代码:protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"] != null)//如果是修改题目,初始化数据{InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int fillblankProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号FillBlankProblem fillblankproblem = new FillBlankProblem(); //创建填空题对象if (fillblankproblem.LoadData(fillblankProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = fillblankproblem.CourseID.ToString();txtFrontTitle.Text = fillblankproblem.FrontTitle;txtBackTitle.Text = fillblankproblem.BackTitle;txtAnswer.Text = fillblankproblem.Answer;}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){FillBlankProblem fillblankproblem = new FillBlankProblem(); //创建填空题对象fillblankproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为填空题对象各属性赋值fillblankproblem.FrontTitle=txtFrontTitle.Text;fillblankproblem.BackTitle = txtBackTitle.Text;fillblankproblem.Answer = txtAnswer.Text;if (Request["ID"] != null) //如果是修改题目信息{fillblankproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (fillblankproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该填空题!";}else{lblMessage.Text = "修改该填空题失败!";}}else//如果是添加试题if (fillblankproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该填空题!";}else{lblMessage.Text = "添加该填空题失败!";}}}}判断题判断题录入的后台代码:protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"] != null) //如果是修改题目,初始化数据InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int judgeProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号JudgeProblem judgeproblem = new JudgeProblem(); //创建判断题对象if (judgeproblem.LoadData(judgeProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = judgeproblem.CourseID.ToString();txtTitle.Text = judgeproblem.Title;rblAnswer.SelectedValue = judgeproblem.Answer.ToString();}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){JudgeProblem judgeproblem = new JudgeProblem(); //创建判断题对象judgeproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为判断题对象各属性赋值judgeproblem.Title = txtTitle.Text;judgeproblem.Answer = bool.Parse(rblAnswer.SelectedValue);if (Request["ID"] != null) //如果是修改题目信息{judgeproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (judgeproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该判断题!";}else{lblMessage.Text = "修改该判断题失败!";}}else//如果是添加试题{if (judgeproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该判断题!";}else{lblMessage.Text = "添加该判断题失败!";}}}}G、输出总成绩计算总成绩的后台代码:protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){ImageButton1.Attributes.Add("OnClick", "javascript:return confirm('确实要删除这些用户吗?')");InitData(); //绑定用户信息}}//初始化成绩表格protected void InitData(){Scores score = new Scores(); //创建Scores对象DataSet ds = score.QueryScore(); //调用QueryScore方法查询成绩并将查询结果放到DataSet数据集中GridView1.DataSource = ds; //为GridView控件指名数据源GridView1.DataBind(); //绑定数据}//GridView控件RowDeleting事件protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e){Scores score = new Scores(); //创建Scores对象int ID = int.Parse(GridView1.DataKeys[e.RowIndex].Values[0].ToString()); //取出要删除记录的主键值if (score.DeleteByProc(ID)){Response.Write("<script language=javascript>alert('成功删除该用户!')</script>");}else{Response.Write("<script language=javascript>alert('删除该用户失败!')</script>");}GridView1.EditIndex = -1;InitData();}//批量删除成绩protected void ImageButton1_Click(object sender, ImageClickEventArgs e){Scores score = new Scores();//创建Scores对象foreach (GridViewRow dr in GridView1.Rows)//对GridView中的每一行进行判断{if (((CheckBox)dr.FindControl("xuanze")).Checked)//如果选择了进行删除{int ID = int.Parse(((Label)dr.FindControl("Label1")).Text);score.ID = ID;score.DeleteByProc(ID);}}}。

在线考试系统项目报告

在线考试系统项目报告

在线考试系统项目报告目录第一章需求分析 (4)1.1概念分析 (4)1.1.1管理员需求分析 (4)1.1.2 学生需求分析 (5)1.1.3教师需求分析 (5)1.2系统分析 (5)1.3功能分析 (7)1.3.1功能模块图设计 (7)1.4.1学生用例图设计 (7)1.4.2教师用例图设计 (8)第二章系统设计 (8)2.1总体时序图设计 (8)2.2数据库设计 (9)2.2.1试卷类型表设计 (9)2.2.2试题表设计 (9)2.2.3试题内容表设计 (9)2.2.4试卷表设计 (10)2.2.5试卷详情表设计 (10)2.2.6试卷分值表设计 (10)2.2.7考生答卷表设计 (11)2.2.8考生答卷详情表设计 (11)2.3表见关系设计 (12)2.3.1试题 (12)2.3.2章节试题统计 (12)2.3.3试卷 (13)2.3.4试卷详细 (13)2.3.5试卷考题详细 (14)2.3.6考卷列表 (14)第三章程序设计 (14)3.1在线考试系统后台程序实现 (15)3.1.1母版页设计 (15)3.1.2后台题库添加页面设计 (15)3.1.3后台题库管理页面设计 (16)3.1.4后台试卷生成 (17)3.1.5后台试卷详情查看页面 (17)3.1.6后台试卷管理页面 (18)3.2在线考试系统前台程序实现 (18)3.2.1试卷列表页面设计 (18)3.2.2前台考试页面设计 (19)第四章编码设计 (19)4.1试卷详情的编码 (19)4.2题库管理的编码 (21)第五章编码测试 (23)5.1页面测试 (23)5.2数据表测试 (23)第六章部署维护 (24)6.1创建Windows安装程序包部署Web应用程序 (24)6.2 Web.config 配置 (29)第一章需求分析1.1概念分析本系统的用户可分为管理员、学生用户及教师用户三类。

本系统共分为三个界面:一个界面用于管理员登录,主要负责进行基本资料。

在线考试系统小结

在线考试系统小结

学号:20121112117 班级:12软件班姓名:谭蕾在线考试系统小结在线考试系统提高了考试的可靠性、有效性和工作效率,降低了考试成本,顺应了社会的网络化趋势,必将成为一种不可或缺的考试方式。

本文研究的目的是开发一个易于管理和维护的面向教学的考试系统,具有一定的通用性,能够满足多门课程的测试与考核要求。

为教师开展平时考核及期末考核提供一个考核平台。

为了满足系统对先进性、安全性、跨平台性、可扩展性、可移植性、分布式等方面的要求,系统总体架构设计采用先进的基于B/S 的三层体系结构:用户层、业务逻辑层、数据库层。

要求建立后台数据库,内含一个试题样库,教师可以在题库中添加、编辑和删除试题;教师可以增加新的考试科目;可以充分利用题库中的试题由系统随机组卷,并能在指定时间内发布试卷;学生参加完考试能立即得到答案,并分析考试中答错的题目;教师能得到学生考试后传送到系统的反馈信息,可方便的对成绩进行查询和分析,同时对学生考试中出现的错误进行统计以便今后的教学。

此外,还应具有良好的用户界面,操作方便,尽量减少误操作率,具有安全保密机制。

在网络技术逐渐渗入社会生活各个层面的今天随着科学技术的不断发展,考试的手段和媒介也在发生着革命性的变化,从传统的纸笔考试到计算机辅助考试,其实现方法由单机形式逐步向不同时间、不同地点的网络考试方式发展,基于网络的计算机辅助考试系统以其特有的优势在教育中扮演着十分重要的角色在线考试系统是利用计算机技术,对试题库进行存储管理,并由计算机完成智能组卷、标准化测试、试卷评阅等工作,以取代传统的基于纸和笔的考试方式主要体现在:出卷方便快捷、阅卷准确快速、成绩分析统计科学直观;通过题库系统,只要输入考卷的难度级别、待测试知识点及其它相关条件,教师就可以很容易地(自动或半自动)组织出标准考卷;通过计算机阅卷(包括操作过程的自动跟踪、分析和评测),可以大大减轻教师阅卷的工作量,同时大幅度提高阅卷的准确性;成绩分析统计由计算机自动统计由计算机自动完成,可以方便地进行学生成绩查询、打印、统计和分析等处理统计由计算机自动完成,可以方便地进行学生成绩查询、打印、统计和分析等处理在线考试可实现真正意义上的无纸化考试,不仅是建设节约社会的需要,同时在线考试还具有快捷、方便、高效、安全等许多优点,考试的信度、效度都可大大提高分析设计管理员维护系统及考生考试系统。

在线考试系统报告

在线考试系统报告

在线考试系统报告摘要随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。

人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证!客观!更加激发学生的学习兴趣。

在线考试系统是为了方面学生考试、老师阅卷、提高考试的公正性、公平。

一、项目名称1.1 在线考试系统二、项目目标2.1 使用Gridview进行数据的添加、删除、更新2.2 运用Javascript来进行考试倒计时三、项目中的具体任务3.1 学生在线考试3.2 后台编辑试题3.3 当场评卷四、工具与设备5.1 软件Visual Studio 2005和SQL 2005五、流程图分析4.1 数据库的组织结构A、这是SQL 2005的表B 、数据库的流程图4.2 前台结构 学生和管理员(Users ) 选择考试科目(Course ) 试卷的类型(Paper )试卷的题目类型(PaperDetail ) 单选题(SingleProblem ) 多选题(MultiProblem ) 判断题(JudgeProblem ) 填空题(FillBlankProblem )分数(Score )A、前台登录B、准备考试C、卷面计时代码:<SCRIPT language="javascript"><!--var sec=0;var min=0;var hou=0;flag=0;idt=window.setTimeout("ls();",1000);function ls(){sec++;if(sec==60){sec=0;min+=1;}if(min==60){min=0;hou+=1;}document.getElementById("lbltime").innerText=min+"分"+sec+"秒"; idt=window.setTimeout("ls();",1000);if(min==30){document.getElementById("imgBtnSubmit").click();}}//--></SCRIPT>编写卷面的后台代码:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using MyOnLineExam.DataAccessLayer;using System.Data.SqlClient;using MyOnLineExam.BusinessLogicLayer;public partial class Web_UserTest : System.Web.UI.Pageprotected void Page_Load(object sender, EventArgs e){if (!IsPostBack){lblPaperName.Text = Session["PaperName"].ToString();InitData();}}//初始化试卷,从数据库中将试题取出protected void InitData(){//Response.Write(Session["PaperID"].ToString());//Response.End();SqlParameter[] Params1 = new SqlParameter[2];DataBase DB = new DataBase();int paperID = int.Parse(Session["PaperID"].ToString());Params1[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params1[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "单选题"); //题目类型DataSet ds1 = DB.GetDataSet("Proc_PaperDetail",Params1);GridView1.DataSource = ds1;GridView1.DataBind();((Label)GridView1.HeaderRow.FindControl("Label27")).Text =((Label)GridView1.Rows[0].FindControl("Label4")).Text;SqlParameter[] Params2 = new SqlParameter[2];Params2[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params2[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "多选题"); //题目类型DataSet ds2 = DB.GetDataSet("Proc_PaperDetail", Params2);GridView2.DataSource = ds2;GridView2.DataBind();((Label)GridView2.HeaderRow.FindControl("Label28")).Text =((Label)GridView2.Rows[0].FindControl("Label8")).Text;SqlParameter[] Params3 = new SqlParameter[2];Params3[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params3[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "判断题"); //题目类型DataSet ds3 = DB.GetDataSet("Proc_PaperDetail", Params3);GridView3.DataSource = ds3;GridView3.DataBind();((Label)GridView3.HeaderRow.FindControl("Label29")).Text =((Label)GridView3.Rows[0].FindControl("Label12")).Text;SqlParameter[] Params4 = new SqlParameter[2];Params4[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params4[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "填空题"); //题目类型DataSet ds4 = DB.GetDataSet("Proc_PaperDetail", Params4);GridView4.DataSource = ds4;GridView4.DataBind();((Label)GridView4.HeaderRow.FindControl("Label30")).Text =((Label)GridView4.Rows[0].FindControl("Label17")).Text;}//提交试卷,生成成绩protected void imgBtnSubmit_Click(object sender, ImageClickEventArgs e){int score = 0;int singlemark = int.Parse(((Label)GridView1.Rows[0].FindControl("Label4")).Text);//取出单选题的每题foreach (GridViewRow dr in GridView1.Rows)//对单选题每题进行判断用户选择答案{string str = "";if (((RadioButton)dr.FindControl("RadioButton1")).Checked){str = "A";}else if (((RadioButton)dr.FindControl("RadioButton2")).Checked){str = "B";}else if (((RadioButton)dr.FindControl("RadioButton3")).Checked){str = "C";}else if (((RadioButton)dr.FindControl("RadioButton4")).Checked){str = "D";}if (((Label)dr.FindControl("Label3")).Text.Trim() == str)//将用户选择结果和答案进行比较{score = score + singlemark;}}int multimark = int.Parse(((Label)GridView2.Rows[0].FindControl("Label8")).Text);//取出多选题每题分值foreach (GridViewRow dr in GridView2.Rows)//对多选题每题进行判断用户选择答案{string str = "";if (((CheckBox)dr.FindControl("CheckBox1")).Checked){str += "A";}if (((CheckBox)dr.FindControl("CheckBox2")).Checked){str += "B";}if (((CheckBox)dr.FindControl("CheckBox3")).Checked){str += "C";}if (((CheckBox)dr.FindControl("CheckBox4")).Checked){str += "D";}if (((Label)dr.FindControl("Label7")).Text.Trim() == str)//将用户选择结果和答案进行比较{score = score + multimark;}}int judgemark = int.Parse(((Label)GridView3.Rows[0].FindControl("Label12")).Text);//取出判断题每题分值foreach (GridViewRow dr in GridView3.Rows)//对判断题每题进行判断用户选择答案{bool j = false;if (((CheckBox)dr.FindControl("CheckBox5")).Checked){j = true;}if (j == bool.Parse(((Label)dr.FindControl("Label11")).Text.Trim())){score = score + judgemark;}}int fillmark = int.Parse(((Label)GridView4.Rows[0].FindControl("Label17")).Text);//取出填空题每题分值foreach (GridViewRow dr in GridView4.Rows){string str = "";str = ((TextBox)dr.FindControl("TextBox1")).Text.Trim();if (str == ((Label)dr.FindControl("Label16")).Text.Trim()){score = score + fillmark;}}Scores insertScore = new Scores(); //创建Scores类对象erID = Session["userID"].ToString();//设置Scores对象的属性insertScore.PaperID=int.Parse(Session["PaperID"].ToString());insertScore.Score = score;if (insertScore.InsertByProc())//调用InsertByProc方法向数据库中插入成绩{if (score >= 8)//根据成绩给出相应提示{Response.Write("<script language=javascript>alert('您太棒了!您的成绩为:"+score+"分!')</script>");}else if (score >= 6){Response.Write("<script language=javascript>alert('合格!您的成绩为:"+score+"分!')</script>");}else{Response.Write("<script language=javascript>alert('需要努力了!您的成绩为:"+score+"分!')</script>");}Panel1.Visible = true;}}protected void imgBtnAnswer_Click(object sender, ImageClickEventArgs e){Response.Redirect("TestAnswer.aspx");}}D、算出分数E、跳去后台管理添加科目的后台代码:protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){Course course = new Course(); //创建考试科目对象 = txtName.Text; //设置考试科目对象属性if (course.InsertByProc()) //调用添加考试科目方法添加考试科目{lblMessage.Text = "成功添加该考试科目!";}else{lblMessage.Text = "添加该考试科目失败!";}}}F、录入试题单选题单选题录入的后台代码:protected void Page_Load(object sender, EventArgs e) {if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"]!=null)//如果是修改题目,初始化数据{InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int SingleProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号SingleProblem singleproblem = new SingleProblem(); //创建单选题对象if (singleproblem.LoadData(SingleProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = singleproblem.CourseID.ToString();txtTitle.Text = singleproblem.Title;txtAnswerA.Text = singleproblem.AnswerA;txtAnswerB.Text = singleproblem.AnswerB;txtAnswerC.Text = singleproblem.AnswerC;txtAnswerD.Text = singleproblem.AnswerD;ddlAnswer.SelectedItem.Text = singleproblem.Answer;}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){SingleProblem singleproblem = new SingleProblem(); //创建单选题对象singleproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为单选题对象各属性赋值singleproblem.Title = txtTitle.Text;singleproblem.AnswerA = txtAnswerA.Text;singleproblem.AnswerB = txtAnswerB.Text;singleproblem.AnswerC = txtAnswerC.Text;singleproblem.AnswerD = txtAnswerD.Text;singleproblem.Answer = ddlAnswer.SelectedItem.Text;if (Request["ID"] != null) //如果是修改题目信息{singleproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (singleproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该单选题!";}else{lblMessage.Text = "修改该单选题失败!";}}else//如果是添加试题{if (singleproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该单选题!";}else{lblMessage.Text = "添加该单选题失败!";}}}}多选题多选题录入的后台代码:protected void Page_Load(object sender, EventArgs e) {if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"]!=null)//如果是修改题目,初始化数据{InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int SingleProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号SingleProblem singleproblem = new SingleProblem(); //创建单选题对象if (singleproblem.LoadData(SingleProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = singleproblem.CourseID.ToString();txtTitle.Text = singleproblem.Title;txtAnswerA.Text = singleproblem.AnswerA;txtAnswerB.Text = singleproblem.AnswerB;txtAnswerC.Text = singleproblem.AnswerC;txtAnswerD.Text = singleproblem.AnswerD;ddlAnswer.SelectedItem.Text = singleproblem.Answer;}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){SingleProblem singleproblem = new SingleProblem(); //创建单选题对象singleproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为单选题对象各属性赋值singleproblem.Title = txtTitle.Text;singleproblem.AnswerA = txtAnswerA.Text;singleproblem.AnswerB = txtAnswerB.Text;singleproblem.AnswerC = txtAnswerC.Text;singleproblem.AnswerD = txtAnswerD.Text;singleproblem.Answer = ddlAnswer.SelectedItem.Text;if (Request["ID"] != null) //如果是修改题目信息{singleproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (singleproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该单选题!";}else{lblMessage.Text = "修改该单选题失败!";}}else//如果是添加试题{if (singleproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该单选题!";}else{lblMessage.Text = "添加该单选题失败!";}}}}填空题填空题录入的后台代码:protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"] != null)//如果是修改题目,初始化数据{InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int fillblankProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号FillBlankProblem fillblankproblem = new FillBlankProblem(); //创建填空题对象if (fillblankproblem.LoadData(fillblankProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = fillblankproblem.CourseID.ToString();txtFrontTitle.Text = fillblankproblem.FrontTitle;txtBackTitle.Text = fillblankproblem.BackTitle;txtAnswer.Text = fillblankproblem.Answer;}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){FillBlankProblem fillblankproblem = new FillBlankProblem(); //创建填空题对象fillblankproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为填空题对象各属性赋值fillblankproblem.FrontTitle=txtFrontTitle.Text;fillblankproblem.BackTitle = txtBackTitle.Text;fillblankproblem.Answer = txtAnswer.Text;if (Request["ID"] != null) //如果是修改题目信息{fillblankproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (fillblankproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该填空题!";}else{lblMessage.Text = "修改该填空题失败!";}}else//如果是添加试题if (fillblankproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该填空题!";}else{lblMessage.Text = "添加该填空题失败!";}}}}判断题判断题录入的后台代码:protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"] != null) //如果是修改题目,初始化数据InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int judgeProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号JudgeProblem judgeproblem = new JudgeProblem(); //创建判断题对象if (judgeproblem.LoadData(judgeProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = judgeproblem.CourseID.ToString();txtTitle.Text = judgeproblem.Title;rblAnswer.SelectedValue = judgeproblem.Answer.ToString();}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){JudgeProblem judgeproblem = new JudgeProblem(); //创建判断题对象judgeproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为判断题对象各属性赋值judgeproblem.Title = txtTitle.Text;judgeproblem.Answer = bool.Parse(rblAnswer.SelectedValue);if (Request["ID"] != null) //如果是修改题目信息{judgeproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (judgeproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该判断题!";}else{lblMessage.Text = "修改该判断题失败!";}}else//如果是添加试题{if (judgeproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该判断题!";}else{lblMessage.Text = "添加该判断题失败!";}}}}G、输出总成绩计算总成绩的后台代码:protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){ImageButton1.Attributes.Add("OnClick", "javascript:return confirm('确实要删除这些用户吗?')");InitData(); //绑定用户信息}}//初始化成绩表格protected void InitData(){Scores score = new Scores(); //创建Scores对象DataSet ds = score.QueryScore(); //调用QueryScore方法查询成绩并将查询结果放到DataSet数据集中GridView1.DataSource = ds; //为GridView控件指名数据源GridView1.DataBind(); //绑定数据}//GridView控件RowDeleting事件protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e){Scores score = new Scores(); //创建Scores对象int ID = int.Parse(GridView1.DataKeys[e.RowIndex].Values[0].ToString()); //取出要删除记录的主键值if (score.DeleteByProc(ID)){Response.Write("<script language=javascript>alert('成功删除该用户!')</script>");}else{Response.Write("<script language=javascript>alert('删除该用户失败!')</script>");}GridView1.EditIndex = -1;InitData();}//批量删除成绩protected void ImageButton1_Click(object sender, ImageClickEventArgs e){Scores score = new Scores();//创建Scores对象foreach (GridViewRow dr in GridView1.Rows)//对GridView中的每一行进行判断{if (((CheckBox)dr.FindControl("xuanze")).Checked)//如果选择了进行删除{int ID = int.Parse(((Label)dr.FindControl("Label1")).Text);score.ID = ID;score.DeleteByProc(ID);}}}。

在线考试系统小结

在线考试系统小结

小结在线考试系统的总目标是:在当前网络环境下,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的在线考试系统,实现企业或者是学校考试的无纸化,为企业或者学校选拔人才提高更方便,更有效的途径。

根据可行性研究的结果和用户的要求,分析现有情况及问题,采用brower/Server结构,将在线考试系统分成了一下功能模块。

本系统的用户可分为管理员、学生和教师三类。

本系统共分成三个界面:一个界面用于管理员登录,主要负责进行学生基本信息的修改、删除、添加,教师基本信息的删除、添加,试题基本信息的删除、添加,考试科目的设置,考试结果的管理,管理员密码的修改。

一个界面用于学生登录,主要负责在线考试、查看考试记录,也可以选择考试。

另一方界面用于教师登录,主要负责试题基本信息的删除、修改、添加以及试题的查询,考试结果的查询,个人信息的修改。

从总体上考虑,系统应该实现下列功能:对管理员来说,包括学生信息管理,教师信息管理,试题信息管理,科目信息管理,考试结果管理,管理员信息维护。

1、学生信息管理:包括学生基本信息的查询,根据查询条件学号和姓名以及关键字进行查询,学生基本信息的修改,添加、删除。

2、教师信息管理:包括教师基本信息的删除、添加。

3、试题学习管理:包括试题基本信息的查看、修改和删除以及试题的添加4、科目信息管理:管理员可以设置考试科目。

5、考试结果管理:管理员可以删除考试结果。

6、管理员信息维护:管理员密码修改。

对教师来说,包括在试题信息管理,考试结果管理,个人信息维护。

1、试题信息管理:包括试题基本信息的查看、修改、删除以及试题基本信息的添加。

2、考试结果管理:对学生考试结果的查询。

3、个人信息维护:教师密码的修改。

对学生来说,可以在线考试,选择考试科目,考试成绩的查询1、试题信息管理:学生可以任选时间进行在线测试,在规定的时间内完成作答并交卷。

在线考试总结范文

在线考试总结范文

随着信息技术的飞速发展,在线考试已经成为教育行业的一种新兴教学模式。

近期,我参加了学校组织的一次在线考试,通过这次考试,我对在线考试的优势与挑战有了更深刻的认识。

以下是我对这次在线考试的总结。

一、在线考试的优势1. 时间灵活:在线考试不受时间和地点的限制,学生可以根据自己的时间安排进行考试,极大地提高了学习效率。

2. 成本节约:在线考试减少了纸张和印刷成本,同时降低了考试的组织和管理成本,对于学校和学生来说都是一种经济实惠的选择。

3. 安全可靠:在线考试系统采用了加密技术,确保了考试过程的公平性和安全性,减少了作弊的可能性。

4. 个性化反馈:在线考试系统能够即时生成考试成绩和详细的分析报告,帮助学生了解自己的学习状况,实现个性化学习。

5. 环保节能:在线考试减少了纸张的使用,有利于保护环境,符合绿色低碳的生活理念。

二、在线考试的挑战1. 技术依赖:在线考试对网络环境和技术设备有较高要求,部分学生可能因为设备故障或网络不稳定而影响考试。

2. 监考难度:与传统的纸质考试相比,在线考试的监考难度更大,需要教师对考试过程进行实时监控,防止作弊行为。

3. 自律性要求:在线考试需要学生具备较强的自律性,否则容易受到外界干扰,影响考试质量。

4. 考试质量评估:在线考试的成绩与传统的纸质考试相比,其信度和效度有待进一步验证。

三、改进措施1. 提高网络环境:学校应加大对网络环境的投入,确保学生能够稳定地进行在线考试。

2. 加强技术培训:对学生和教师进行在线考试系统的操作培训,提高使用效率。

3. 完善监考机制:建立在线监考制度,加强对考试过程的监控,确保考试的公平性。

4. 提高自律意识:加强学生的自律教育,提高学生的自律意识,减少作弊行为。

5. 优化考试评价体系:结合在线考试的特点,建立科学合理的考试评价体系,确保考试质量。

总之,在线考试作为一种新型的教学模式,具有诸多优势,但也面临一定的挑战。

通过不断改进和完善,相信在线考试将在教育领域发挥更大的作用。

在线考试系统项目报告

在线考试系统项目报告

在线考试系统项目报告目录第一章需求分析 (5)1.1概念分析 (5)1.1.1管理员需求分析 (5)1.1.2 学生需求分析 (6)1.1.3教师需求分析 (6)1.2系统分析 (7)1.3功能分析 (8)1.3.1功能模块图设计 (8)1.4.1学生用例图设计 (9)1.4.2教师用例图设计 (9)第二章系统设计 (9)2.1总体时序图设计 (10)2.2数据库设计 (10)2.2.1试卷类型表设计 (10)2.2.2试题表设计 (11)2.2.3试题内容表设计 (11)2.2.4试卷表设计 (12)2.2.5试卷详情表设计 (12)2.2.6试卷分值表设计 (13)2.2.7考生答卷表设计 (13)2.2.8考生答卷详情表设计 (14)2.3表见关系设计 (14)2.3.1试题 (14)2.3.2章节试题统计 (15)2.3.3试卷 (15)2.3.4试卷详细 (16)2.3.5试卷考题详细 (17)2.3.6考卷列表 (17)第三章程序设计 (18)3.1在线考试系统后台程序实现 (18)3.1.1母版页设计 (18)3.1.2后台题库添加页面设计 (19)3.1.3后台题库管理页面设计 (19)3.1.4后台试卷生成 (20)3.1.5后台试卷详情查看页面 (21)3.1.6后台试卷管理页面 (22)3.2在线考试系统前台程序实现 (22)3.2.1试卷列表页面设计 (22)3.2.2前台考试页面设计 (23)第四章编码设计 (23)4.1试卷详情的编码 (23)4.2题库管理的编码 (25)第五章编码测试 (27)5.1页面测试 (27)5.2数据表测试 (27)第六章部署维护 (29)6.1创建Windows安装程序包部署Web应用程序 (29)6.2 Web.config 配置 (33)第一章需求分析1.1概念分析本系统的用户可分为管理员、学生用户及教师用户三类。

本系统共分为三个界面:一个界面用于管理员登录,主要负责进行基本资料。

计算机专业在线考试系统开放的社会实践报告

计算机专业在线考试系统开放的社会实践报告

计算机专业在线考试系统开放的社会实践报告
近日,我们团队成功开发了计算机专业在线考试系统并进行了开放测试。

该系统可支持多种题型,提供实时评分和反馈,有效提升了考试效率和公正性。

在开放过程中,我们积极收集用户反馈,不断优化系统性能。

通过此次实践,我们深刻体会到技术与社会需求的紧密结合,以及团队协作在项目开发中的重要性。

此次在线考试系统的开放,不仅为计算机专业学生提供了便捷的考试平台,也为其他领域在线考试系统的开发提供了有益参考。

未来,我们将继续完善系统功能,拓展应用领域,为推动在线教育的发展贡献更多力量。

在线考试系统的测试与总结

在线考试系统的测试与总结

06 测试总结与报告
测试结果汇总
测试覆盖率
性能测试结果
本次测试覆盖了在线考试系统的所有 功能模块,包括用户管理、题库管理、 试卷生成、考试监控和成绩管理等。
在线考试系统在并发用户数为100时, 响应时间小于2秒,且未出现系统崩 溃或数据丢失的情况。
测试用例执行情况
所有测试用例均已执行,其中通过的 用例占比达到95%,剩余5%的用例因 为系统异常或数据问题导致失败。
稳定性测试
总结词
验证系统的持续稳定性和可靠性
VS
详细描述
通过长时间运行测试用例,检测系统在长 时间运行过程中是否出现异常、崩溃等问 题,评估系统的稳定性和可靠性,确保系 统能够持续提供高质量的服务。
05 安全测试
总结词
验证用户权限的正确性和安全性
详细描述
测试不同用户角色(如管理员、教师、学生)的权限设置,确 保各角色只能访问其对应的功能和数据,防止越权操作。
在线考试系统的测试与总结
目录
• 在线考试系统概述 • 测试环境与准备 • 功能测试 • 性能测试 • 安全测试 • 测试总结与报告
01 在线考试系统概述
系统简介
在线考试系统是一种基于互联网的考 试平台,它能够实现考试的全流程自 动化,包括题库管理、试卷生成、在 线考试、自动评分等功能。
该系统旨在提高考试效率、降低考试 成本、方便考生参加考试,同时保证 考试的公正性和安全性。
总结词
验证数据传输和存储的安全性
详细描述
测试在线考试系统在数据传输过程中是否采用加密技术,确保 数据在传输过程中不被窃取;同时验证数据存储是否加密,防 止未经授权的访问。
总结词
检测系统潜在的安全漏洞
详细描述
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《多学科远程在线考试系统》总结报告二〇一三年五月目录一、开发背景 (1)二、开发目标 (2)1.系统的总体目标: (2)2.对教师的系统目标: (3)三、系统的功能简介 (3)1.系统功能设计 (3)2.系统运行环境 (6)3.功能模块说明 (7)3.1 题库管理 (7)3.2 考生管理 (9)3.3考试监控 (11)3.4成绩管理 (12)3.5 基本流程 (13)四、系统应用及推广 (14)五、系统突破点 (16)六、非常规题型 (16)1.计算机操作题(Office操作:word、ppt、excel等) (16)2.医学操作题(听诊、心电图、视频等) (17)3.英语(听力、阅读理解等) (19)4.基本题型(单选、多选、填空、简答、打字等) (20)一、开发背景现阶段学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出卷,考生考试,人工阅卷,成绩评估和试卷分析。

这是一个繁杂的过程,需要大量人力、物力与时间的投入,已经越来越不适应学校信息化建设与现代教学的需要。

同时,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。

随着计算机信息技术、网络技术和软件技术的不断发展和完善,促进了人们很多传统的工作手段和方法也随之改变。

如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。

人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观、更加激发学生的学习兴趣。

尤其在远程网络教学中,学生分布广,不易统一集中安排考试,给校方和学生带来了众多的不便。

“多学科远程在线考试系统”就是利用计算机信息技和网络平台结合软件技术,把在教学中可实现标准化考试的课程由传统的纸张考试模式转变成为无纸化考试模式,以实现试题管理、考务管理、随机生成试卷、在线监考、自动阅卷和成绩统计等功能,达到节约资源,提高工作效率,保证考试结果客观公正性的目的,同时它可以利用互联网络和局域网,随时随地的对学生进行考试,加上数据库技术的利用,大大简化了传统考试的过程,因此在线考试是电子化教学的不可缺少的辅助手段。

将计算机与网络技术应用于现代高等教育中,是现代高等教育发展的需要,也是改革教育模式,提高学校教学效果和教学效率、提高科研和管理水平的必要手段。

二、开发目标1.系统的总体目标:1)多学科远程在线考试系统可以帮助教师完成一个考试从题目设计,考试安排,考试实施,考卷批改到分数统计总结的所有工作。

2)所有的考试数据和其它数据库需要一种主流的方式进行存储和管理,例如使用数据库技术。

考试数据的存放和处理必须对考试保密,需要一定的安全性保障。

4)这个软件是分布式的,这意味着只要有考试客户端可以连接到考试应用服务器,任何考生在任何地方进行身份确认,都能完成考试。

5)题目最好有一定的稳定性和随机性。

稳定性可以保证每一次考试对每一个考生是公平的,随机性可以避免作弊的发生。

6)考试的部分结果在考生考完之后就可以知道,同时提供一个机会让考生知道自己哪里做错了,并给出反馈信息说明理由。

7)采用B/S模式。

在Windows/Linux平台上,使用IE浏览器,完成制题、考试、交卷等考试任务。

2.对教师的系统目标:1)提供一个功能全面的考核管理客户端,可以进行考试设计和安排。

2)通过管理客户端,教师可以进行考试的身份管理。

3)考生的考试结果可以被保存下来,供教师进行分析统计、查看、存档。

三、系统的功能简介1.系统功能设计系统功能集中了多个职能部门的工作,其中包括教务处、学生处、教学教研室等部门的具体工作。

具体功能模块包括:1)管理登录模块:管理考试系统参数、考试科目、题库、考生信息、成绩信息。

2)后台管理程序:在输入管理员账号密码后将进入此页面,包括判断题管理,选择题管理,试卷管理,成绩管理,学生管理。

3)考试登陆:包括验证登陆和不验证登陆两种方式。

同时考试同时在左上角正常显示照片。

根据考试角色的不同,其在系统中的功能权限也不同。

.系统结构图系统使用流程如下:建立考试科目录入考试题库重组生成试卷设置考试参数学生登陆学生答题学生提交试卷考试监控数据备份考试结束查看成绩试卷分析导出成绩2 3 4 5 67891012.系统运行环境设计多学科远程在线考试系统的主要目的之一就是要提高工作效率,降低工作量,而系统运行环境与软件架构模式的选择就显得尤为重要。

系统运行环境和软件架构模式既要安全、稳定、可靠又要简单、易用、易于配置和管理。

由于Windows操作系统是我们最常用的系统环境,而基于WEB浏览器B/S模式的多层应用程序其客户端具有零配置的优点,且基于Microsoft .NET架构的XML Web services平台允许应用程序通过Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。

Microsoft .NET 平台提供创建XML Web services 并将这些服务集成在一起,可有效均衡系统负载,保证系统在大并发量访问下安全、可靠、稳定地运行。

所以该系统运行境和软件架构模式选择如下。

服务器端:Windows 2000/Windows 2003 Server + SQL Server 2000/Access + Microsoft .NET 2.0 + IIS6.0。

客户端:Windows操作系统+IE6.0及以上。

B/S模式带来了巨大的好处:1)开发成本及维护成本降低。

由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW 浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。

2)良好的安全性能,防火墙技术可以保证后台数据库的安全性。

所有的配置工作都集中在服务器端且所有客户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。

3.功能模块说明3.1 题库管理1)题型设置题型是一个科目考试的基本组成,系统提供了7种题型模式:单选、多选、填空、判断、打字、问答、操作。

1>如果7个题型够用就无需再添加自定义题型,如果考试中还需要其他的题型,可以在这里根据提示添加,添加的题型叫做“自定义题型”。

每个科目最多可以再添加20个自定义题型,如果加上考试系统提供的7个默认题型,一张试卷中最多可以出现27个题型。

2>自定义题型添加时除了上面两个参数(小标题、题型要求)外,还有以下三个参数:题型要求是否显示:在试卷上显示这个题型的考题时,是否显示“题型名称”。

小题号是否显示:在试卷上显示这个题型的考题时,是否显示每道考题前面的小题号。

Word输入框:考生在考试时,试卷里面的问答题采是否用OFFICE输入框,这种输入框将支持表格、公式、FLASH、图片等超文本输入。

2)题库设置题库是考试系统中最重要的组成部分,每一个题型可以添加100个题库(每个自定义题型也有100个题库)。

题库是用来存储考题的,所以我们可以给添加的题库起一个名字,将存储的考题进行分类存放。

1>每一个题库里存储的考题数量可以达到上万道,但是对于单个题库设定的“抽取题量”尽量不要大于100,以便减轻服务器的抽题负担,如果非要超过100道题目,可以输入百分数。

2>抽取题量可以输入百分数,如果您输入的是百分数,那么系统会自动计算题库中所有考题数量的百分比,从这个题库中抽取一定比例的考题进行考试。

如果计算的比例不是整数会四舍五入。

3)题库输入:考题录入格式简单,功能强大,可以一次录入一道考题也可以一次录入多道考题,考题的查询、备份、修改、批量编辑、批量导出。

3.2 考生管理科目管理员在这里输入的考生,是有权力参加当前科目考试的考生的身份信息。

没有录入的考生,或者考生输入的身份信息跟在这里的添加的考生信息不同,都无权登录。

这里上边的按钮从左到右依次是:保存考生、编辑考生、删除考生、刷新页面、浏览考生、准考证、导入数据和帮助1)保存考生:考生的输入非常简单,目前提供了两种有效的录入方式:1>、用逗号间隔输入考生信息,在录入下一个考生时加一次回车(考生的每一项信息之间用逗号间隔,考生和考生之间用回车间隔)。

2>、将考生信息输入到EXCEL中,复制到系统界面的编辑栏中。

3>、用这两种方式都可以一次添加一个或多个考生。

2)编辑考生:点击这个按钮可以将您输入的所有考生列表到编辑框中,列表的数据可以复制出来备份也可以再次进行编辑、删除、修改等操作。

点击了这个按钮后,“保存考生”按钮变成了“覆盖保存”,所以您可以替换数据库里面原来的所有考生信息。

3)删除考生:就是将输入的所有考生全部删除。

4)浏览考生:将考生在下边框架中列表出来,可以对列表的考生可以给予授权或取消授权,授权后的考生才可以登录考试,否则取消授权的考生不允许登录考试。

只要有科目管理员添加的考生默认情况下都做为授权考生。

5)准考证:这里提供了一个批量生成准考证的系统,可以将添加的考生自动批量生成准考证。

6)导入数据:可以将一个EXCEL文件里面的三列数据上传导入到考生信息库里面,如果您要导入的考生信息多余三列,可以从EXCEL复制,然后粘贴到考生编辑框的方法。

7)登陆权限:将“参数管理-基本设置-第七项身份验证”打上对钩后,就不是任何人都可以随便登陆这个科目考试了,必须将这个考生输入到这个信息库,然后授予这个考生权限才可以。

8)上传相片:考生的相片可以点击下面列表里面的“无相片”,一个一个考生的上传、预览、删除,添加相片后并不是在考试时就会显示这个考生的相片,必须将“参数管理-基本设置-第七项身份验证”打上对钩后才会显示。

9)相片的批量导入:如果你感觉一个一个的上传相片过于麻烦,你可以将这些考生的相片文件用考生信息的第一项内容“考号”命名,然后复制到目录“EXAM\CONN\相应数据库目录里面,复制完成后,点击考生列表的下面“相片已批量导入”按钮即可。

要注意的是:1、这些相片的扩展名必须是JPG;2、导入后,预览一下是否正常;3、相片尺寸90*1203.3考试监控考试监控记录了考生登录的ip、登录时间、结束时间、总分数等信息,这些信息当考生在线时,是实时更新的。

也可以设定让网页自动刷新,自动刷新时占用服务器资源很少。

1)考试监控的主要功能是:检测正在考试的考生信息,监督考试中非法退出,给考生存盘,帮考生交卷,监视考生的试卷答题情况等。

相关文档
最新文档