完整版在线考试系统2毕业设计.docx
《完整版在线考试系统2毕业设计.docx》由会员分享,可在线阅读,更多相关《完整版在线考试系统2毕业设计.docx(23页珍藏版)》请在冰豆网上搜索。
完整版在线考试系统2毕业设计
以下文档格式全部为word格式,下载后您可以任意修改编辑。
金华职业技术学院
JINHUACOLLEGEOFVOCATIONANDTECHNOLOGY
毕业教学环节成果
(2012届)
Ps:
如果需要源码可联系本人
QQ:
腾讯微博:
ofOnlineExamSystem
(MajorofE-Commerce,InformationandEngineeringcollege,JinHuaCollegeofVocationAndTechnology,ZhangFeng-yang)
Abstract:
ArticlesonthecurrentstatusanalysisonthebasisoftheexaminationandoutlinedmajortheoreticalsignificanceandpracticalsignificanceofTheOnlineExaminationSystem,proposedastudyonprocessofTheOnlineExaminationSystemandthepracticalimplementationoftheprogrammeandmainfunctionsoftheExaminationSystemmoduledesignspecifications.FinalsummaryandanalysisofTheExaminationSystem.
Keywords:
ASP.NET4,OnlineExamSystem,C#
引言
随着网络技术的飞速发展,通过计算机网络实现异地教育和培训越来越多。
现在,计算机硬件技术的发展已经达到了相当高的水平。
这些教育和培训包括很多环节,例如教学系统、答疑系统和考试系统等等。
其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。
在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。
显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。
随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。
人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。
例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。
基于上述考虑,采用CS模式来设计考试系统,供培训机构或高等教育院校机房使用客户端来完成考试全过程,同时可进行系统维护和管理。
1研究背景
随着信息技术和网络技术的迅速发展,教育信息化和网络化也将成为必然的趋势。
作为教育评价和衡量学生能力的考试也正经历着无纸化和网络化的飞跃。
网络的开放性和分布性的特点以及基于互联网的巨大计算能力使得考试突破了时间和空间的限制。
基于网络技术的考试系统正成为人们的研究热点之一。
目前的考试系统可分为CS结构和BS结构,CS结构的考试系统具有系统操作简便的优点,而考生需要的正是这样的考试环境,所以CS结构考试系统的开发的研究具有重要的理论意义和现实意义。
2研究意义
目前,基于在线考试面向的主要是社会上的培训认证考试(如ADOBE的各种认证考试,驾校的理论考试),而题目大多以选择题为主,所以它可以免去教师大量的临考工作,试卷可以根据题库中的内容即时生成;教师也无须去做考后的阅卷,计算机可以自动判卷,直接把成绩送到数据库中。
实现无纸化考试,大大提高了工作效率,同时,试卷是随机组成的,不存在试卷的泄密和考试作弊问题,使考试的公平性、答案的安全性得到有效的保证。
在线考试系统具有降低考试成本,解决繁重的考务工作的优点。
3研究方案
调研情况
面对庞大的考生群体,国内外高院校及企业都有自己的信息化建设体系,一般都建有CS或BS的考试系统,以提高工作的效率,但是在系统的操作性方面存在一定的不足,因为系统的设计者都是以管理者为主体,界面设计等都取舍依赖管理者对于信息的认知与喜好,较不容易掌握考生真正所需求的考试系统,也因此无法完全满足考生的需求。
解决方案
根据需求,选用CS模式设计方案,应用Access数据库管理系统,ASP.NET开发工具等开发在线考试系统。
该系统面向社会各培训机构和各高校,实现对考生用户管理、考生在线考试、考生成绩管理等功能模块。
开发环境
硬件平台
CPU:
ADMAthlon(tm)L335
内存:
4G
硬盘:
希捷250G
软件平台
操作系统:
Windows7
数据库:
MicrosoftAccess2003
开发环境:
Microsoft.NETFrameworkSDKv6.0A
开发工具:
MicrosoftVisualStudio2010
开发语言:
C#语言
4总体设计
系统功能结构
在线考试系统功能结构如图41所示。
图41系统功能结构图
系统用例
管理员、教师、学生UML用例
4.1.1管理员UML用例
图42管理员UML用例图
4.1.2教师UML用例
图43教师UML用例图
4.1.3学生UML用例
图44学生UML用例图
系统业务信息流程
在线考试系统业务信息流程如图45所示
图45业务流程图
5详细设计
数据库设计
数据库使用MicrosoftAccess2003数据库,包含8张数据表。
下面列出本系统数据表的结构。
5.1.1学生表(Student)
图51学生表
5.1.2教师表(Teacher)
图52教师表
5.1.3管理员表(Admin)
图53管理员表
5.1.4班级表(Class)
图54班级表
5.1.5用户状态表(UserState)
图55用户状态表
5.1.6考试科目表(Subject)
图56考试科目表
5.1.7试题表(Question)
图57试题表
5.1.8考试成绩表(Score)
图58考试成绩表
5.1.9所有表关系约束
系统所有数据表的数据关系约束如图所示。
图59数据表关系约束图
公共类编写
对数据库操作的过程中,为了使用户对数据库的访问更快,将对数据库的操作方法封装在BaseClass.cs中,此类是对数据库操作的核心类,此类还封装了许多系统将要使用到的公共类,如对账号登录验证方法、密码修改通用方法、创建DataSet对象方法、DataGridView控件的数据的绑定、ComBox的数据绑定、对数据库执行增删改等。
系统模块
5.1.10登录模块
系统登录模块用于验证用户登录系统时输入的用户名、密码是否正确,只有合法的用户才可以进入系统,用户登录执行过程业务流如图510所示。
图510登录执行过程业务流
系统登录窗体的运行结果如图511所示。
图511运行登录界面效果图
5.1.11用户信息模块
由于本系统面向的是培训机构或学校的学生、教师,因此,不设置用户注册模块,直接由管理员将学生的学籍信息录入,登录密码统一为:
888888。
该界面运行结果如图512所示。
图512学生管理界面效果图
学生可登陆系统通过“个人信息-基本资料”选项进入个人信息的查看,点击“编辑”启用可编辑内容项。
效果如图513所示。
5.1.12图513学生用户修改个人信息界面效果图班级信息管理
管理员可对现有班级进行添加操作,由于班级数目只会增加不会减少,所以不提供班级的删除功能。
(若删除班级信息将影响学生数据)班级管理界面运行效果如图514所示。
图514班级管理界面运行效果图
5.1.13科目信息管理
管理员可对科目信息进行添加,因科目信息只会增加不会减少,故不提供科目信息的删除功能。
(若删除科目将影响试题数据)科目管理界面运行效果如图515所示。
图515科目管理界面运行效果图
5.1.14试题信息管理
管理员及教师可对试题模块进行操作,“考试管理-试题管理”界面显示数据库中所有的试题的ID号、题目及所属科目。
试题信息界面运行效果如图516所示。
图516试题信息界面运行效果图
进入试题管理界面后可对试题进行添加操作,该界面中的科目信息直接从数据库的科目表中读取,用户通过选择科目,添加问题及选项内容再选择标准答案后点击保存即可。
新增试题界面运行效果如图517所示。
图517新增试题界面运行效果图
试题管理界面同样提供了试题的修改功能,点击修改按钮后,系统会动态加载用户所选择的试题内容到修改面板中,修改操作方法与添加操作相似。
试题修改界面运行效果如图518所示。
图518试题修改界面运行效果图
5.1.15考试模块
选择科目及考试协议
当考生成功登录系统后选择在线考试后,将调用此窗体。
窗体中的考试科目为数据库中考试的科目,考生只有在选择了科目并阅读完考试协议并选择了“同意以上考试协议”后点击开始答题才可进入考试界面。
该界面运行效果如图519所示。
图519选择考试及阅读考试协议界面运行效果图
在点击了开始答题后进入考试界面。
该界面右上角的计时器在进入该界面时即启动进行倒计时。
程序设定考试时间为20分钟。
一道题答完后点击下一题继续答题。
答题界面运行效果如图520所示。
图520答题界面运行效果图
在答题的过程中,随时可以查看目前答题的情况,如果有未答的题目,在题目序号后会显示“未答”,考生可点击题目序号进入该题对答题情况进行修改或完成未答的题目。
(若计时器中时间为0,那么系统会提示时间到,并自动进行交卷操作)答题卡运行效果如图521所示。
图521答题卡界面运行效果图
交卷后,会把考生的得分直接上传至数据库中并提示成绩上传状态。
基于基本的考生在交卷后都想第一时间知道自己考试的成绩,所以多设计了一个分数显示的界面,用条形按比例显示考生的成绩,并用图片显示考生的学习状态。
该界面运行效果如图522所示。
图522答题结果界面运行效果图
核心代码设计
答题类
totalSeconds:
考试总时间(秒)
remainSeconds:
考试剩余时间
allQuestionIds:
记录该科目所有问题的ID数组
selectedStates:
记录对应索引的问题是否已经被随机抽中(抽中True,未抽中False)
questionNum:
考试题目数量
selectedQuestionIds:
被选出的问题ID数组
correctAnswers:
标准答案数组
studentAnswers:
学生答案数组
classQuestionHelp
{
publicstaticinttotalSeconds=1200;
publicstaticintremainSeconds;
publicstaticint[]allQuestionIds;
publicstaticbool[]selectedStates;
publicstaticintquestionNum=20;
publicstaticint[]selectedQuestionIds=newint[20];
publicstaticstring[]correctAnswers=newstring[20];
publicstaticstring[]studentAnswers=newstring[20];
}
publicintquestionIndex=0;当前问题对应的题目ID
计时器事件
privatevoidtmrCostTime_Tick(objectsender,EventArgse)
{
intminute;当前的分钟
intsecond;秒
如果还有剩余时间,就显示剩余的分钟秒数
if(QuestionHelp.remainSeconds>0)
{
QuestionHelp.remainSeconds--;
minute=QuestionHelp.remainSeconds60;
second=QuestionHelp.remainSeconds%60;
lblTimer.Text=string.Format("{0:
00}:
{1:
00}",minute,second);
}
否则就提交试卷ª
else
{
tmrCostTime.Stop();
MessageBox.Show("时间到了,该交卷了,,"提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
ExamResultFormResultForm=newExamResultForm();
ResultForm.MdiParent=this.MdiParent;
ResultForm.Show();
this.Close();
}
}
选项单选按钮的单击事件处理,选择答案时,记录答案
privatevoidrdoOption_Click(objectsender,EventArgse)
{
QuestionHelp.studentAnswers[questionIndex]=((RadioButton)sender).Tag.ToString();
}
根据问题的ID,显示题目的详细信息
publicvoidGetQuestionDetails()
{
lblQuestion.Text=string.Format("问题{0}",questionIndex+1);
stringstrsql="selectQuestion,OptionA,OptionB,OptionC,OptionDfromQuestionwherequestionId="+QuestionHelp.selectedQuestionIds[questionIndex];
OleDbCommandcomm=newOleDbCommand(strsql,DbHelp.conn);
OleDbDataReaderdr=null;
try
{
DbHelp.conn.Open();
dr=comm.ExecuteReader();
if(dr.Read())
{
lblQuestionDetails.Text=dr["Question"].ToString();
rdoOptionA.Text=string.Format("A.{0}",dr["OptionA"].ToString());
rdoOptionB.Text=string.Format("B.{0}",dr["OptionB"].ToString());
rdoOptionC.Text=string.Format("C.{0}",dr["OptionC"].ToString());
rdoOptionD.Text=string.Format("D.{0}",dr["OptionD"].ToString());
}
dr.Close();
}
catch
{
}
finally
{
DbHelp.conn.Close();
}
}
如果已经答了题目,选中相应的选项
privatevoidCheckOption()
{
switch(QuestionHelp.studentAnswers[questionIndex])
{
case"A":
rdoOptionA.Checked=true;
break;
case"B":
rdoOptionB.Checked=true;
break;
case"C":
rdoOptionC.Checked=true;
break;
case"D":
rdoOptionD.Checked=true;
break;
default:
rdoOptionA.Checked=false;
rdoOptionB.Checked=false;
rdoOptionC.Checked=false;
rdoOptionD.Checked=false;
break;
}
}
6总结和展望
在线考试系统是一个庞大、复杂的系统。
本系统基本包括了班级学生的各种主要信息管理工作与在线考试工作,但在某些管理功能上需要继续细化。
由于系统开发工作量较大,开发工作中将功能实现放在了首位,因此在一些模块的界面设计的多用性方面仍需改进。
7参考文献
[1]王珊陈红.数据库系统原理教程[M].清华大学出版社,1998,7:
21~25.
[2]李壮.编程之道[M].天津科学技术出版社,:
158~171.
[3]王小科吕双.C#入门到精通[M].清华大学出版社,:
125~128.
[4]MichaelMcMillan.数据结构与算法[M].人民邮电出版社,:
236~270
[5]王国防.C#语言Windows程序设计[M].清华大学出版社,2010,5:
113~114.
[6]王小科.C#全能速查宝典[M].人民邮电出版社,:
518~519.