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

项目开发总结报告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引言 ................................................ ................................................... .. (1)1.1编写目的 ................................................ ................................................... (1)1.2背景................................................. ................................................... . (1)1.2.1提出方 ................................................ ................................................... (2)1.2.2系统的使用人................................................... .. (2)1.2.3本系统完成时间 ................................................ ................................................... .. (2)1.2.4项目经费预估 ................................................ ................................................... (2)1.3定义................................................. ................................................... . (2)1.4参考资料 ................................................ ................................................... (2)2可行性研究的前................................................... .. (3)2.1要求................................................. ................................................... . (3)2.2目标................................................. ................................................... . (3)2.3条件、假定和限制 ................................................ ................................................... .. (4)2.4进行可行性研究的方法 ................................................ ................................................... (4)2.5评价尺................................................... (4)3对现有系统的分析 ................................................ ................................................... .. (5)3.1处理流程和数据流程 ................................................ ................................................... . (5)3.2工作负荷 ................................................ ................................................... (6)3.3费用开支 ................................................ ................................................... (6)3.4人................................................... . (6)3.5设备................................................. ................................................... . (7)3.6局限性................................................. ................................................... (7)4所建议的系统 ................................................ ................................................... . (7)4.1对所建议系统的说明 ................................................ ................................................... . (7)4.2处理流程和数据流................................................... . (8)4.3改进之处 ................................................ ................................................... (9)4.4影响................................................. ................................................... . (9)4.4.1对设备的影响 ................................................ ................................................... (9)4.4.2对软件的影响 ................................................ ................................................... . (10)4.4.3对用户单位机构的影 (10)4.4.4对系统运行过程的影响 ................................................ (10)4.4.5对开发的影响 ................................................ ................................................... . (10)4.4.6对地点和设施的影响 ................................................ ....................................................114.4.7对经费开支的影响 ................................................ ................................................... .. (11)4.5局限性................................................. ................................................... (11)4.6技术条件方面的可行性 ................................................ ................................................... . (11)5可选择的其他系统方案................................................. ................................................... . (11)5.1可选择的系统方案1 ................................................. ................................................... .. (11)5.2可选择的系统方案2 ................................................. ................................................... .. (12)6投资及效益分析 ................................................ ................................................... (12)6.1支出................................................. ................................................... .. (12)6.1.1基本建设投资 ................................................ ................................................... . (12)6.1.2其他一次性支出 ................................................ ................................................... (13)6.1.3非一次性支出 ................................................ ................................................... . (13)6.2收益................................................. ................................................... (14)6.2.1一次性收益 ................................................ ................................................... .. (14)6.2.2非一次性收益 ................................................ ................................................... . (14)6.2.3不可定量的收益 ................................................ ................................................... (14)6.3收益/投资比 ................................................ ................................................... .. (14)6.4投资回收周期 ................................................ ................................................... (14)6.5敏感性分析 ................................................ ................................................... (14)7社会因素方面的可行性................................................. ................................................... . (14)7.1法律方面的可行性 ................................................ ................................................... (14)7.2使用方面的可行性 ................................................ ................................................... (15)8结论 ................................................ ................................................... (15)1引言1.1编写目的说明该软件开发项目的实现在技术、经济和社会条件方面的可行性;评述为了合理地达到开发目标而可能选择的各种方案;说明并论证所选定的方案。
在线考试系统实验报告

在线考试系统实验报告在线考试系统实验报告引言:随着科技的不断发展和普及,在线教育已经成为了现代教育的一种重要形式。
在线考试系统作为在线教育的重要组成部分,具有很多优势,如方便、高效、灵活等。
本实验旨在通过实践,探讨在线考试系统的设计与应用,并对其进行评估。
一、实验目的在线考试系统的设计与应用是本次实验的主要目的。
通过实践操作,掌握在线考试系统的基本原理和使用方法,了解其优点和不足之处,并提出相应的改进意见。
二、实验过程1. 系统设计在线考试系统的设计是本次实验的重点之一。
在系统设计过程中,我们首先确定了系统的功能需求,包括试题管理、考生管理、考试管理、成绩管理等。
然后,我们根据需求进行系统的概念设计和详细设计,确定了系统的整体框架和各个模块的功能。
2. 系统实现在系统实现过程中,我们采用了Web开发技术,使用了HTML、CSS、JavaScript等前端技术和Java、MySQL等后端技术。
通过前后端的配合,我们实现了在线考试系统的各项功能,并进行了系统的测试和调试。
3. 系统应用在系统应用过程中,我们邀请了一些学生和教师参与实验,他们使用在线考试系统进行了一系列的考试和评价。
通过他们的反馈,我们了解到了系统的使用体验和存在的问题,并及时进行了改进。
三、实验结果通过实验,我们得出了以下结论:1. 在线考试系统具有很多优点,如方便、高效、灵活等。
学生可以在任何时间、任何地点进行考试,不受时间和空间的限制。
同时,系统可以自动批改试卷,减轻教师的工作负担,提高评分的准确性。
2. 在线考试系统也存在一些问题。
首先,系统的安全性需要加强,防止考试作弊的发生。
其次,系统的界面设计可以进一步改进,提高用户的使用体验。
最后,系统的稳定性需要保证,避免出现系统崩溃等问题。
四、改进建议根据实验结果,我们提出了以下改进建议:1. 加强系统的安全性。
可以采用多种方式,如IP限制、人脸识别等,来防止考试作弊的发生。
2. 改进系统的界面设计。
在线考试系统-课程设计实验报告

课程设计实验题目:在线考试系统学院:计算机科学学院专业:网络工程班级:网络01班小组成员:2014年 6 月26日目录一、实验名称 ----------------------------------------------------------------------------------------------------- 4二、实验目的 ----------------------------------------------------------------------------------------------------- 4三、实验的运行环境 ---------------------------------------------------------------------------------------- 4四、实验整体功能介绍 ------------------------------------------------------------------------------------ 41.考试功能---------------------------------------------------------------------------------------------------- 41)主要题型 ------------------------------------------------------------------------------------------------- 4 2)组卷方式 ------------------------------------------------------------------------------------------------- 4人工选题:--------------------------------------------------------------------------------------------------- 4随机抽题:--------------------------------------------------------------------------------------------------- 5手工输入:--------------------------------------------------------------------------------------------------- 5 3)考试安排 ------------------------------------------------------------------------------------------------- 5考试安排的流程为: -------------------------------------------------------------------------------------- 5 4)评卷工作 ------------------------------------------------------------------------------------------------- 5对于手工选题组成的卷子: ----------------------------------------------------------------------------- 5对于随机抽题组成的卷子: ----------------------------------------------------------------------------- 5对于手工输入组成的卷子: ----------------------------------------------------------------------------- 5 5)成绩管理 ------------------------------------------------------------------------------------------------- 52.后台管理功能 --------------------------------------------------------------------------------------------- 61)系统管理 ------------------------------------------------------------------------------------------------- 6 2)题型管理 ------------------------------------------------------------------------------------------------- 6 3)试卷管理 ------------------------------------------------------------------------------------------------- 6 4)考试管理 ------------------------------------------------------------------------------------------------- 6 5)账号管理 ------------------------------------------------------------------------------------------------- 63.表说明------------------------------------------------------------------------------------------------------- 6五、程序运行结果----------------------------------------------------------------------------------------------- 7登录界面 ------------------------------------------------------------------------------------------------------ 7系统菜单(考试安排) ----------------------------------------------------------------------------------- 9系统菜单(考试记录) ---------------------------------------------------------------------------------- 10系统菜单(考试成绩) ---------------------------------------------------------------------------------- 11系统菜单(修改密码) ---------------------------------------------------------------------------------- 12在线考试系统后台管理(在线考试系统介绍) --------------------------------------------------- 13在线考试系统后台管理(部门管理) --------------------------------------------------------------- 14在线考试系统后台管理(人员管理) --------------------------------------------------------------- 15题型管理(填空题管理) ------------------------------------------------------------------------------- 16题型管理(判断题管理) ------------------------------------------------------------------------------- 17题型管理(单选题管理) ------------------------------------------------------------------------------- 18题型管理(多选题管理) ------------------------------------------------------------------------------- 19题型管理(简答题管理) ------------------------------------------------------------------------------- 20试卷管理(手工选题) ---------------------------------------------------------------------------------- 21试卷管理(随机抽题) ---------------------------------------------------------------------------------- 22试卷管理(手工输入) ---------------------------------------------------------------------------------- 23考试管理(考试安排) ---------------------------------------------------------------------------------- 24考试管理(评卷管理) ---------------------------------------------------------------------------------- 25考试管理(成绩管理) ---------------------------------------------------------------------------------- 26账号管理(修改密码) ---------------------------------------------------------------------------------- 27新用户注册-------------------------------------------------------------------------------------------------- 28六、实验源代码(由于源码数量过多所以这里只能列举出部分) ----------------- 28七、实验心得 ------------------------------------------------------------------------------------------------- 39一、实验名称在线考试系统二、实验目的将本学期学到的知识结构系统化地组织起来并用其进行动态网页的设计三、实验的运行环境操作系统:window 8.1系统运行环境:visual studio 2010 sql server 2008.net framework 2.0四、实验整体功能介绍1.考试功能1)主要题型填空题、判断题、单选题、多选题、简答题。
关于考试系统总结报告

关于考试系统总结报告简介本报告旨在对最近使用的考试系统进行总结和评估。
我们将对考试系统的性能、用户体验、功能等进行分析,并提出改进的建议和优化方案。
背景考试系统是一种在线测试工具,用于管理和执行各种形式的考试。
通过使用考试系统,可以方便地创建、分发和评估考试。
使用考试系统还可以减少考试过程中的错误和作弊情况。
我们使用的考试系统是一款开源软件,具有丰富的功能和灵活的配置选项。
性能评估首先,我们对考试系统的性能进行了评估。
通过进行压力测试,我们测试了系统在多个并发用户的情况下的表现。
在测试中,系统能够处理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);}}}。
网上考试系统实训报告

一、实训背景随着互联网技术的飞速发展,网络教育已成为现代教育的重要组成部分。
网上考试系统作为一种新型的考试方式,具有便捷、高效、公平、安全等特点,逐渐成为教育行业的新宠。
为了提高自身实践能力,我们开展了网上考试系统的实训,以下是实训报告。
二、实训目的1. 熟悉网上考试系统的开发流程和基本原理;2. 掌握网上考试系统的设计与实现方法;3. 提高编程能力和团队协作能力;4. 培养解决实际问题的能力。
三、实训内容1. 系统需求分析网上考试系统主要包括以下几个功能模块:(1)用户管理:包括考生、教师、管理员等角色的注册、登录、权限管理等功能。
(2)题库管理:包括题目的增删改查、分类、难度设置等功能。
(3)试卷管理:包括试卷的创建、编辑、发布、回收等功能。
(4)考试管理:包括考生登录、考试开始、考试结束、成绩查询等功能。
(5)统计分析:包括考生成绩统计、试题分析、考试分析等功能。
2. 系统设计(1)系统架构:采用B/S架构,前端使用HTML、CSS、JavaScript等技术,后端使用Java语言和MySQL数据库。
(2)技术选型:前端使用Bootstrap框架,后端使用Spring框架、MyBatis持久层框架。
(3)系统模块划分:将系统划分为用户模块、题库模块、试卷模块、考试模块、统计分析模块。
3. 系统实现(1)用户管理模块:实现用户注册、登录、权限管理等功能。
(2)题库管理模块:实现题目的增删改查、分类、难度设置等功能。
(3)试卷管理模块:实现试卷的创建、编辑、发布、回收等功能。
(4)考试管理模块:实现考生登录、考试开始、考试结束、成绩查询等功能。
(5)统计分析模块:实现考生成绩统计、试题分析、考试分析等功能。
4. 系统测试(1)功能测试:对系统各个功能模块进行测试,确保功能正常运行。
(2)性能测试:对系统进行压力测试,确保系统在高并发情况下仍能正常运行。
(3)兼容性测试:对系统在不同浏览器、操作系统上进行测试,确保系统兼容性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业实习报告班级:姓名:学号:指导教师:开课时间: 2011 至2012 学年第 1 学期一、项目名称达内在线考试系统(Tarena Online Examination System)。
二、项目平台Windows xp操作系统。
三、项目环境MyEclipse8.6集成化开发工具环境。
四、项目技术学生在线考试系统实现的是学生通过客户端登陆服务器完成考试的过程,在这个项目整个过程中,我们实现了服务器的一些服务程序的开发,以及客户端的程序开发,在服务器这边,我们要实现的服务器能够响应客户端发送的数据请求,并且能够分辨出发送来的是什么请求,在客户端这边,客户端要能够接受服务器发送过来的数据,并且解析成所要的数据类型,并且要能让用户可阅读,客户端与服务器的一个线程保持着连接。
下面就简单说一下其中用到的一些技术:在线考试系统需要两个方面的程序开发,一个是服务器的服务开发,另一个是客户端的开发,这两个部分是分别处于两个不同的机器上运行的,也可以是在同一台机器上运行的。
对于服务器的程序设计,因为是服务器,所以必须要实现的肯定是能为多个用户进行服务,在这里也就是多个学生同时在线考试,我们这里使用的是多线程技术。
而客户端这边,我们通常就是向服务器发送请求,服务器相应我们的请求,从而完成服务器与客户端之间的通信。
在客户端与服务器之间,我们要掌握服务器的套接字编程技术和客户端的套接字编程技术。
五、项目描述这里主要介绍一下学生在线考试系统,学生在线考试系统主要是学生通过客户机登陆自己的账号,然后完成课程科目的考试过程,这当中没有任何纸质的试卷出现,全部都是以网路形式完成考试。
学生在线考试系统主要分成两个部分,一个是服务器部分,另一个则是客户机部分,服务器与客户端之间是以通过网路连接起来的,服务器的一个线程与一个客户机是连接着的。
在服务器部分,服务器先启动,先是读取配置文件,然后将试卷信息读取到服务器中,还要读取学生的信息,学号,姓名,密码,都要读取到服务器中,对于这些信息的读取,将会被封装在其他的类中,然后才是等待客户端发送数据连接请求,一旦发现有请求,就创建一个服务线程与之保持连接,等待考试完成的数据请求发送过来,才断开连接,在这其中服务器是一直处于监听客户端请求连接的运行状态。
在整个运行过程,服务器都是以控制台程序运行。
客户端部分,则是比较简单,因要给学生操作,所以,为了方便操作,这里用到了图形界面的操作,这里一共有三个部分的界面,第一个就是学生登录的界面,学生要输入学号和密码登录服务器,第二个就是学生选择考试科目的界面,这里呢,要先将前面一个窗口销毁,然后再创建新的窗口,第三个就是学生考试界面的窗口,这个窗口稍微复杂点,涉及到许多东西,这里在第三个窗口创建之前也是要先销毁第二个窗口。
最后用户点击交卷完成考试过程,并且显示得分,左后关闭窗口,服务器同时要断开连接,线程结束。
在这个三个窗口中,必须要有个连接与服务器保持连接,这里我们是将其划分成一个类,并且作为是哪个窗口的一个属性,当一个窗口被销毁,另一个窗口被创建时候,这个属性就要传送个另一个窗口使用。
在整个系统中,我们会涉及到两个类,一个是试卷类,另一个是学生类,试卷类中有个属性就是问题类,这两个类的信息,都是以配置文件的形式保存在文件中,我们可以使用工具类进行读取他们。
六、设计思路在这里我们就以服务器与客户端之间的连接为中心,简单说一下这个考试系统的搭建过程。
首先,服务器需要启动,服务器需要读取配置文件,这里我们就需要将所有的试卷题目以规定的格式写在一个配置文件中,把所有的学生信息写在另一个配置文件中,服务器需要试卷信息,所以定义试卷类,题目类,以及学生类,因为服务器与客户机之间需要有数据的请求,而且分为多于一种的请求类型,这里我们有连接请求,发送试卷请求,答题请求,所以我们定义一个请求类,这个服务器还需要不断地从磁盘文件中读取信息,所以为了减少代码量,我们这里需要几个工具类,一个是创建套接字的连接,另一个就是读取题目配置文件的题目的工具类。
这样服务器的基本框架已经出来了。
在客户机这边,我们只需要考虑一个线程就行了,所以这里我们只要四个类,其中有三个是窗口类,另一个是与服务器线程连接的类,这个连接类是作为三个窗口类的一个属性,用于三个窗口与服务器之间发送数据用,三个窗口也只能通过这个连接类与服务器之间进行通信,这三个窗口是依次通过这个连接类与服务器进行通信的。
这样这个客服器的整体设计也就出来了。
另外要说一下就是,客户机通过IP地址和端口号进而与服务器之间进行连接进行数据通信。
同时一个客户机只能与一个服务器进行连接,而一个服务器会与很多个客户机建立连接,服务器的每一个线程对应着一个客户机的连接的进程。
七、项目详细设计前面已经介绍说,在线考试系统主要的就是两个重要的部分,服务器部分和客户机部分,另外还有一些实体类和一些工具类,下面就按照包得结构详细的介绍一下在线考试系统的设计:1,实体类部分:在实体类中可分为四个部分,一个是试卷类,一个是试题类,学生类,还有个就是请求类。
Paper类:属性:subject String 表示考试科目allQusstion List 表示所有题目的集合answers List 表示学生选择的答案的集合方法:addQusetion() void 表示向试卷中添加题目toString() void 将试卷转换成字符串格式Question类:属性:title String 表示题目的标题items List<String> 表示选项answer char 表示正确选项方法:toString() void 表示将题目转换成字符串格式Student类:属性:id int 表示学生学号name String 表示学生姓名passwd String 表示学生的密码2,读取配置文件类PaperDao接口方法:getPaper()PaperDaoFromFile类:实现PaperDao接口,实现getPaper()方法;StudentDao接口方法:getStudent()StudentDaoFromTextFile类:实现StudentDao接口实现getStudent()方法3,工具类QuestionReader类封装了一些读取磁盘文件的方法SocketUtil类封装了一些创建套接字连接的基本格式4,服务器的类ServetMainClass类:属性:ss ServerSocket 表示服务器的套接字stuDao StudentDao 表示学生信息pDao PaperDao 表示试卷信息pro Properties 表示一个键值对,通信时传输信息用方法:main() void 表示服务器启动入口函数init() void 表示初始化函数内部类:ServerThread:s Socket 表示与客户机连接的套接字oos ObjectPutputStream 表示对象输出流run() void 表示线程运行login void 表示登陆请求begin void 表示开始考试请求send void 表示结束考试请求5,客户端的类LginFrame类:登录窗口学号输入框密码输入框确定按钮取消按钮SelectSubjectFrame类:选择科目的窗口一个现则科目的标签一个选择科目的下拉菜单一个确定按钮一个取消按钮ExamMainFrame类:学生考试窗口标题:学生在线考试系统显示题目的可滚动文本框四个选项的可选框一个显示题号和剩余题目数的标签上一题,下一题,交卷按钮一个显示剩余时间的标签Client类:属性:s socket 表示与服务器连接的套接字ois objectinputStream 表示对象输入流oos objectoutputstream 表示对象输出流方法:Login void 表示向服务器发送登陆请求数据方法recLogin void 表示从服务器接受登陆请求数据方法begin void 表示向服务器发送开始考试请求数据方法recLogin void 表示从服务器接受试卷信息数据方法close void 表示关闭I/O流exit void 表示学生退出考试系统方法send void 表示学生点击交卷按钮发送给服务器方法上面介绍了各个类的具体属性和方法,接下来介绍一下各个类之间的调用和依赖关系:上图表示整个在线考试系统的结构图,可以看出,其最主要的就是Client与服务器进程之间的连接,整个客户机与服务器之间都是靠着整个连接才能够完成在线考试整个过程的,这之间的数据交换和通信都是以这个连接为基础的,服务器在一开始运行的时候就要将配置文件中的数据读取到服务器中,然后才能发送数据给客户机,客户机每个窗口都是以Client这个类与服务器进程进行通信的,另外除了这些外还有两个工具类,只是为了少写些代码,做个封装而已,这符合了java程序的封装性。
下面就对上图的几个重要的类做个详细设计的说明:1,服务器线程类服务器的线程类,是服务器主类的一个内部类,只是作为一个服务的类,不需要对外公开,所以只是设在一个服务器类的内部,当服务器的运行到监听套接字监听客户端是否发送连接请求,程序就暂停,一直到有连接请求才会继续运行下去,程序会创建一个服务进程与之连接为之服务,只适合会运行run()方法,判断客户端发送的请求类型,来判断调用哪个方法,然后向客户端发送与之对应的数据给客户端处理。
下面详细解释运行过程:步骤:1,在初始化init()方法中是个while()死循环,不断的监听客户机的套接字连接请求,当有连接请求的时候就继续运行。
2,新建一个服务线程,这个服务线程继承自线程类,直接调用start()方法,让服务进程直接运行起来,这样,服务线程就与客户机连接起来了。
3,服务线程首先是创建一个输出流,准备给客户机发送数据,然后就是一个while()死循环,不断地从流中读取数据,一读取到数据就要判断请求类型。
另外,在服务器的控制台中,在每个用户连接过程中给服务器发送数据请求,服务器将在控制台即时输出连接请求的信息,还有用户的请求情况,这主要是显示服务器即时监控的效果。
其实不输出信息也是没有关系的。
4,判断请求的类型,这个要使用到一个Request请求类里面的四个静态常量,这里使用到一个switch case 语法,来匹配所要调用的方法。
5,如果静态常量是1,也就是login_request,程序就调用login()方法,login()方法,主要的就是发送学生信息和选择考试科目的链表给客户端程序,login调用完成后,就进入下一个循环,继续监听流中的数据请求。
6,如果是静态常量2,就要调用begin方法,程序调用begin方法,根据发送过来的选择的课表信息,就会向客户端发送相应的考试题目,以链表的形式发送,然后就继续进入下一个循环监听。