• asp毕业设计——基于asp+access的在线考试系统设计与实现(毕业论文+程序源码)——在线考试系统


    基于asp+access的在线考试系统设计与实现(毕业论文+程序源码)

    大家好,今天给大家介绍基于asp+access的在线考试系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。

    文章目录:

    1、项目简介

    1. 网络考试的好处是显而易见的,不仅可以动态地管理考试信息,而且还提高了教学的灵活性。本系统采用B/S的体系结构,利用Access设计了系统的数据库,使用ASP语言实现了用户管理、题库管理、试卷生成、在线考试、成绩查询。可以满足《信息论与编码》这门课程客观题的网络考试需求,有效地减速轻了教师的工作负担。
    2. 本文介绍了整个考试系统的需求分析、概要设计、以及详细设计,达到了预期的效果。

    2、资源详情

    项目难度:中等难度
    适用场景:相关题目的毕业设计
    配套论文字数:6684个字28页
    包含内容:整套源码+完整毕业论文
    资源文件目录简图如下:
    请添加图片描述


    3、关键词:

    网络考试;ASP;ACCESS;B/S体系结构;VBScript

    4、毕设简介

    提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

    引言
    1.1 背景
    省略

    本系统是以B/S模式作为基本结构,利用ASP技术开发的基于WEB的在线考试系统。

    1.2 系统需解决的主要问题
    该系统要满足《信息论与编码》网上考试的需求,可以实现低成本,高效率办公。不同权限的用户对系统进行不同操作,教师可增加试题,删除试题,查看试题,在试题库范围内制卷管理模块根据教师提出的具体要求自动生成以客观题为主的试卷。学生可在线考试,查询自己的分数。

    1.3 相关技术介绍
    ASP(Active Server Pages) :ASP是一种服务器端的指令环境,内含于IIS中,我们可以通过结合HTML网页、服务器指令及ActiveX元件建立动态、交互且高效的WEB服务器应用程序。同时,ASP也支持VBScript和JavaScript,默认为VBScript。ASP是经过服务器解析之后再向浏览器返回数据,所以有了 ASP 就不必担心客户的浏览器是否能运行你所编写的代码。因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。但是这样也导致一个问题,运行ASP页面相对于普通的html页面要慢一点,因为普通的html页面只需要浏览器就能够解析,而ASP则必须是服务器将整页的代码都执行一篇之后再发送数据。ASP的安全性还是要提一提,由于代码是需要经过服务器执行之后才向浏览器发送的,所以在客户端看到的只能是经过解析之后的数据,而无法获得源代码,故编写者不用担心自己的代码会被别人剽窃。

    SQL(Struct Querry Language):SQL是一个完全标准化的结构化查询语言,它的最大特点之一就是它具有广泛的兼容性,通过几个命令,就可以实现定义、查询、更新和控制功能。在ASP 中对后台数据库进行查询、添加、删除和更新等操作所采用的就是SQL 语言。

    2 需求分析
    2.1 目标
    (1)本系统的用户可分为教师和学生两类;
    (2)系统应该实现下列功能:
    对教师来说,有以下几个要求:实现题库管理,制卷管理,用户管理。题库管理:教师可以根据教学的需求对题库中的试题进行四种基本操作:添加新的考题、删除旧的考题、修改原有的考题、查看已有的考题,其中试题类型包括单选题、多选题和判断题;制卷管理:教师可以将各种题型的数量对某份试卷提出一定的要求生成试卷;用户管理:教师可以增加考试的学生,查看参加考试的学生的名单及他们的基本资料。
    对学生来说,有以下的要求:可以实现在线考试,对相应的试卷进行成绩查询。

    2.2 处理流程
    (1)在线考试系统流程图
    在这里插入图片描述

    (2)在线考试系统工作流图
    在这里插入图片描述

    3 概要设计
    3.1 系统整体设计
    系统用户的身份划分为两种权限:教师和学生,教师能够管理试题库、管理学生用户和在线制卷,学生则只能进行在线答题和查询成绩。

    《信息论与编码》在线考试系统实现了在线录入试题、生成试卷、在线考试、成绩查询等功能,共分为五个模块:题库管理模块、试卷生成模块、用户管理模块、成绩查询模块和学生考试管理模块。本系统完成了以下几个大模块:
    ● 题库管理模块:主要完成教师对题库的操作,包括试题的录入,查看,删除及修改;
    ● 试卷生成模块:主要根据不同的条件从题库中选出符合要求的试题生成试卷;
    ● 用户管理模块:对登录系统的人员进行统一管理,并赋予不同的权限;
    ● 成绩查询模块:可进行成绩的查询;
    ● 学生答卷模块:学生登录后,可进行在线考试。

    在这里插入图片描述

    3.2 系统模块结构图
    在这里插入图片描述

    3.3 各模块功能简介
    登录模块:当用户登录到考试系统时,首先要求输入用户名和密码,按下确定后进行身份验证,如果没有通过身份验证,根据验证结果进行不同的操作,说明没有通过的原因。没有通的原因可能为,输入的姓名和密码错误,该用户不存在等;

    身份验证模块:当用户进入考试系统时,系统根据不同的情况返回不同的值,以判别该用户是老师还是学生;

    查成绩模块:当考生登录后,可查询自己不同试卷的最后得分;

    生成试卷模块:根据读取到的试卷设置,生成考试试卷;

    生成单项选择题模块:根据考试要求,从数据库中的单项选择题库中随机抽取规定数量的单项选择试题;

    生成多项选择题模块:根据考试要求,从数据库中的多项选择题库中随机抽取规定数量的多项选择试题;

    生成判断题模块:根据考试要求,从数据库中的判断题库中随机抽取规定数量的判断试题;

    读取数据库模块:根据要求,从数据库中读取需要的信息;

    做试卷模块:考生做试卷,让考生根据试题要求,输入答案;

    生成试题模块:根据读取到的信息,生成试题;

    生成单项选择题模块:根据教师的输入,将新生成的单项选择题保存到数据库中;

    生成多项选择题模块:根据教师的输入,将新生成的多项选择题保存到数据库中;

    生成判断题模块:根据教师的输入,将新生成的判断题保存到数据库中;

    提交试卷模块:将考生答案保存到数据库中,然后评卷,再把考试的分数保存到数据库中;

    评分模块:对考生试卷的答案和标准答案对比,对的加分,最后得出考试结果;

    保存到数据库模块:根据要求,将数据保存到数据库中。

    4 详细设计及其实现
    4.1 数据库设计
    数据库设计是指对于一个给定的应用环境,设计优化的数据逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理和数据操作要求。信息管理要求是指在数据库中应该存储和管理哪些数据对象。数据操作要求是指对数据对象需要进行哪些操作,如查询,增加,删除和修改等操作。

    数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效的运行环境。高效的运行环境包括:数据库的存取效率,数据库存储空间的利用率,以及数据库系统运行管理的效率等。

    对于本系统要用到的数据库表有:
    ● yonghu:包含用户的登录信息
    ● xueshengxinxi:包含考生的基本信息
    ● danxuan:单项选择题表
    ● duoxuan:多项选择题表
    ● panduan:判断题表
    ● shijuan:试卷表
    ● shijuanxinxi:试卷的基本信息表
    ● xueshengdajuan:学生答卷表
    具体表项设计如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    数据库的连接:
    根据系统功能的设计要求及功能模块的划分,本系统用access建立数据库,其中包括用户信息表,学生基本信息表,单项选择题表,多项选择题表,判断题表,试卷表,试卷信息表,学生答案表。数据库建好后,需要建立站点网页与后台服务器的连接,因为每个动态网页中和数据库连接时都要用到代码,于是我们将这段代码单独放在一个名为conn.inc的文件中,当某动态网页中需要建立与该数据库的连接时,将这个文件用代码 包含在该页面的前面即可。conn.inc的代码如下:

    <%
      dim connstr,con
      connstr="provider=microsoft.jet.oledb.4.0;
    data source="&server.mappath("../data.mdb")
      set con=server.createobject("adodb.connection")
      con.open connstr
    %>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4.2 用户登录
    考试系统中的身份验证是很重要的,它关系到考试的严肃性,以密码这一条件限制,这就使有资格的用户才能进行考试,用户登录时,系统便要验证其姓名和密码与考试者信息库所备案的是否一致,并判断其身份,是老师或是学生。
    在这里插入图片描述

    关键代码:

    yhm1=request("yhm")   ‘获取用户的用户名
    mm1=request("mm")    ‘获取用户的密码
    set rs=server.CreateObject("adodb.recordset")
    sql="select * from yonghu where yhm='"&yhm1&"' and mm='"&mm1&"'"
    rs.open sql,con,1,1
    if rs.eof or rs.bof  then 
    response.redirect("../index.asp")  ‘若该用户不存在,则转到index.asp页
    else 
    session("yhm")=rs("yhm")   ‘登录成功,用session记录下该用户基本的信息
    session("sf")=rs("sf") 
    session("dj")=rs("dj")
    end if  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述

    图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")
    if th1="" then msg="题号不能为空"   ‘判断是否有空项,若有则转到add12.asp页,重新输入试题
    if lx1="" then msg="类号不能为空"
    if zsd1="" then msg="知识点不能为空"
    if ndxs1="" then msg="难度系数不能为空"
    if fs1="" then msg="分数不能为空"
    if st1="" then msg="试题不能为空"
    if xxa1="" then msg="选项a不能为空"
    if xxb1="" then msg="选项b不能为空"
    if xxc1="" then msg="选项c不能为空"
    if xxd1="" then msg="选项d不能为空"
    if da1="" then msg="答案不能为空"
    if (msg<>"") then response.redirect "add12.asp"
    set rs=server.createobject("adodb.recordset")
    rs.open "select * from danxuan where th="&th1,con,1,1
    if rs.eof and rs.bof then 
    rs.close
    set rs=nothing
    set rs1=server.createobject("adodb.recordset")  ‘若输入的试题符合要求,则将试题插入到表danxuan中
    rs1.open"insert into danxuan values
    ('"&th1&"','"&lx1&"','"&zsd1&"','"&ndxs1&"','"&fs1&"','"&st1&"',
    '"&xxa1&"','"&xxb1&"','"&xxc1&"','"&xxd1&"','"&da1&"')",con,1,3
    set rs1=nothing
    con.close()
    set con=nothing
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    在这里插入图片描述

    图9 添加单项选择题的界面
    在这里插入图片描述

    图10 添加成功后的数据库
    以上是以单项选择题为例,说明添加试题的过程,试题的删除、查看和修改和添加类似。

    4.4 用户管理
    用户管理实现了教师对学生用户的管理,可实现对学生用户的添加、删除、基本信息的查看。
    在这里插入图片描述

    关键代码:

    yhm1=request("yhm")  ‘获取教师录入的信息
    mm1=request("mm")
    bj1=request("bj")
    zy1=request("zy")
    if yhm1="" then msg="用户名不可为空"   ‘用户名和密码不可以为空
    if mm1="" then msg="密码不可为空"
    if (msg<>"") then response.redirect "add1.asp"
    set rs=server.createobject("adodb.recordset")
    rs.open "select * from yonghu where yhm='"&yhm1&"'",con,1,1
    if rs.eof and rs.bof then 
    rs.close
    set rs=nothing
    set rs=server.createobject("adodb.recordset")
    rs.open "insert into yonghu values('"&yhm1&"','"&mm1&"','学生','0')",con,1,3
    else 
    response.redirect"add2.asp"
    end if
    set rs=nothing
    set rs1=server.createobject("adodb.recordset")
    rs1.open"insert into xueshengxinxi(yhm,bj,zy) values('"&yhm1&"','"&bj1&"','"&zy1&"')",con,1,3
    rs.close
    set rs1=nothing
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在这里插入图片描述

    图12 添加学生用户的界面
    在这里插入图片描述

    图13 添加成功后的学生信息表
    以上只例举了用户添加的实现过程,用户管理部分的删除和查看部分和添加部分类似。

    4.5 生成试卷
    试卷生成部分可根据老师设置的试题的个数和分值生成满分为一百分的客观题试卷。试题的题型包括单项选择题、多项选择题和判断题。
    在这里插入图片描述

    关键代码:

    set rs=server.createobject("adodb.recordset")
    rs.open "select top 1 * from danxuan order by th DESC ",con,1,1
    b=rs("th")  ‘b中存放目前单选题库中单选题的最大编号
    a=request("txdx")   '获取用户要求的本卷的单选题的个数
    for i=1 to a step 1   ‘用for循环从题库中取出a道题
    Randomize()   ‘取1到b的随机数
    n=Int((b-1+1)*Rnd(now())+1)   ‘将单选题库中的第n道题做为本卷中的第i道题
    set rsi=server.CreateObject("adodb.recordset")   '取出题号为n的题的答案存入试卷表中
    rsi.open "select * from danxuan where th="&n,con,1,1
    da1=rsi("da")   
    set rsa=server.CreateObject("adodb.recordset")
    rsa.open"insert into shijuan values
    ('"&sjmc1&"','"&i&"','"&n&"','"&tx1&"','"&da1&"','"&fzdx1&"')",con,1,3
    ‘将生成的试卷的信息(名称,题号,在题库中的题号,答案,分值)存入试卷表中
    set rsa=nothing
    con.close
    set con=nothing
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    图15 设置要生成试卷基本信息的界面
    在这里插入图片描述

    图16 生成试卷的界面

    4.6 在线考试及评分
    考生登录系统后,可选择试卷进行考试,当考生完成试卷提交后,答案将自动保存到数据库中的学生答案信息表中,同时计算出该学生本次考试的成绩。
    在这里插入图片描述

    关键代码:

    dannum=0  ‘用来记录'正确的单选题个数
    set rs1=server.CreateObject("adodb.recordset")
    rs1.open "select * from shijuanxinxi where sjmc='"&sjm11&"'",con,1,1
    a=rs1("dan")   '从试卷信息表中取出本卷单选题的个数存于a
    txx1="单项选择题"
    for i=1 to a step 1    '打开shijuan表,取出答案,判断是否正确
    set rsx=server.CreateObject("adodb.recordset")
    rsx.open "select * from shijuan where sjm='"&sjm11&"' and tx='"&txx1&"'and th1="&i,con,1,1
    danf=rsx("fz")
    daan1=rsx("da")
    dx=request("da"&i)  ‘获取学生对此题的答案
    if (daan1=dx) then   ‘如果答案和标准答案相同,则正确,dannum加1
    dannum=dannum+1
    else dannum=dannum
    end if
    danxuan=danxuan+dx   ‘单项选择题的所有答案记录在danxuan中
    next
    多项选择题和判断题和单项选择题类似,多选题正确的个数存放在duonum变量中,判断题正确的个数存放在pannum变量中,最后用chengji=danf*dannum+duof*duonum+panf*pannum计算出该生的成绩,并输出。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    在这里插入图片描述

    图19 学生答卷的界面
    在这里插入图片描述

    图20 学生提交答卷后得出成绩的界面

    4.7 成绩查询
    学生登录后,可选择不同的试卷查询自己考过的不同试卷的成绩,而老师登录后,可查看所有学生的所有试卷的成绩。
    在这里插入图片描述

    关键代码:

    yhm1=session("yhm")
    select2=request("select")   ‘得到试卷号(select1)的值,从试卷信息表中取出试卷名称
    set rs=server.createobject("adodb.recordset")
    rs.open "select * from shijuanxinxi where id="&select2,con,1,1
    sjmc1=rs("sjmc")
    set rs1=server.createobject("adodb.recordset")
    rs1.open "select * from xueshengdajuan where yhm='"&yhm1&"' and sjm='"&sjmc1&"'",con,1,1
    if not rs1.eof  then   ‘若该用户的该份成绩不存在,则转向meizhaodao.asp,
    else
    response.Redirect("meizhaodao.asp")
    end if
    set rs=nothing
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述

    图22 选择要查询的试卷
    在这里插入图片描述

    图23 返回学生查询结果的界面

    结 论
    通过这段时间的学习和工作,我完成了《信息论与编码》在线考试系统的设计,该系统办面友好,操作简单,达到了预期的目标,教师可完成管理题库,制卷,用户添加等,学生可实现在线考试及查询成绩。虽然功能较为简单,但还是有实用性,可以在使用的过程中不断地修改和完善。

    在完成系统的过程中,我充分体会到了理论与实践之间的联系的重要性,并掌握了将理论应用到实践中并在实践中验证以前的理论和学习新的知识的能力。同时由于该系统使用的是基于VBScript的ASP技术,使我对该门技术又有了更加深入的了解,并且对Dreamweaver的应用也更为熟练。

    完成这个考试系统的设计,使我受益颇多,使我真正了解了需求分析、概要设计、编码、测试整个软件开发过程,把我学到的技术运用到实际中去,使我对软件工程、数据库等有了更高层次的理解。同时我也发现了自己许多不足之处,有待在将来的工作中进一步的学习,掌握和运用更多的知识。

    参考文献
    [1] 周兴华,王敬栋.ASP+Access数据库开发与实例[M].北京:清华大学出版社,2006。
    [2] 邓文渊. ASP与网络数据库技术[M].北京:中国铁道出版社,2003。
    [3] 王春雨.ASP动态网站设计与制作[M]. 北京:机械工业出版社,2001。
    [4] 吉根林.Web程序设计[M]. 北京:电子工业出版社,2002。
    [5] 陈明.实用软件工程[M].北京:清华大学出版社,2001。
    [6] 金林樵.网络数据库技术及应用[M].北京:机械工业出版社,2005。
    [7] 王珊.数据库基础与应用[M].北京:人民邮电出版社,2002。
    [8] 许曰滨.ASP网络编程实例[M].北京:人民邮电出版社,2001。
    [9] 丁保康.数据库实用教程[M].北京:清华大学出版社,2001。
    [10] 邓文渊.DREAMWEAVER MX2004全方位学习[M].北京:中国铁道出版社,2004。

    致 谢
    省略


    5、资源下载

    本项目源码及完整论文如下,有需要的朋友可以点击进行下载

  • 相关阅读:
    JS高级:Promise(二)
    嵌套字典遍历取值,并得到值的键路径
    vue项目vant sku组建满足自定义展示
    2023年了,java后端还有未来吗?
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java教学管理系统upz69
    MS4344:24bit、192kHz 双通道数模转换电路
    客户需求调研的三个实用工具
    JavaScript(一)
    MySQL数据库 | 手把手教你如何去下载安装MySQL数据库
    prometheus+alertmanager 企业微信告警
  • 原文地址:https://blog.csdn.net/m0_66238867/article/details/125907564