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

项目开发总结报告1引言1.1编写目的编写此计划的目的是为了对“在线考试系统”项目的完成情况进行总结。
它说明了本项目软件开发的方法,可以为本项目的相关专题计划的制定提供指导和参考,供项目组全体人员阅读。
1.2背景随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训。
但是,远程教育软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到远程教育当中去,这就给软件设计人员提出了更高的设计要求。
远程教育包括很多环节,例如教学系统、答疑系统和考试系统等等。
其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。
在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。
显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。
随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。
人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。
例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。
伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的在线考试系统也得到了当今远程教育研究者的关注,考试是考察学生对所学习知识的接受和理解程度的重要手段,无纸化的考卷,考试的随时性,随地性,这些特点都是研究并开发网络考试系统主要的原因,网络考试系统远远超越了传统考试固定时间,固定地点的考试模式的限制,将给学生和老师带来极大的便利。
计算机在线考试系统项目总结

《多学科远程在线考试系统》总结报告二〇一三年五月目录一、开发背景 (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. 项目背景本次项目是为了达到软考考试的要求,以软考模拟系统的开发为目标。
软考考试是一次标准化的软件工程能力考试,对于候选人的技术水平和综合能力有着严格的要求。
为了帮助考生更好地准备软考,我们开发了这套软考模拟系统。
该系统可以提供在线模拟考试、真题练习、考试成绩分析等功能,旨在提高考生的考试技巧和知识水平。
2. 项目目标本项目的目标是开发出一套完善的软考模拟系统,具有以下特点:- 提供在线模拟考试功能,包括选择题、填空题和编程题的模拟考试。
- 模拟考试具有时间限制和随机题库,可以提高考生对考试时间的把握能力。
- 提供题目试题的详细解析和参考答案,帮助考生了解自己的错误并进行针对性的复习提高。
- 提供真题练习功能,可以根据考试科目和考试类型进行选择。
- 考试成绩分析功能,根据考生的答题情况,分析出考生的优势与劣势,提供针对性的学习建议。
3. 项目进展通过团队的共同努力,我们已经完成了项目的大部分功能。
目前,系统已经具备了以下功能:- 用户注册和登录功能,用户可以通过手机号或邮箱进行注册和登录。
- 个人信息管理功能,用户可以修改个人资料和密码。
- 题库管理功能,包括题目的增删改查和题目分类管理。
- 在线模拟考试功能,提供选择题、填空题和编程题的模拟考试,考试时间和题目难度可以自定义。
- 真题练习功能,提供真题的查看和练习。
- 考试成绩分析功能,根据考生的答题情况,分析出考生的优势和劣势。
4. 技术选型为了达到项目目标,我们选择了以下技术进行开发:- 后端开发语言:Java- 前端开发语言:HTML、CSS、JavaScript- 数据库:MySQL- 开发框架:Spring Boot、MyBatis- 前端框架:Vue.js5. 项目难点在项目的开发过程中,我们遇到了以下几个难点:1. 题目分类管理:如何设计和实现题目分类管理功能,使得题目可以按照不同的分类进行管理和检索。
2. 在线模拟考试:如何设计考试计时和随机题库的功能,使得考生在模拟考试中感觉到真实考试的压力和随机性。
网考总结范文

网考总结1. 引言随着信息技术的快速发展,越来越多的考试开始逐步转向网络化的形式。
网考(Online examination)作为一种新兴的考试方式,具有方便快捷、灵活自主的特点,受到了广大考生的欢迎。
本文将对网考进行总结和分析,探讨其优势和劣势。
2. 网考的优势2.1 方便快捷网考免去了传统考试需要前往考场、排队签到的步骤,考生只需在指定的时间内登录考试系统即可进行考试。
这大大节省了考生的时间和精力,尤其对于工作繁忙的人来说,是一个非常便利的选择。
2.2 灵活自主网考通常具有较长的考试时间,考生可以根据自己的节奏和能力进行答题,无需受到考场时间和监考人员的限制。
这使得考生在一定程度上能够更好地发挥自己的能力,提高考试成绩。
2.3 环保省钱相比传统的纸质考试,网考减少了大量的纸张和印刷费用,有利于环境保护。
同时,网考还能够节省考生的交通费用和食宿费用,降低了考试的经济负担。
3. 网考的劣势3.1 网络稳定性问题网考严重依赖网络的稳定性,如果在考试期间网络出现问题,可能会导致考生无法正常完成考试。
尽管大多数网考系统都会有备用网络或者断电自动保存答案,但仍然无法完全避免网络带来的风险。
3.2 考试安全性问题与传统考试相比,网考的安全性难以保障。
考生在网考过程中,存在舞弊作弊的风险,例如使用外部资料、远程作弊等,一定程度上影响了考试的公平性和准确性。
3.3 缺乏监考网考无法像传统考试那样有监考人员全程监管,考生可能存在合作作弊的现象。
尽管网考系统通常会记录考生的操作轨迹和拍摄图像,但无法达到真正的监考效果。
4. 对网考的应对策略4.1 提高网络稳定性网考机构和考试系统提供商需要加强网络设备的建设和维护,确保在考试期间网络的稳定运行。
同时,建议考生提前测试网络环境,确保网络畅通。
4.2 强化考试安全措施考试系统应加强监控和防护措施,减少考生作弊行为,例如使用人脸识别技术、实名制认证等。
同时,考生也应自觉遵守考试纪律,维护考试的公平性。
在线考试系统项目报告

在线考试系统项目报告目录第一章需求分析 (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)第五章编码测试 (22)5.1页面测试 (23)5.2数据表测试 (23)第六章部署维护 (24)6.1创建Windows安装程序包部署Web应用程序 (24)6.2 Web、config 配置29第一章需求分析1.1概念分析本系统得用户可分为管理员、学生用户及教师用户三类。
本系统共分为三个界面:一个界面用于管理员登录, 主要负责进行基本资料。
关于考试系统总结报告

关于考试系统总结报告简介本报告旨在对最近使用的考试系统进行总结和评估。
我们将对考试系统的性能、用户体验、功能等进行分析,并提出改进的建议和优化方案。
背景考试系统是一种在线测试工具,用于管理和执行各种形式的考试。
通过使用考试系统,可以方便地创建、分发和评估考试。
使用考试系统还可以减少考试过程中的错误和作弊情况。
我们使用的考试系统是一款开源软件,具有丰富的功能和灵活的配置选项。
性能评估首先,我们对考试系统的性能进行了评估。
通过进行压力测试,我们测试了系统在多个并发用户的情况下的表现。
在测试中,系统能够处理100个并发用户的载荷,响应时间平均在1秒以内。
考虑到我们目前的用户规模,系统的性能表现是稳定的,并且有很大的扩展潜力。
然而,在高峰期,一些用户报告了网站加载速度较慢的问题。
为了解决这个问题,我们建议对后台服务器进行优化,并考虑增加服务器资源以提高响应速度。
用户体验评估我们还对用户体验进行了评估。
通过用户反馈和使用情况的调查,我们发现系统的界面设计简洁、直观,并且易于使用。
大多数用户对系统的操作流程和功能都感到满意。
然而,一些用户提到他们在使用考试系统过程中遇到了一些困难。
主要问题包括:1.注册和登录流程复杂。
2.部分用户界面不够直观,导致用户迷失。
3.考试过程中的页面刷新速度较慢。
针对这些问题,我们建议简化注册和登录流程,提供更多的帮助文档和使用指南,并对考试页面进行性能优化,以提高用户体验。
功能评估我们还对考试系统的功能进行了评估。
总体而言,系统提供了丰富的功能集,包括题库管理、试卷生成、考试监控和成绩统计等。
这些功能能够满足我们的需求,并提供了灵活的配置选项。
然而,一些用户提出了一些改进的建议。
其中包括:1.添加题目搜索和分类功能,以便用户更方便地查找题目。
2.增加自动评分功能,减少人工评分的工作量。
3.提供更多的考试形式,如单项选择、多项选择和填空题。
我们认为这些建议是非常有价值的,并计划在未来的版本中逐步实施它们。
考试管理系统开发总结

前2个星期,一直在做一个考试系统的开发,主要是帮助一个单位的人力资源对他们员工的内部培训和考核,考试系统就是完成考核的目的,主要功能是在题库中选题然后出卷子,在线答题完成后交卷、判卷、评分等。
目前这个考试系统要进行原型设计,就是在技术上进行实现,尽快给客户使用和反馈,实施迭代开发。
开发人员就我一个,NND既然是原型那我就扛了!这个系列的文章主要是对我解决这个问题的一个回忆和总结。
刚开始接到这个任务时觉得有点麻烦,主要是题型和卷子的关系那块,对象树有点复杂,题目信息肯定是一个基类了,从题库中调出,然后组合成一个试卷,在考试过程开始时表现出来,在考试结束时收集成为一个答卷,在后台要判卷,得到分数什么的。
考虑到每个考试不仅生成的考卷要持久化,答卷也要持久化,我想这东西有这么多的外键,搞在数据库里太麻烦了,于是直接用XML作为持久化吧。
看下面的类图如果是用数据库该有多少个关联表呢,如果用表还要处理继承的问题,好痛苦的!上面的类设计已经大概说明了这个系统的实现难点:它是多层嵌套的。
关系是:试卷1:N题型1:N题目,有3层1对多的情况,而且题目那块是分不同的类型,其中有组合的类型。
很无奈,我想一次保存这么多信息,就只能这么设计了。
该如何程序表达和数据提交。
用“鹾”办法可以很容易实现吧,但我想尽量优雅的实现这个,我在这方面追求的太高,因此BOSS 总批评我!这种设计有2个比较明显的实现难点:1、多层对象结构在页面上该如何表达,表达之后如何实现资料的收集2、多层对象的持久化保存,是否能完整的还原和生成答卷这种设计的优点:1、避免了多层对象在数据库中持久化的表达,避免了最麻烦、复杂的问题,特别是它还会从“问卷”转化为“答卷”2、方便变更,如果要增加或调整字段,影响面比较小,只用修改类就可以,比数据库方便,特别是部署到生产环境之后这篇主要讲讲怎么实现之前的设计,之前设计有2个问题要首先解决,不然没办法继续搞:1、多层对象结构在 页面上的表达和数据收集2、多层对象的持久化保存和还原。
在线考试系统报告

在线考试系统报告摘要随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。
人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证!客观!更加激发学生的学习兴趣。
在线考试系统是为了方面学生考试、老师阅卷、提高考试的公正性、公平。
一、项目名称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);}}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附件: 总结
计算机在线考试系统项目
随着计算机信息技术、网络技术和软件技术的不断发展和完善,促进了人们很多传统的工作手段和方法也随之改变。
“在线考试系统”就是利用计算机信息技和网络平台结合软件技术,把在教学中可实现标准化考试的课程由传统的纸张考试模式转变成为无纸化考试模式,以实现试题管理、考务管理、随机生成试卷、在线监考、自动阅卷和成绩统计等功能,达到节约资源,提高工作效率,保证考试结果客观公正性的目的。
一、系统可行性
由于《计算机文化基础》这门课程的考试题型通常为判断、单项选择、多项选择、填空和文字录入等,而这类题型的答案通常又具有单一性、确定性或有限枚举性等特点,所以便于计算机编码和标准化,以实现无纸化考试。
二、系统需求
目前,学院每年学习《计算机文化基础》人数约3000余人,根据以往惯例,该课程的考核方式采用闭卷笔试,由此产生的试卷印刷、装订、分袋、回收试卷、阅卷、成绩统计等工作量非常庞大,且由于考核方法的落后,基本上难以准确、客观、公正地反映学生具有的基本职业技能和素质,其结果是培养的学生,懂理论多些,会实践操作少些,从而偏离了高职学院培养高技能专业人才的目标。
针对《计算机文化基础》课程实践性强的特点,探索与之相适应
的,将考核和实践过程有机的结合在一起的较为准确、客观、公正地反映学生具有的计算机文化基础技能和素质的考试方式,减少成绩考核中的片面性,真实反映学生的计算机文化基础技能水平,提高学生对实践教学的重视程度,促进学生学习和实践的积极性和主动性,促使学生朝着提高自身基础技能的方向发展。
三、系统设计
1.系统功能设计
根据系统需求可知,该在线考试系统应具有以下主要功能,包括考务管理(考生管理、考场安排)、题库管理(试题录入、删改)、试卷管理(定义试卷模板)、考试管理(在线监考、异常处理)、成绩管理(自动阅卷、成绩报表)和系统管理等。
其系统构成如下图。
2.系统运行环境
设计在线考试系统的主要目的之一就是要提高工作效率,降低工作量,而系统运行环境与软件架构模式的选择就显得尤为重要。
系统运行环境和软件架构模式既要安全、稳定、可靠又要简单、易用、易于配置和管理。
由于Windows操作系统是我们最常用的系统环境,而基于WEB浏览器B/S模式的多层应用程序其客户端具有零配置的优点,且基于Microsoft .NET架构的XML Web services平台允许应用程序通过Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。
Microsoft .NET 平台提供创建XML Web services 并将这些服务集成在一起,可有效均衡系统负载,保证系统在大并发量访问下安全、可靠、稳定地运行。
所以该系统运行境和软件架构模式选择如下。
服务器端:Windows 2003 Server + SQL Server 2000 + Microsoft .NET 2.0 + IIS6.0。
客户端:Windows操作系统+IE6.0及以上。
系统运行环境和结构如下图。
“在线考试系统”数据库的设计与一般事务系统数据库的设计相类似,如考生基本信息表、各种基础代码表的设计等等,所不同的是题库表的设计,在这里作一个重点说明。
对题库表的设计应从试卷涉及的题型来分析,试卷涉及的题型包括判断、单项选择、多项选择、填空与文字录入,可把判断、单项选择和多项选择定义在一个表(st_bz_table)内来进行管理,把填空与
方字录入定义在一个表(st_ex_table)内进行管理。
这两个表的结构如下。
①st_bz_table
CREATE TABLE [dbo].[st_bz_table] (
[stid] [int] IDENTITY (1, 1)NOT FOR REPLICATION NOT NULL ,
[sttg] [varchar] (1024)COLLATE Chinese_PRC_CI_AS NOT NULL ,
[stxx] [varchar] (2048)COLLATE Chinese_PRC_CI_AS NOT NULL ,
[stfjlx] [tinyint] NULL ,
[stfj] [image] NULL ,
[stda] [varchar] (16)COLLATE Chinese_PRC_CI_AS NOT NULL ,
[stlx] [tinyint] NOT NULL ,
[stkm] [smallint] NOT NULL ,
[stld] [tinyint] NULL ,
[stjrsj] [datetime] NULL ,
[stzt] [tinyint] NULL ,
[stzsd] [tinyint] NULL ,
[mtjs] [int] NULL
)ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
②st_ex_table
CREATE TABLE [dbo].[st_ex_table] (
[stid] [int] IDENTITY (1, 1)NOT FOR REPLICATION NOT NULL ,
[sttg] [varchar] (2048)COLLATE Chinese_PRC_CI_AS NOT NULL ,
[stda] [varchar] (2048)COLLATE Chinese_PRC_CI_AS NULL ,
[stlx] [tinyint] NOT NULL ,
[stkm] [smallint] NOT NULL ,
[stld] [tinyint] NULL ,
[stjrsj] [datetime] NULL ,
[stzt] [tinyint] NULL ,
[stzsd] [tinyint] NULL ,
[mtjs] [int] NULL
)ON [PRIMARY]
2.模块功能实现
该在线考试系统的大部分模块功能的实现与其他事物系统模块功能的实现相类似,如考务管理、题库管理等,最要是对后台数据系统实现插、删、改等操作,在此不在敖述,这里主要说明该考试系统两个特有功能模块的实现,一是试题抽取,生成试卷;二是试卷批改,
成绩统计。
(1) 试题抽取,生成试卷
考生登录考试系统,通过身份验证后,开始进行抽题。
抽题时,根据考试系统预定义试卷模板规则(试卷模板规则主要包括——考试时间;卷面总分;试卷包含题型、难易程度、知识点、题量;每小题分数等),随机抽取试题,使每位考生抽取的试卷都是随机的。
抽题过程:
①根据试卷模板和题库生成一张二维表
②遍历上述二维表,根据二维表每一行的条件,检索题库表,在检索题库表的同时,临时添加一个随机列,按该随机列进行排序,并取出前“题量”行记录,得到随机抽取的试题编号(stid)。
SELECT TOP [b.题量] NEWID() as sjl,a.stid FROM [题库] a,[二维表] b WHERE a.题型=b.题型 AND a.知识点=b.知识点 AND a.难度=b.难度 ORDER BY sjl
③根据抽取的试题编号(stid),从题库在提取试题,生成试卷。
(2) 试卷批改,成绩统计
考生在考试结束交卷时,考试系统自动为该考生批改试卷,并统
计出卷面成绩。
①判断、单项选择、多项选择的批改
由于上述题型的答案具有唯一性,所以可根据试题编号(stid)在题库表中检索出标准答案,并与考生答案相比较,如果完全吻合则正确,否则错误。
②填空题的批改
由于部填空题答案并不是唯一的,所以在批改填空时,只需要考生答案与该空标准答案的其中之一吻合则判正确,没有一个吻合则判错误。
另由于部份填空题有多个空,所以在计分时以该题的分数除以该题的总空数,然后乘以考生填正确的空数[即:得分=(小题分数/小题空数)×正确空数]。
③文字录入的批改
对文字录入题进行批改时,我们首先对原文中出现的不同字符个数进行统计,然后对考生答案中不同字符个数进行统计,比较两个统计结果,得出考生录入的正确字符个数,在计分时以该题的分数除以要求录入字符的总数,然后再乘以考生录入的正确字符个数[(文字录入题分数/原文字符数)×正确字符数],得到该考生文字录入部份的得分。
五、系统应用效果
在该考试系统代码编制结束后,经过多次系统测试,并在系统测试过程中修正了发现的错误和问题,保证了该系统在应用中安全、稳定可靠地运行。
在2007至2008学年《计算机文化基础》期末考试与补考中共6000余人次采用了该系统进行考试,该系统对学生掌握《计算机文化基础》这门课程的情况进行了客观公正地考核评价。
在考试程中,该系统运行稳定可靠。
利用该考试系统,改变了《计算机文化基础》这门课程传统的考核方法,实现了无纸化考试,既节约了纸张资源,减轻了试卷印刷、试卷批改等繁重的工作量,提高了工作效率,又客观公正地对学生基础知识掌握情况和实践动手能力进行了考核评价。
说明:远程在线考试请访问(评审专家模拟)
1、考试系统入口:/
2、监考和异常处理:/moniexam
密码为:123456
3、准考证号、考生姓名(注意:请在浏览器工具栏目将弹
出窗口阻止程序关闭,再进行考试)。
可以任选其中一学
生登陆,然后进行在线考试。