资源描述
网上报名及在线考试系统的设计与实现论文作者姓名:申请学位专业:申请学位类别:指导教师姓名(职称):论文提交日期:网上报名及在线考试系统的设计与实现摘 要随着计算机技术的迅猛发展,学校教学和管理的信息化发展也有长足的进步,考试也是一样。与传统的考试方式相比,网络考试系统极大地提高了教学的灵活性,并在许多领域已经有了广泛的应用。网上考试系统的最大优点是可以动态地管理各种考试信息,这大大的降低了考生作弊的可能性,在各类考试中发挥高效、便捷的作用,能把老师从繁重的工作中解脱出来!该网上报名及在线考试系统由用户网上报名模块、考试模块和系统管理模块等三大模块组成。其中系统管理模块是进行题目的添加、存储和删除,是系统运行的基础;查询子模块实现了对学生考试信息查询。考生通过自己的姓名和密码登陆系统,进入考试界面后按照管理员预先设置好考试题目,自动生成试卷参加考试。系统选用的开发软件是ASP,后台数据库为ACCESS2000。 关键词:access;在线考试;aspThe Design and Implementation of Online Registration and Examination SystemAbstractWith the fast development of computer technology, theres great progress in school information management, so does the examinations. Compared with traditional examinations, the online examination system enhances the teaching flexibility enormously and is widely used in many domains. The greatest adventure of online examination system is that it can manage any kinds of exam information, which greatly reduce the rates of examine cheats. At the same time online examination system will have a highly efficiency in any kinds of examination and can release teachers from hard work! This online registration and examination system is consisted with three main modules, which are register module, examination module and system management module. The system management module can add, save and delete subjects, which is the basis in the whole system. The inquire sub module realizes the query of examine information. The students input their names and passwords to login in the system, and after entering the examination interface, the examination paper is produced automatically as the administrator setting before. The development language is asp, and the backstage database is ACCESS2000.Key words: access;online examination;asp目 录论文总页数:24页1引言11.1课题背景11.2选题意义11.3课题研究思路和方法12关键技术12.1 ASP12.2 ACCESS33 数据库设计说明33.1管理员信息表33.2课程档案表43.3考生考试计划表43.4考生表43.5试题表53.6考试计划表53.7考试过程控制表64网上报名及考试系统的设计与实现64.1功能模块划分64.1.1网上报名64.1.2前台操作管理64.1.3后台管理74.2各功能模块的设计与实现84.2.1新生报名84.2.2在线考试84.2.3成绩查询124.2.4个人信息及密码修改144.2.5操作员管理154.2.6课程档案管理164.2.7试题档案管理174.2.8考试计划管理194.2.9考生信息管理205系统测试205.1对考生在线报名功能的测试205.2对在线考生功能的测试21结 论22参考文献22致 谢23声 明241引言1.1课题背景考试是教学活动的重要环节,但由于考试类型的不断增加和考试要求的不断提高,传统的考试方式已经不能适应现代考试的需要。随着计算机网络的普及和发展,如何利用计算机进行考试,以提高教学效率和考试质量,更大范围的共享教学资源,是一个值得深入的研究的课题。目前,开发网上考试系统多采用Microsoft office中access技术,采用VB、VC编写程序,在实时性、交互性和访问WEB服务器上的数据库方面存在不尽人意的地方。而asp作为当今最流行的动态页面技术,具有无可比拟的简单性、实时性、快速性、输出格式容易控制等功能,不仅能够使程序的交互更加方便,更重要的是他还提供了非常方便的访问数据库的功能。因而采用asp技术开发网上考试系统具有显著的优势。1.2选题意义随着社会的进步和商品经济的不断发展,社会对劳动者和技术人员的知识和能力水平的要求越来越高。考试作为衡量人的能力的重要手段,在现代生活的地位进一步提高,并深入到社会各个方面,各种各样的学历考试、资格证书考试层出不穷。同时,Internet技术的发展是得考试的技术手段和载体发生了革命性的变化。Internet的开放性和分布性的特点以及基于Internet的巨大计算能力使得考试突破了时间和空间的限制。网络应用不断扩大,如远程教育和虚拟大学的出现等;使得基于Web的在线考试系统成为现实。基于Web的在线考试系统可以发挥网络的优势,建立大型、高效、共享的题库和实现随时随地的考试,降低考试成本,减少人为的干扰。减轻教师的负担,节约人力,物力,和财力。1.3课题研究思路和方法本次毕业设计首先分析网上报名和在线考试的相关功能,结合本次毕业设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识(包括计算机网络技术、数据库、网页制作等),采用Asp+ access进行本毕业设计的开发,使用Macromedia Dreamweaver MX 2004来编辑相关页面;在设计中以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法。2关键技术2.1 ASPMicrosoft Active Server Pages 即我们所称的ASP,其实是一套微软开发的服务器端脚本环境。Active Server Page 是创建动态网页的一个很好的工具,它起一种编程语言的作用,可以利用它编写动态产生HTML的程序代码。因此,只要用户浏览Web站点并请求一个ASP页,Web服务器就可以处理相应的ASP代码,生成HTML代码,然后将它传递到用户浏览器并显示出网页。ASP内含于IIS3.0和4.0之中,通过ASP我们可以结合HTML网页、ASP指令和ActiveX元件建立动态、交互且高效的WEB服务器应用程序。有了ASP就不必担心客户的浏览器是否能运行所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。以下罗列了ASP所独具的一些特点(1)利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术;(2)ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试; (3)服务器上的ASP解释程序会在服务器端制定ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页; (4)ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息; (5)ASP可以使用服务器端ActiveX主键来执行各种各样的任务,例如存取数据库、访问文件系统等。 (6)由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可放置ASP程序代码被窃取。 ASP包含三方面含义:(1)Active:ASP使用了微软的ActiveX技术。ActiveX(COM)技术是现在Microsoft软件的重要基础。它采用封装对象,程序调用对象的技术,简化编程,加强程序间合作。ASP本身封装了一些基本组件和常用组件,有很多公司也开发了很多实用组件。只要你可以在服务器上安装这些组件,通过访问组件,你就可以快速、简易地建立自己的WEB应用。(2)Server:ASP运行在服务器端。这样就不必担心浏览器是否支持ASP所使用的编程语言。ASP的编程语言可以是VBSCRIPT和JSCRIPT。VBSCRIPT是VB的一个简集,会VB的人可以很方便的快速上手。然而Netscape浏览器不支持客户端的VBSCRIPT,所以最好不要在客户端使用VBSCRIPT。而在服务器端,则无需考虑浏览器的支持问题。Netscape浏览器也可以正常显示ASP页面。(3)Pages:ASP返回标准的HTML页面,可以正常地在常用的浏览器中显示。浏览者查看页面源文件时,看到的是ASP生成的HTML代码,而不是ASP程序代码。这样就可以防止别人抄袭程序。由此可以看出,ASP是在IIS下开发WEB应用的一种简单、方便的编程工具。在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的ASP系统。2.2 ACCESSAccess是Office系列软件中用来专门管理数据库的应用软件。所谓数据库是指经过组织的、关于特定主题或对象的信息集合。数据库管理系统分为两类:文件管理系统和关系型管理系统。Access应用程序就是一种功能强大且使用方便的关系型数据库管理系统,一般也称关系型数据库管理软件。它可运行于各种MicrosoftWindows系统环境中,由于它继承了Windows的特性,不仅易于使用,而且界面友好,如今在世界各地广泛流行。它并不需要数据库管理者具有专业的程序设计水平,任何非专业的用户都可以用它来创建功能强大的数据库管理系统。本章将专门介绍Access2002(下面简称为Access)的基本功能及其常用的操作,主要内容包括创建和使用数据表,建立和使用查询、窗体,以及数据表与其他数据文件之间的转换等。Access使用标准的SQL(StructuredQueryLanguage,结构化查询语言)作为它的数据库语言,从而提供了强大的数据处理能力和通用性,使其成为一个功能强大而且易于使用的桌面关系型数据库管理系统和应用程序生成器。 一个Access数据库中可以包含表、查询、窗体、报表、宏、模块以及数据访问页。不同于传统的桌面数据库(dbase、FoxPro、Paradox),Access数据库使用单一的*.mdb文件管理所有的信息,这种针对数据库集成的最优化文件结构不仅包括数据本身,也包括了它的支持对象。此外,Access2002还利用Office套件共享的编程语言VBA(VisualBasicforApplication)进行高级操作控制和复杂的数据操作。3 数据库设计说明根据系统需要,我们在数据库中建立了7张表,分别如下:3.1管理员信息表表1 admin表字段名字段类型字段长度简要说明Adminid自动编号本表主键Adminname字符串型128管理员的登陆名adminpwd字符串型50登陆密码email字符串型255管理员电子邮件adminpurview整型管理员权限管理员信息表是用来存放管理员登录的名称,密码,个人信息,权限等数据。Adminpurview :c此字段的作用是存放普通管理员的权限,它的取值可以为以下几种之一;0 代表拥有所有权限;1代表维护试题的权限;2代表维护考生档案;4代表维护考试计划8代表维护课程档案这里权限值使用1.2.4.8的原因是它们分别代表二进制饿1.10.100.1000.所以方便于多种权限的组合判断,在赋予管理员多种权限时,只需要把这些权限值相加即可,在判断时只需要把权限值进行相应的“与”运算就可判断是否拥有某种权限。3.2课程档案表课程档案表主要用来存放考试课程名称等数据。表2 course表字段名字段类型字段长度简要说明courseid自动编号课程IDcoursname字符串型128登陆名称3.3考生考试计划表表3 prj_student字段名字段类型字段长度简要说明id自动编号主键prjid整型考试计划IDstudentid整型考生IDmark整型考生成绩state整型考试状态starttime日期/时间型开始考试时间endtime日期/时间型考试结束时间本表用来存储每个考生每次考试的成绩,开始时间,结束时间等信息。Mark:类型为整型,为考生在考试计划中的成绩。State:类型为整型,为考试进行的状态0为没有考试,1为已经参加过考试,2为正在进行考试。Endtime:类型为日期时间型,为考生的交卷时间。3.4考生表表4 student字段名字段类型字段长度简要说明studentid自动编号考生ID号username字符串型登陆名称studentname字符串型真实姓名studentpwd字符串型登陆密码sex布尔型性别birthday日期/时间型出生生日email字符串型考生的E-MAILtel字符串型电话号码studenttype整型考生类型考生档案表用来存放考生的个人信息 ,姓名,登录名称,密码,性别,生日等数据Studenttype:类型为整型,用来表示考生的类型,当值为0时表示此考生已经进行报名申请但还没有审批;当值为1时表示此考生是已报名考生。3.5试题表表5 subject字段名字段类型字段长度简要说明ID自动编号试题IDContent备注题目内容TYPE整型题目类型Option1字符串型255可选项1Option2字符串型255可选项2Option3字符串型255可选项3Option4字符串型255可选项4Option5字符串型255可选项5Option6字符串型255可选项6answer整型题目答案courseid整型题目所属的课程ID本表就是系统的题库,本系统中所用的试题都存放在此表中。Answer字段:类型为整型,用于存放本题的正确答案,此字段表示答案的方法是 :当题目类型为选择题时,从低位二进制到高位二进制位分别代表1-6个选项的选择情况。当1时代表选定,0代表未选定;当题目类型为是非题时,1代表对,0代表错3.6考试计划表表 6 project字段名字段类型字段长度简要说明prjid自动编号考试计划IDprjname字符串型试卷的名称coursid整型考试所属课程ss-count整型255单选题数量Ms-count整型255多选题数量b-count整型255是非题数量starttime日期/时间型255考试计划开始时间endtime日期/时间型255考试计划结束时间timelimit整型255单场考试的时间限制settime日期/时间型本考试计划制定时间setadmin整型制定本考试计划的管理员ID本表是用来存放有关考试计划的。如考试本次考试计划的名称,考试题型,数量,开始时间,结束时间等信息。3.7考试过程控制表表7 prj_process字段名字段类型字段长度简要说明id自动编号主键Prj_studentid整型128考试计划考生表IDsubid整型试题IDanswer整型考生的答案orderid整型试题的排列顺序本表的作用是用来管理考试的进程,表内主要存放考生正在进行的考试计划的考试题目与答题情况信息,本表只在考生考试过程中临时存放信息,当考生考试结束时就会删除相关的信息。4网上报名及考试系统的设计与实现4.1功能模块划分系统实现了网上报名,前台操作原理,后台操作管理三大功能。系统结构图如图4-1 所示4.1.1网上报名考生登陆考试系统填写资料申请在线报名,当得到管理员的审批后即可登录到考试中心,参加考试。4.1.2前台操作管理前台操作管理包括:在线考试、成绩查询、考试信息查询、个人信息及密码修改。(1)在线考试:学生登录以后可以任选时间进行在线测试,考试结束后,系统会根据已有的标准答案进行在线判卷,考生可以立刻知道考试成绩。(2)成绩查询:学生可以在线查询以前参加过的每门课程的考试相关信息。(3)个人信息及密码修改:当考试信息有变动时,考生可以根据变动的信息进行相应信息的修改。4.1.3后台管理后台管理模块,主要功能有操作远管理、课程档案管理、试题档案管理、考试计划管理、考生管理等(1)操作员管理:操作员的类型包括超级管理员与普通管理员,操作员管理包括对管理员信息的添加,删除,修改等操作。网上报名及在线考试系统前台操作管理后台管理在线考试新生报名成绩查询个人信息及密码修改操作员管理课程档案管理试题档案管理考试计划管理考生信息管理图4-1 系统结构图(2)课程档案管理:主要用来对考试试题和考试计划进行分课程管理,课程管理模块主要功能有:添加,修改,删除课程信息。(3)考试计划管理:考试计划实际上相当于考试试卷,管理员如果将要组织一次考试的话,就需要填写一条考试计划,考试计划管理模块的主要功能有:添加,修改,删除考试计划。(4)试题档案管理:本系统中试题本分为 :单选题,多选题,是非题三种,试题档案管理模块的主要功能有:添加,修改,删除等操作。(5)考生档案管理:分为两部分,一部分是在后台管理员进行管理,后台管理员管理的功能有:考生档案的添加,修改,删除;对已提交注册申请的考生进行审批。一部分是在前台由考生本人进行管理,前台考生对档案管理的功能有;修改自己的基本信息,修改登陆密码。4.2各功能模块的设计与实现4.2.1新生报名 如果没有参加报名的考生想要参加考试,可以进入在线报名与考试系统进行在线报名,在线提交相应信息,然后等待管理员的资格审批。只有审批后的考生才能参加考试。完成此功能的主要页面有student_reg.asp, student_regpost.asp效果图如图4-2所示。图4-2 考生在线报名页面4.2.2在线考试考生登陆考试系统时,系统根据登录名和密码判断考生是否为报名后的考生,如果没有报名则提示考生先注册,注册完成后需要管理员审核考生是否符合条件,审核通过后考生才能参加考试。考生登录后,可以选择相应的试题进行在线考试。考试过程中考生的答案保存在考试过程控制表(prj_process)中。自动生成试卷函数根据考试计划中的设置,从试题库中随机按要求组成试卷并存入考试过程控制表(prj_process)中。考试结束采取自动交卷和到了规定的时间系统强制交卷的有机结合的方式予以实现。系统根据管理员制定好的答案进行判断,自动给出考生的考试成绩。在线考试主要页面有function.asp,考试页面testing.asp,保存答案页面test_saveanswer.asp,考试结束显示结果页面testfinish.asp,成绩查询页面student_markquery.asp .自动生成试卷的主要代码片段如下:生成试卷function makePaper(intPrjID,intStudentID)dim rsPaper,strSqlPaper,rsNew,strSqlNew,intCourseID,intCount,arrTemp,intSSCount,arrSS,intMSCount,arrMS,intBCount,arrB,intCurType,I,J,intPos,blnPassG_CONN.execute delete from prj_process where prjid= & intPrjID & and studentid= & intStudentIDset rsPaper = server.createobject(ADODB.Recordset)strSqlPaper = select courseid,ss_count,ms_count,b_count from project where prjid= & intPrjIDrsPaper.open strSqlPaper,G_CONN,1,1if not rsPaper.bof and not rsPaper.eof thenintCourseID = rsPaper(courseid)intSSCount = rsPaper(ss_count)intMSCount = rsPaper(ms_count)intBCount = rsPaper(b_count)elsersPaper.closeset rsPaper = nothingmakePaper = falseexit functionend ifrsPaper.closefor intCurType = 1 to 3select case intCurTypecase 1intCount = intSSCountcase 2intCount = intMSCountcase 3intCount = intBCountend selectif intCount 0 thenredim arrTemp(intCount)strSqlPaper = select id from subject where type= & intCurType & and courseid= & intCourseIDrsPaper.open strSqlPaper,G_CONN,1,1if rsPaper.recordcount intCount then判断当前题库内试题是否足够rsPaper.closeset rsPaper = nothingmakePaper = falseexit functionend ifrandomize timerintPos = int(rnd() * rsPaper.recordcount)arrTemp(1) = intPosfor I = 2 to intCountintPos = int(rnd() * rsPaper.recordcount)blnPass = falsewhile blnPass = falsefor J = 1 to I - 1if intPos = arrTemp(J) thenexit forend ifnextif J = I thenblnPass = trueelse使用线性探测解决冲突问题intPos = intPos + 1if intPos = rsPaper.recordcount thenintPos = 0end ifend ifwendarrTemp(I) = intPosnextstrSqlNew = select * from prj_processset rsNew = server.createobject(ADODB.Recordset)rsNew.open strSqlNew,G_CONN,1,3for I = 1 to intCountrsPaper.move arrTemp(I),1rsNew.addnewrsNew(prjid) = intPrjIDrsNew(subid) = rsPaper(id)rsNew(studentid) = intStudentIDrsNew.updatenextrsNew.closersPaper.closeend ifnextG_CONN.execute update prj_student set state=2G_CONN.execute update prj_student set starttime=now()set rsPaper = nothingmakePaper = trueend function考试过程中对考生答案的保存的主要代码片段如下:%dim rsSaveAnswer,strSqlSaveAnswer,intAnswer,strAction,intID考生答案,动作(主要用于多选题,决定是选中还是取消),试题IDintAnswer = CLng(trim(request.querystring(answer)取得考试信息和答案strAction = request.querystring(action)intID = request.querystring(id)set rsSaveAnswer = server.createobject(ADODB.Recordset)取得详细的题目,考生及考生答题状况信息。strSqlSaveAnswer = select P_P.*,P_S.state,P_S.starttime,P.limittime from prj_process P_P,prj_student P_S,project P where P_P.studentid=P_S.studentid and P_P.prjid=P_S.prjid and P_S.prjid=P.prjid and P_P.id= & intIDrsSaveAnswer.open strSqlSaveAnswer,G_CONN,1,3if rsSaveAnswer(state) = 2 and DateDiff(n,rsSaveAnswer(starttime),now() rsSaveAnswer(limittime) then验证此答案是否在有效的时间内提交的.判断答案合法性if intAnswer = 0 or intAnswer = 1 or intAnswer = 2 or intAnswer = 4 or intAnswer = 8 or intAnswer = 16 or intAnswer = 32 then根据题目类型不同以不同方式保存答案if strAction = selected thenif rsSaveAnswer(answer) 0 thenrsSaveAnswer(answer) = intAnswerelsersSaveAnswer(answer) = rsSaveAnswer(answer) or intAnswerend ifelseif strAction = selectcancel thenrsSaveAnswer(answer) = rsSaveAnswer(answer) and not intAnswerelsersSaveAnswer(answer) = intAnswerend ifrsSaveAnswer.updateelseresponse.write alert(答案不合法!);end ifelseresponse.write alert(现在不是考试时间,不能进行答题!);end ifrsSaveAnswer.closeset rsSaveAnswer = nothing%4.2.3成绩查询 考生登陆系统后 考生可以使用成绩查询功能进行以往考试科目的成绩查询。考生登录系统后首先验证考生的登录状态,只有登录后的考生才能够进行以往考试成绩的查询,如果考生没有登录则自动转到考生登录页面student_login.asp。要求考生进行登录验证。其主要代码如下: if checkStudentLogin() = false then检测考生登录状态response.redirect student_login.aspend ifstrErr = intCourseID = CInt(request.form(courseid)验证日期输入是否正确if Trim(request.form(starttime) thenif IsDate(Trim(request.form(starttime) = true thendtmStartTime = CDate(Trim(request.form(starttime)elsestrErr = 起始日期格式错误 & vbcrlfend ifelsedtmStartTime = CDate(2000-1-1)end ifif Trim(request.form(endtime) thenif IsDate(Trim(request.form(endtime) = true thendtmEndTime = CDate(Trim(request.form(endtime)elsestrErr = 结束日期格式错误 & vbcrlfend ifelsedtmEndTime = CDate(2200-1-1)end ifif strErr = then如果通过验证则显示出查询结果strSqlMark = select P.prjname,P_S.mark,P_S.state,P_S.starttime,P_S.endtime from project P,prj_student P_S where strSqlMark = strSqlMark & P.prjid = P_S.prjid and P_S.studentid= & request.cookies(aoyi)(studentid) & and P.starttime # & dtmStartTime & # and P.starttime 0 thenstrSqlMark = strSqlMark & and P.courseid= & intCourseIDend ifstrSqlMark = strSqlMark & order by P.starttime desc4.2.4个人信息及密码修改考生登陆系统后可以进行考生个人的信息修改,考生必须先登录系统然后才能进行相应的操作,考生能够修改自己的姓名,出生日期,email,身份证号码,但是必须满足系统的格式要求。如果输入中有不符合系统要求,系统会提示修改失败并且给出失败原因。其效果图如图4-3图 4-3修改考生信息修改考生信息的主要代码如下:sub modifyInfo()dim rsModifyInfo,strSqlModifyInfo,strStudentName,blnSex,strTel,strEmail,dteBirthday,strErrstrErr = 验证考生提交的信息是否合法if trim(request.form(studentname) = thenstrErr = strErr & 真实姓名为空。 & vbcrlfelsestrStudentName = trim(request.form(studentname)end ifif IsDate(trim(request.form(birthday) = false thenstrErr = strErr & 出生日期未填写或格式不正确。 & vbcrlfelsedteBirthday = CDate(trim(request.form(birthday)end ifif CInt(request.form(sex) 0 thenblnSex = trueelseblnSex = falseend ifstrEmail = trim(request.form(email)strTel = trim(request.form(tel) strStudentName=trim(request.form(studentname) blnSex=trim(request.form(sex) dteBirthday= trim(request.form(birthday) if strErr = then如果通过验证则进行考生信息的修改并显示成功信息set rsModifyInfo = server.createobject(ADODB.Recordset)strSqlModifyInfo = update student set studentname=&strstudentname&,tel=&strtel&,email=&stremail&,birthday=&dtebirthday&,sex=&blnsex& where username= & request.cookies(aoyi)(username) & rsModifyInfo.open strSqlModifyInfo,G_CONN,1,3验证考生记录是否存在%4.2.5操作员管理操作员管理:操作员的类型包括超级管理员与普通管理员,超级管理员管理包括对管理员登陆系统的密码修改。普通管理员的管理包括,管理员的添加,登陆密码修改,权限设置等操作。如图4-4图4-4 操作员管理页面删除操作员主要代码如下:sub del()删除操作员dim intAdminID,strErrintAdminID = CLng(Trim(request.querystring(adminid)if G_CONN.execute(select * from admin where adminid= & intAdminID)(adminname) = admin thenstrErr = 超级管理不能被删除!call closeConn()showErrMsg(strErr)response.write exit subend ifG_CONN.execute delete from admin where adminid= & intAdminIDcall closeConn()response.redirect admin_admin.aspend sub4.2.6课程档案管理课程档案管理:后台管理员登录后进入课程管理界面如图4-4所示,首先系统会判断登录的管理员具备课程管理权限,超级管理员具有全部权限。如果没有次项权限则提示管理员没有此权限,不能进行课程档案管理。 其删除试题的主要代码如下: sub del()删除试题dim strSubjectID,strErrstrSubjectID = Trim(request.querystring(subjectid)if strSubjectID = thenstrSubjectID = Trim(request.form(subjectid)end ifif strSubjectID = thenstrErr = 请选择要删除的试题!showErrMsg(strErr)response.write call closeConn()exit subend ifif G_CONN.execute(select count(*) as reccount from prj_process where subid in ( & strSubjectID & )(reccount) 0 thenstrErr = 此试题正在使用中,不能被删除!call closeConn()showErrMsg(strErr)response.write exit subend ifG_CONN.execute delete from subject where id in ( & strSubjectID & )call closeConn()response.redirect admin_subject.asp图4-5 考试课程管理添加课程:填写课程名称后单击“更新”按钮即可添加课程。修改课程:单击要修改的课程右侧的修改“链接后,此课程信息会出现在”添加/修改表格内,修改名称后单击“更新”按钮即可完成修改。删除课程:单击待修改课程的右侧的“删除”链接即可。4.2.7试题档案管理试题档案管理:本系统中试题本分为 :单选题,多选题,是非题三种,管理员可以进行试题的添加效果图如图4-5,修改和删除。管理员要进行试题管理首先也要判断管理员是否具有试题管理的权限,如果有此权限才能进行试题管理如果没有系统会自动提示管理员不具备此权限不能进行相应的操作。其功能主要由admin_subject.asp页面完成。图4-6 添加试题其主要代码片段如下:set rsSubject = server.createobject(ADODB.Recordset)创建记录集对象strSqlSubject = select * from subject where id=0rsSubject.open strSqlSubject,G_CONN,1,3rsSubject.addnewrsSubject(content) = strContentrsSubject(type) = intTypersSubject(option1) = strOption1rsSubject(option2) = strOption2rsSubject(option3) = strOption3rsSubject(option4) = strOption4rsSubject(option5) = strOption5rsSubject(option6) = strOption6rsSubject(answer) = intAnswerrsSubject(courseid) = intCourseIDrsSubject.updatersSubject.closeset rsSubject = nothingcall closeConn()if request.form(iscontinue) = 1 thenresponse.redirect admin_subject.asp?action=addelseresponse.redirect admin_subject.asp转到admin_subject.asp页面end if4.2.8考试计划管理考试计划管理:考试计划是管理员制定的,由管理员根据计划制定相应的考试计划,制定计划包括考试开始时间,考试结束时间,考试所属科目,试题题型分配比例等操作 主要由admin_project.asp页面完成。效果如图4-6 图4-7 考试计划管理其删除考试计划主要代码如下:sub del()删除考试计划dim intPrjID,strErrintPrjID = CLng(Trim(request.querystring(prjid)if G_CONN.execute(select count(*) as reccount from project where starttime=date() and prjid in (select prjid from prj_student) and prjid= & intPrjID)(reccount) 0 thenstrErr = 在考试计划使用中不能删除此计划!showErrMsg(strErr)exit subend ifG_CONN.begintransG_CONN.execute delete from prj_process where prjid= & intPrjIDG_CONN.execute delete from prj_student where prjid= & intPrjIDG_CONN.execute delete from project where prjid= & intPrjIDG_CONN.committranscall closeConn()response.redirect admin_project.aspend sub4.2.9考生信息管理 考生信息管理:操作员可以对已经报名的考生进行考生信息修改,考生删除,考生档案添加。其中考生信息修改包括考生登录密码,考生电话,生日等相关信息。考生删除包括考生的所有相关信息。添加的新考生不需要进行管理的审批可以直接参加考试。管理员添加的新考生具备全部已经审批过考生的功能。对新提交报名申请的考生进行资格审批。新考生报名审批功能主要代码:sub checkup()审批考生dim intStudentID,strErrintStudentID = CLng(Trim(request.querystring(studentid)if G_CONN.execute(select count(*) as reccount from student where studentid= & intStudentID)(reccount) = 0 thenstrErr = 此考生不存在!end ifif strErr thensthowErrMsg(strErr)exit subend ifG_CONN.execute(update
展开阅读全文