本科毕业论文《信息论与编码》在线考试系统的设计与实现.docx
《本科毕业论文《信息论与编码》在线考试系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《本科毕业论文《信息论与编码》在线考试系统的设计与实现.docx(32页珍藏版)》请在冰豆网上搜索。
本科毕业论文《信息论与编码》在线考试系统的设计与实现
分类号:
TP315UDC:
D10621-408-(2007)6147-0
密级:
公开编号:
2003215079
成都信息工程学院
学位论文
《信息论与编码》在线考试系统的设计与实现
论文作者姓名:
申请学位专业:
网络工程
申请学位类别:
工学学士
指导教师姓名(职称):
)
论文提交日期:
《信息论与编码》在线考试系统的设计与实现
摘要
信息时代计算机网络技术给整个社会带来的冲击已经波及到社会的各个层面,随着现代远程教育的兴起,网络考试系统也开始受到人们的关注。
网络化考试系统对节约考试成本,实现远距离的同步考试,提高考试效率,确保考试结果的公平、公正、科学、及时等具有重要的意义。
相比传统的考试方式,网络考试的好处是显而易见的,不仅可以动态地管理考试信息,而且还提高了教学的灵活性。
本系统采用B/S的体系结构,利用Access设计了系统的数据库,使用ASP语言实现了用户管理、题库管理、试卷生成、在线考试、成绩查询。
可以满足《信息论与编码》这门课程客观题的网络考试需求,有效地减速轻了教师的工作负担。
本文介绍了整个考试系统的需求分析、概要设计、以及详细设计,达到了预期的效果。
关键词:
网络考试;ASP;ACCESS;B/S体系结构;VBScript
DesignandImplementofTheTheoryofInformationand
CodingOn-lineExaminationSystem
Abstract
Thedevelopmentofcomputernetworktechnologyhasbroughtaboutgreatimpactonthewholesociety.Withthedevelopmentofmodernremoteeducation,examiningsystemon-lineisdrawingmoreandmoreattention.Theapplicationoftheonline-examinationsystemhasgreatsignificancetothesavingoftestcost.Itsavingoftestcost,realizeremotehavinganexaminationinstepandimprovingoftestingefficiency.WiththestructureofB/S,thedatabaseofthissystemisdesignedwithuseofAccess,andthissystemrealizestheusermanagement,questionlibrarymanagement,examinationpaperproduction,onlinetest,resultinquiredbyusingofASP.ThissystemcanrequirementsofTheTheoryofInformationandCodingobjectivequestionnetworktest,itcanlessenteachers'burdenofwork.
Keywords:
OnlineExam;ASP;ACCESS;B/Sstructure;VBScript
目录
论文总页数:
25页
1引言1
1.1背景1
1.2系统需解决的主要问题1
1.3相关技术介绍1
2需求分析2
2.1目标2
2.2处理流程2
2.3运行环境3
3概要设计4
3.1系统整体设计4
3.2系统模块结构图5
3.3各模块功能简介5
4详细设计及其实现6
4.1数据库设计6
4.2用户登录9
4.3添加试题10
4.4用户管理13
4.5生成试卷15
4.6在线考试及评分17
4.7成绩查询20
结论22
参考文献22
致谢24
声明25
1引言
1.1背景
考试是我国选拔人才的传统方式,传统的考试方式组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。
显然,采用这样的方式,教师的工作量很大,并且其工作是十分烦琐和容易出错的。
近年来,随着计算机网络的飞速发展,传统的考试方式已渐渐不能满足高等院校现代化的新型教育模式,网络考试正逐步成为高校教学一体化发展的趋势。
Internet技术的发展使得考试的技术手段和载体发生了革命性的变化,Internet的开放性、分布性的特点和基于Internet的巨大的计算能力使得考试突破了时间和空间的限制。
相比传统的考试方式,网上考试具有无可比拟的优越性,它几乎屏蔽了所有人工直接干预考试活动的可能性,不但能够节约大量的时间、人力、财力与物力,而且还可以大幅度提高考试成绩的客观性和公正性。
通过Internet来实现《信息论与编码》网上考试,是现代教育技术的一个具体实现,具有很重要的现实意义,可以实现考务工作的全自动化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好地为学校的教学、管理服务,实现考试的客观性、公正性,自动化组卷、阅卷可以减轻教师的工作强度。
网络考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地的进行考试,大大简化了传统考试的过程。
本系统是以B/S模式作为基本结构,利用ASP技术开发的基于WEB的在线考试系统。
1.2系统需解决的主要问题
该系统要满足《信息论与编码》网上考试的需求,可以实现低成本,高效率办公。
不同权限的用户对系统进行不同操作,教师可增加试题,删除试题,查看试题,在试题库范围内制卷管理模块根据教师提出的具体要求自动生成以客观题为主的试卷。
学生可在线考试,查询自己的分数。
1.3相关技术介绍
ASP(ActiveServerPages):
ASP是一种服务器端的指令环境,内含于IIS中,我们可以通过结合HTML网页、服务器指令及ActiveX元件建立动态、交互且高效的WEB服务器应用程序。
同时,ASP也支持VBScript和JavaScript,默认为VBScript。
ASP是经过服务器解析之后再向浏览器返回数据,所以有了ASP就不必担心客户的浏览器是否能运行你所编写的代码。
因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。
当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
但是这样也导致一个问题,运行ASP页面相对于普通的html页面要慢一点,因为普通的html页面只需要浏览器就能够解析,而ASP则必须是服务器将整页的代码都执行一篇之后再发送数据。
ASP的安全性还是要提一提,由于代码是需要经过服务器执行之后才向浏览器发送的,所以在客户端看到的只能是经过解析之后的数据,而无法获得源代码,故编写者不用担心自己的代码会被别人剽窃。
SQL(StructQuerryLanguage):
SQL是一个完全标准化的结构化查询语言,它的最大特点之一就是它具有广泛的兼容性,通过几个命令,就可以实现定义、查询、更新和控制功能。
在ASP中对后台数据库进行查询、添加、删除和更新等操作所采用的就是SQL语言。
2需求分析
2.1目标
(1)本系统的用户可分为教师和学生两类;
(2)系统应该实现下列功能:
对教师来说,有以下几个要求:
实现题库管理,制卷管理,用户管理。
题库管理:
教师可以根据教学的需求对题库中的试题进行四种基本操作:
添加新的考题、删除旧的考题、修改原有的考题、查看已有的考题,其中试题类型包括单选题、多选题和判断题;制卷管理:
教师可以将各种题型的数量对某份试卷提出一定的要求生成试卷;用户管理:
教师可以增加考试的学生,查看参加考试的学生的名单及他们的基本资料。
对学生来说,有以下的要求:
可以实现在线考试,对相应的试卷进行成绩查询。
2.2处理流程
(1)在线考试系统流程图
(2)在线考试系统工作流图
2.3运行环境
服务器端
硬件要求:
内存至少在256M以上并装有网卡
软件要求:
WindowsXP/2000,IIS,Access
用户端
硬件要求:
内存至少在128M以上并装有网卡
软件要求:
WindowsXP/2000,浏览器
3概要设计
3.1系统整体设计
系统用户的身份划分为两种权限:
教师和学生,教师能够管理试题库、管理学生用户和在线制卷,学生则只能进行在线答题和查询成绩。
《信息论与编码》在线考试系统实现了在线录入试题、生成试卷、在线考试、成绩查询等功能,共分为五个模块:
题库管理模块、试卷生成模块、用户管理模块、成绩查询模块和学生考试管理模块。
本系统完成了以下几个大模块:
●题库管理模块:
主要完成教师对题库的操作,包括试题的录入,查看,删除及修改;
●试卷生成模块:
主要根据不同的条件从题库中选出符合要求的试题生成试卷;
●用户管理模块:
对登录系统的人员进行统一管理,并赋予不同的权限;
●成绩查询模块:
可进行成绩的查询;
●学生答卷模块:
学生登录后,可进行在线考试。
3.2系统模块结构图
3.3各模块功能简介
登录模块:
当用户登录到考试系统时,首先要求输入用户名和密码,按下确定后进行身份验证,如果没有通过身份验证,根据验证结果进行不同的操作,说明没有通过的原因。
没有通的原因可能为,输入的姓名和密码错误,该用户不存在等;
身份验证模块:
当用户进入考试系统时,系统根据不同的情况返回不同的值,以判别该用户是老师还是学生;
查成绩模块:
当考生登录后,可查询自己不同试卷的最后得分;
生成试卷模块:
根据读取到的试卷设置,生成考试试卷;
生成单项选择题模块:
根据考试要求,从数据库中的单项选择题库中随机抽取规定数量的单项选择试题;
生成多项选择题模块:
根据考试要求,从数据库中的多项选择题库中随机抽取规定数量的多项选择试题;
生成判断题模块:
根据考试要求,从数据库中的判断题库中随机抽取规定数量的判断试题;
读取数据库模块:
根据要求,从数据库中读取需要的信息;
做试卷模块:
考生做试卷,让考生根据试题要求,输入答案;
生成试题模块:
根据读取到的信息,生成试题;
生成单项选择题模块:
根据教师的输入,将新生成的单项选择题保存到数据库中;
生成多项选择题模块:
根据教师的输入,将新生成的多项选择题保存到数据库中;
生成判断题模块:
根据教师的输入,将新生成的判断题保存到数据库中;
提交试卷模块:
将考生答案保存到数据库中,然后评卷,再把考试的分数保存到数据库中;
评分模块:
对考生试卷的答案和标准答案对比,对的加分,最后得出考试结果;
保存到数据库模块:
根据要求,将数据保存到数据库中。
4详细设计及其实现
4.1数据库设计
数据库设计是指对于一个给定的应用环境,设计优化的数据逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理和数据操作要求。
信息管理要求是指在数据库中应该存储和管理哪些数据对象。
数据操作要求是指对数据对象需要进行哪些操作,如查询,增加,删除和修改等操作。
数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效的运行环境。
高效的运行环境包括:
数据库的存取效率,数据库存储空间的利用率,以及数据库系统运行管理的效率等。
对于本系统要用到的数据库表有:
●yonghu:
包含用户的登录信息
●xueshengxinxi:
包含考生的基本信息
●danxuan:
单项选择题表
●duoxuan:
多项选择题表
●panduan:
判断题表
●shijuan:
试卷表
●shijuanxinxi:
试卷的基本信息表
●xueshengdajuan:
学生答卷表
具体表项设计如下:
表1yonghu用户表
字段名
数据类型
是否允许为空
字段描述
yhm
文本
否
用户名
mm
文本
否
密码
sf
文本
否
身份
dj
数字
否
等级
表2xueshengxinxi学生信息表
字段名
数据类型
是否允许为空
字段描述
yhm
文本
否
学生姓名
bj
文本
否
班级
zy
文本
否
专业
xh
自动编号
否
学号
表3danxuan单项选择题表
字段名
数据类型
是否允许为空
字段描述
th
数字
否
题号
lx
文本
否
类型
zsd
文本
否
知识点
ndxs
文本
否
难度系数
fs
文本
否
分数
st
文本
否
试题
xxa
文本
否
选项a
xxb
文本
否
选项b
xxc
文本
否
选项c
xxd
文本
否
选项d
da
文本
否
答案
表4duoxuan多项选择题表
字段名
数据类型
是否允许为空
字段描述
th
数字
否
题号
lx
文本
否
类型
zsd
文本
否
知识点
ndxs
文本
否
难度系数
fs
文本
否
分数
st
文本
否
试题
xxa
文本
否
选项a
xxb
文本
否
选项b
xxc
文本
否
选项c
xxd
文本
否
选项d
xxe
文本
否
选项e
xxf
文本
否
选项f
da
文本
否
答案
表5panduan判断题表
字段名
数据类型
是否允许为空
字段描述
th
数字
否
题号
lx
文本
否
类型
zsd
文本
否
知识点
ndxs
文本
否
难度系数
fs
文本
否
分数
st
文本
否
试题
da
文本
否
答案
表6shijuan试卷表
字段名
数据类型
是否允许为空
字段描述
sjm
文本
否
试卷名
th1
数字
否
在试卷中的题号
th
数字
否
在题库中的题号
tx
文本
否
题型
da
文本
否
答案
fz
文本
否
分值
表7shijuanxinxi试卷信息表
字段名
数据类型
是否允许为空
字段描述
id
自动编号
否
试卷编号
sjmc
文本
否
试卷名称
dan
数字
否
本卷单选题个数
duo
数字
否
本卷多选题个数
pan
数字
否
本卷判断题个数
表8xueshengdajuan学生答卷表
字段名
数据类型
是否允许为空
字段描述
yhm
文本
否
学生姓名
sjm
文本
否
试卷名称
danxuan
文本
否
单选题的答案
duoxuan
文本
否
多选题的答案
panduan
文本
否
判断题的答案
数据库的连接:
根据系统功能的设计要求及功能模块的划分,本系统用access建立数据库,其中包括用户信息表,学生基本信息表,单项选择题表,多项选择题表,判断题表,试卷表,试卷信息表,学生答案表。
数据库建好后,需要建立站点网页与后台服务器的连接,因为每个动态网页中和数据库连接时都要用到代码,于是我们将这段代码单独放在一个名为conn.inc的文件中,当某动态网页中需要建立与该数据库的连接时,将这个文件用代码
--#includefile="conn.inc"-->包含在该页面的前面即可。
conn.inc的代码如下:
<%
dimconnstr,con
connstr="provider=microsoft.jet.oledb.4.0;
datasource="&server.mappath("../data.mdb")
setcon=server.createobject("adodb.connection")
con.openconnstr
%>
4.2用户登录
考试系统中的身份验证是很重要的,它关系到考试的严肃性,以密码这一条件限制,这就使有资格的用户才能进行考试,用户登录时,系统便要验证其姓名和密码与考试者信息库所备案的是否一致,并判断其身份,是老师或是学生。
关键代码:
yhm1=request("yhm")‘获取用户的用户名
mm1=request("mm")‘获取用户的密码
setrs=server.CreateObject("adodb.recordset")
sql="select*fromyonghuwhereyhm='"&yhm1&"'andmm='"&mm1&"'"
rs.opensql,con,1,1
ifrs.eoforrs.bofthen
response.redirect("../index.asp")‘若该用户不存在,则转到index.asp页
else
session("yhm")=rs("yhm")‘登录成功,用session记录下该用户基本的信息
session("sf")=rs("sf")
session("dj")=rs("dj")
endif
图6教师登录后的界面
图7学生登录后的界面
4.3添加试题
对试题库进行不断地扩充,可以满足现代考试的需求。
当教师输入试题后,系统会对输入的试题进行是否合法的判断,若试题有不合符要求的地方,则返回,要求教师修改后再进行添加。
关键代码:
th1=request("th")‘获取用户输入的试题信息
lx1=request("lx")
zsd1=request("zsd")
ndxs1=request("ndxs")
fs1=request("fs")
st1=request("st")
xxa1=request("xxa")
xxb1=request("xxb")
xxc1=request("xxc")
xxd1=request("xxd")
da1=request("da")
ifth1=""thenmsg="题号不能为空"‘判断是否有空项,若有则转到add12.asp页,重新输入试题
iflx1=""thenmsg="类号不能为空"
ifzsd1=""thenmsg="知识点不能为空"
ifndxs1=""thenmsg="难度系数不能为空"
iffs1=""thenmsg="分数不能为空"
ifst1=""thenmsg="试题不能为空"
ifxxa1=""thenmsg="选项a不能为空"
ifxxb1=""thenmsg="选项b不能为空"
ifxxc1=""thenmsg="选项c不能为空"
ifxxd1=""thenmsg="选项d不能为空"
ifda1=""thenmsg="答案不能为空"
if(msg<>"")thenresponse.redirect"add12.asp"
setrs=server.createobject("adodb.recordset")
rs.open"select*fromdanxuanwhereth="&th1,con,1,1
ifrs.eofandrs.bofthen
rs.close
setrs=nothing
setrs1=server.createobject("adodb.recordset")‘若输入的试题符合要求,则将试题插入到表danxuan中
rs1.open"insertintodanxuanvalues
('"&th1&"','"&lx1&"','"&zsd1&"','"&ndxs1&"','"&fs1&"','"&st1&"',
'"&xxa1&"','"&xxb1&"','"&xxc1&"','"&xxd1&"','"&da1&"')",con,1,3
setrs1=nothing
con.close()
setcon=nothing
图9添加单项选择题的界面
图10添加成功后的数据库
以上是以单项选择题为例,说明添加试题的过程,试题的删除、查看和修改和添加类似。
4.4用户管理
用户管理实现了教师对学生用户的管理,可实现对学生用户的添加、删除、基本信息的查看。
关键代码:
yhm1=request("yhm")‘获取教师录入的信息
mm1=request("mm")
bj1=request("bj")
zy1=request("zy")
ifyhm1=""thenmsg="用户名不可为空"‘用户名和密码不可以为空
ifmm1=""thenmsg="密码不可为空"
if(msg<>"")thenresponse.redirect"add1.asp"
setrs=server.createobject("adodb.recordset")
rs.open"select*fromyonghuwhereyhm='"&yhm1&"'",con,1,1
ifrs.eofandrs.bofthen
rs.close
setrs=nothing
setrs=server.createobject("adodb.recordset")
rs.open"insertintoyonghuvalues('"&yhm1&"','"&mm1&"','学生','0')",con,1,3
else
response.redirect"add2.asp"
endif
setrs=nothing
setrs1=server.createobject("adodb.recordset")
rs1.open"insertintoxueshengxinxi(yhm,bj,zy)values('"&yhm1&"','"&bj1&"','"&zy1&"')",con,1,3
rs.close
setrs1=nothing
图12添加学生用户的界面
图13添加成功后的学生信息表
以上只例举了用户添加的实现过程,用户管理部分的删除和查看部分和添加部分类似。
4.5生成试卷
试卷生成部分可根据老师设置的试题的个数和分值生成满分为一百分的客观题试卷。
试题的题型包括单项选择题、多项选择题和判断题。
关键代码:
setrs=server.createobject("adodb.recordset")
rs.open"selecttop1*fromdanxuanorderbythDESC",con,1,1
b=rs("th")‘b中存放目前单选题库中单选题的最大编号
a=request("txdx")'获取用户要求的本卷的单选题的个数
fori=1toastep1‘用for循环从题库中取出a道题
Randomize()‘取1到b的随