在线考试系统下载可用标准最新论文.docx
《在线考试系统下载可用标准最新论文.docx》由会员分享,可在线阅读,更多相关《在线考试系统下载可用标准最新论文.docx(22页珍藏版)》请在冰豆网上搜索。
在线考试系统下载可用标准最新论文
石-----------------院
顶岗实习岗位技术工作论文
在线考试系统
学号:
-----------
姓名:
--------
专业:
软件技术
年级:
12软件
企业指导老师:
二〇一五年三月
题目在线考试系统
企业指导教师
评语
指导教师(签章)
目录
1.绪论1
1.1系统开发的目的与意义1
1.2系统开发背景1
2.系统需求分析2
3.概念结构设计2
4.数据库的设计3
4.1创建数据库名:
OnLineTest3
4.2创建数据库表3
5.功能模块设计4
5.1该系统具备主要的基本功能4
5.2系统功能结构图6
6.概要设计6
6.1编程环境6
6.2数据库管理模块6
6.3界面实现设计8
结论16
致谢17
参考文献18
摘要
在网络迅速发展的今天,网页技术的应用也越来越广泛。
网页技术的应用对于教育行业来说优势更为明显。
教育行业可以通过网络进行在线考试,提高教育的管理水平。
本文简要介绍《在线考试系统》从设计到开发的过程。
系统的开发经历了系统需求分析、系统数据库设计、功能模块设计和系统实施等阶段。
从设计方案的提出,经过详细的调查,分析了方案的可行性和必要性,通过详细的系统设计,力图提高系统的集成性和快捷性;并在系统实施阶段收集了大量的实验数据,以便测试使用。
该系统基于B/S模式能多用户在线考试。
该系统运行方便、操作简单,效率很高。
现阶段实现了试卷的客观题部分,考生也可以在网上练习考试检验自己的学习效果,以发现自己的不足,通过在线测试使得学习效率得到很大提高。
该系统中题目的生成、试卷的提交、成绩的批阅等都可以在网络上自动完成。
考生并可以在规定的时间考试并迅速获得成绩,出题者所要做的只是精心设计课题库,对题目的录入、修改、维护题库,这样可以大量减轻了出题者的负担,也就是说实现了真正的无纸化考试。
设计本在线考试系统能充分的利用现有资源,能帮助教学管理人员利用计算机,快速方便地对用户的考试进行高效率的管理。
关键词:
在线考试;管理信息;题库;ASP.NET技术
在线考试系统
1.绪论
1.1系统开发的目的与意义
随着网络技术的飞速发展,信息已成为一种商业化的资本,只有拥有及时准备的信息,才能拥有更好的发现。
现在,计算机硬件技术的发展已经达到了相当高的水平。
但是,在线考试系统还不是太普及,随着这项技术的不断深入发展,就要求有更好、更完善的系统应用到远程考试当中去,这就给软件设计人员提出了更高的设计要求。
在线考试包括很多环节,其中很重要的一个环节就是在线考试模块。
在现在,虽然网络考试越来越被关注,但能达到考试更合适,合理,节省资金节省人力,也是还有困难的。
系统目的为了适应信息时代的需要,网上考试系统以其成本低、方便、评阅快等优点成为广大单位和部门追逐的对象。
为了方便广大考生和单位,特设计一套在线考试系统。
1.2系统开发背景
随着计算机技术的发展和互联网时代的到来,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息自动化的作用也越来越大,从而使我们从繁杂的事务中解放出来,提高了我们的工作效率。
在数字代的网络环境下,学生希望得到个性代的满足,根据自己的情况进行学习,同时希望能够得到科学的评价;老师希望有效改进现有的考试模式,提高考试的效率;教育机构也希望给网上的学生提供更全面灵活的服务,同时希望全面准确地对学生进行跟踪和评价。
网络考试系统正是迎合这一市场需求面开发的,它旨在探索一种以互联网为基础的考试模式。
通过这种新的模式,为学校创造一种新的考试环境,使考试管理突破时空限制,提高考试工作效率和标准代水平,使学术管理者、教师和学生可以随时、随地通过网络完成考试。
目前存在的在线考试系统,它们的各种工作主要还是依赖于手工完成,比如答题或者阅卷,需要学生和老师用笔进行等。
不仅手续复杂麻烦,而且工作效率很低,还会受其它一些因素的影响。
手工阅卷还存在这许多弊端,由于不可避免的人为因素,造成分数的遗漏、误改。
计算机信息化管理有着计算精确,速度快等许多优点,提供给我们的处理信息及时快捷,因此我们可以利用计算机网络,利用ASP.NET技术实现动态的管理。
随着计算机网络技术的进一步发展和普及,利用ASP.NET技术开发的各种在线考试系统将越来越普及。
2.系统需求分析
对在线考试系统的设计进行需求分析:
为了适应信息时代的需要,开发了基于B/S模式多用户在线考试系统程序。
这系统运用方便、操作简单,效率很高。
现阶段虽只实现了试卷的客观部分,用户注册、多用户可以同时在线考试、动态随机出题、时间控制、自动判卷,试题录入、评论试题、修改题库、用户管理、科目管理、管理员管理、分数管理等主要的功能,也就是实现了真正的无纸化考试,满足任何授权的考生随时随地考试并迅速获得成绩,同时也大大减轻了教师出题和判卷等繁重的工作量。
3.概念结构设计
实体模型关系图
下图是数据关系模型实体关系图(E-R图)。
每个实体及属性分别如下:
4.数据库的设计
4.1创建数据库名:
OnLineTest
4.2创建数据库表
为了实现本系统的功能对有关数据的存储的需要,设计数据库的表如下:
4.2.1试题表:
TestQuestions
列名数据类型是否为空默认值说明
QuestionIdintNotNull自动递增,主键试题编号
QuestionNamevarchar(500)NotNull试题名称
SubjectNamevarchar(500)NotNull科目名称
SubjectTypevarchar(100)NotNull题目类型
Answervarchar(50)Null正确答案
QuestionScoreintNotNull2题目分数
AnswerAvarchar(200)NotNull选项A
AnswerBvarchar(200)NotNull选项B
AnswerCvarchar(200)NotNull选项C
AnswerDvarchar(200)NotNull选项D
DetailedAnswersvarchar(500)NULL详细解答
4.2.2分数表:
TestScores
列名数据类型是否为空默认值说明
ScoreIdintNotNull自动递增,主键分数编号
UserNumintNull用户学号
UserNamevarchar(20)Null用户名称
SubjectNamevarchar(500)Null科目名称
TestScoreintNull考试成绩
Experiencevarchar(500)NULL考试心得
TestDatedatetimeNull考试时间
4.2.3用户表:
UserInfos
列名数据类型是否为空默认值说明
UserIdintNotNull主键用户编号主键
UserNumvarchar(10)NotNull用户学号
UserNamevarchar(20)NotNull用户名称
UserPwdvarchar(20)NotNull用户密码
4.2.4报名表:
UserTest
列名数据类型是否为空默认值说明
TestIdintNotNull自动递增报名编号主键
TestSubjectNamevarchar(500)Null报考科目
TestUserNamevarchar(20)Null考试姓名
TestNumvarchar(20)Null考试证号
4.2.5试卷表:
TestPaper
列名数据类型是否为空默认值说明
SubjectIdintNotNull自动递增,主键科目ID
SubjectNamevarchar(500)NotNull科目名称
SubjectTypevarchar(100)NotNull科目类型
TotalScoreintNotNull试卷总分
TotalTimeintNotNull考试时间
TestDatedatetimeNotNull考试日期
4.2.6科目类别表:
CategoryInfo
列名数据类型是否为空默认值说明
CategoryIdintNotNull自动递增,主键类别ID
SubjectTypevarchar(100)NotNull科目类型
4.2.7评论表:
SayComment
列名数据类型是否为空默认值说明
CommentIdintNotNull自动递增,主键评论ID
SayContentsvarchar(500)NotNull评论内容
SubjectIdintNotNull科目ID外键
UserIdintNotNull用户编号外键
CreateTimedatetimeNotNull评论时间
5.功能模块设计
5.1该系统具备主要的基本功能
用户模块:
首先注册,用户再通过用户名和密码登录在线考试系统。
浏览试题可以在线考试练习,并可以对试题进行评论。
在线考试模块:
考生登录选科报名,只要报名有科目,就可以调出试卷进行在线考试。
考试中系统严格控制整个考试过程,实行时间的监控与权限的控制,考生需要在限定的考试时间内交卷,考试结束自主交卷。
本系统只考虑客观题,要求计算机能自动阅卷,然后马上显示出考生分数。
考生考完以后,可以查阅成绩,并可以查阅试题答案,写下考后心得。
考试记录管理:
系统中的管理员可以查询考试成绩记录进行维护。
科目类型管理模块:
管理者可以对各科目的类型进行添加、修改、删除的维护。
科目管理模块:
添加科目:
其基本信息有科目名称、题型、题量和考试总时间等。
科目维护:
管理员可以查询、修改、删除不再需要的科目。
试题管理模块:
试题录入:
首先,用户选择试题所属科目。
其次,每道试题有类型、试题内容与选项和答案等栏目。
管理员输入完以后,即可看到预览效果。
如果输入不合法,或者该科题库中已有该试题编号和内容等,则系统给出相应的提示或警告,以待更正。
试题修改:
管理员还可以对试题进行修改。
试题删除:
管理员可以删除不再需要的试题。
用户管理模块:
管理员可以通过用户管理界面查询,修改或删除用户,同时可以报名信息进行维护管理。
5.2系统功能结构图
6.概要设计
6.1编程环境
开发本系统考虑实际的运用情况,所使用的编程环境是:
计算机操作系统:
WindowsXPsp2,
开发工具:
MicrosoftVisualStudio2005
开发语言:
C#语言
数据库管理系统:
SQLServer2005ManagementStudioExpress
6.2数据库管理模块
6.2.1连接数据库
在配置文件里设置数据库的连接属性,代码如下:
6.2.2数据库访问模块
在DataBase.cs类里,封装了本模块需要的访问和操作数据库的通用方法:
主要方法如下:
首先,引入命名空间:
usingSystem.Data.SqlClient;
publicclassDataBase
{
//打开数据连接字符串
privatestaticstringStrConn=ConfigurationManager.AppSettings["strconn"];
privateSqlDataAdaptersda;
privateSqlDataReadersdr;
publicstaticSqlConnectionReturnConn()//打开数据库的链接
{
SqlConnectionconn=newSqlConnection(StrConn);
if(conn.State.Equals(ConnectionState.Closed))
{
conn.Open();
}
returnconn;
}
publicDataTableExeSQLdt(stringsql)//执行select语句并返回一个表
{
SqlConnectionconn=ReturnConn();
this.sda=newSqlDataAdapter(sql,conn);
DataTabledt=newDataTable();//定义数据表对象,用于存放查询结果
sda.Fill(dt);//将查询结果填充数据表对象
returndt;
}
//执行存储过程命令连接
publicstaticSqlCommandExceCmd(stringprocName,SqlConnectionstrcon)
{
SqlConnectionconn=strcon;
if(conn.State==ConnectionState.Closed)
{
conn.Open();
}
SqlCommandcmd=newSqlCommand();
cmd.CommandType=CommandType.StoredProcedure;
cmd.Connection=strcon;
cmd.CommandText=procName;
returncmd;
}
publicstaticintExceNonQuery(stringprocName)//执行受影响的行数
{
SqlConnectionconn=ReturnConn();
SqlCommandcmd=ExceCmd(procName,conn);
intcount=cmd.ExecuteNonQuery();
conn.Close();
returncount;
}
//执行带参数的查询SQL语句或存储过程
publicDataTableExceNonQuerydt(stringprocName,SqlParameter[]paras)
{
DataTabledt=newDataTable();
SqlConnectionconn=ReturnConn();
SqlCommandcmd=ExceCmd(procName,paras,conn);
sdr=cmd.ExecuteReader();
dt.Load(sdr);
conn.Close();
returndt;
}
6.3界面实现设计
根据该系统功能的需要主要实现如下的模块:
6.3.1登录模块
用户通过此界面登录,可以实现该系统的更多功能
代码实现:
protectedvoidimgbtnLogin_Click(objectsender,ImageClickEventArgse)
{
stringusername=this.txtUserName.Text.Trim();//输入用户名
stringuserpwd=this.txtUserPwd.Text.Trim();//输入密码
stringcode=this.txtCode.Text;//验证码
if(Request.Cookies["CheckCode"].Value==code)//获取cookie
{
if(UserClass.ValidateUser(username,userpwd,"0"))//判断该用户为普通用户
{
Session["UserName"]=username;
Session["UserPwd"]=userpwd;
this.txtUserName.Text="";
this.txtUserPwd.Text="";
this.txtCode.Text="";
Response.Redirect("Default.aspx");
}
if(UserClass.ValidateUser(username,userpwd,"1"))//判断该用户是管理员
{
Session["Admin"]=username;
Session["UserPwd"]=userpwd;
this.txtUserName.Text="";
this.txtUserPwd.Text="";
this.txtCode.Text="";
Response.Redirect("AdminDefault.aspx");
}
}
}
6.3.2在线考试模块
用户通过浏览试题,或者登录在线考试,都可以进入考试,在规定的时间内答题,时间到自动提交答卷,系统自动阅卷,用户很快可以查询成绩,并可以查看该试题的答案及解答。
代码实现:
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
IsPostBack)
{
if(Session["SubjectName"]!
=null)
{
if(Session["UserName"]!
=null)
{
labUsername.Text=Session["UserName"].ToString();
}
if(Session["Admin"]!
=null)
{
labUsername.Text=Session["Admin"].ToString();
}
stringstrname=Session["SubjectName"].ToString();
labtestSubject.Text=strname;
gvExam.DataSource=newCategorySubject().SelectSubjectQuestions(strname);//根据该试卷绑定试题
for(inti=0;i{
LabellabYN=(Label)(gvExam.Rows[i].FindControl("labYN"));
Labellabanswer=(Label)(gvExam.Rows[i].FindControl("labanswer"));
Labellabhuida=(Label)(gvExam.Rows[i].FindControl("labhuida"));
labhuida.Visible=false;
labYN.Visible=false;
labanswer.Visible=false;
}
gvExam.DataBind();
gvExam.Enabled=true;
imgbtnSumbit.Enabled=true;
}
}
}
//提交答案
protectedvoidimgbtnSumbit_Click(objectsender,ImageClickEventArgse)
{
intstrscore=0;
stringusername=labUsername.Text;
stringstrname=Session["SubjectName"].ToString();
DataTabledt=newCategorySubject().SelectSubjectQuestions(strname);
for(inti=0;i{
RadioButtonListrbl=(RadioButtonList)(gvExam.Rows[i].FindControl("rblChoice"));
LabellabYN=(Label)(gvExam.Rows[i].FindControl("labYN"));
Labellabanswer=(Label)(gvExam.Rows[i].FindControl("labanswer"));
Labellabhuida=(Label)(gvExam.Rows[i].FindControl("labhuida"));
if(rbl!
=null&&rbl.SelectedValue!
="")
{
stringsanswer=dt.Rows[i]["Answer"].ToString().Trim();//取正确答案
strscore=Convert.ToInt32(dt.Rows[i]["QuestionScore"].ToString().Trim());
if(rbl.SelectedValue.ToString().Trim()==sanswer)//比较答案
{
++strscore;
labYN.Text="回答正确!
";
}
else
{
labYN.Text="回答错误!
";
}
}
else
{
labYN.Text="回答错误!
";
}
labanswer.Visible=true;
labhuida.Visible=true;
labYN.Visible=true;
}
if(newCategoryOperator().AddScore(username,strname,strscore,System.DateTime.Now.Date))
{
Response.Write("");
}
}
6.3.3用户管理模块
管理员可以通过后台管理系统对所有用户及各科成绩和所报名的科目进行统一管理。
代码实现:
privatevoidinit()//初始化绑定
{
DataTabledt=newCategorySubject().SelectAllUser();
labnum.Text=dt.Rows.Count.ToString();
gvSelectUser.DataSource=dt;