1、郑州轻工业学院本科生毕业设计(论文)题 目: 基于PHP的在线考试 系统的设计与实现 学生姓名: X X X 专业班级:计算机科学与技术X班学 号: XXXXXXXX 院 (系): 国际教育学院 指导教师(职称): XX(高工) 完成时间: 2016年 5 月 20 日 基于PHP的在线考试系统的设计与实现目 录摘 要IABSTRACTII1 绪论11.1 研究背景及意义11.2 国内外研究现状分析11.3 论文研究内容21.4 论文组织结构22 相关技术介绍42.1 PHP简介42.1.1 PHP概述42.1.2 PHP特性42.1.3 PHP应用及语法42.2 MySQL数据库简介52.2
2、.1 MySQL介绍52.2.2 MySQL特性52.2.3 MySQL应用管理62.3 WampServer简介62.3.1 WampServer介绍62.3.2 WampServer特点62.4 Zend Studio简介62.4.1 Zend Studio介绍62.4.2 Zend Studio特点72.5 Ajax介绍72.5.1 Ajax技术核心72.5.2 Ajax原理83 系统需求分析93.1 系统功能需求93.2 系统用户分析103.3 系统环境要求114 系统总体设计134.1 功能设计134.1.1 登录134.1.2 课程管理134.1.3 题库管理154.1.4 学生管
3、理164.1.5 试卷管理174.1.6 考试管理194.2 数据库设计204.2.1 关系设计204.2.2 表设计204.2.3操作MySQL数据库的类245 系统实现255.1 登录255.1.1 考生登录255.1.2 管理员登录255.2 课程管理265.3 题库管理275.3.1 录入试题275.3.2 修改试题275.4 学生管理285.4.1 设置专业285.4.2 设置班级295.4.3 设置学生295.5 试卷管理295.5.1 设置试卷295.5.2 组卷305.5.4 修改试卷315.6 考试管理315.6.1 在线考试315.6.2 二次登录335.6.3 设置考生3
4、35.6.4 查询成绩345.6.5 查询交卷考生356 总结与展望366.1 工作总结366.2 研究展望36致 谢38参考文献39基于PHP的在线考试系统的设计与实现摘 要随着互联网技术和数据库技术的发展,在线无纸化考试因其公正性、准确性、灵活性、及时性以及方便性等特点,已成为目前国际上普遍采用的一种考试方式,本系统的实现综合了网络技术与数据库技术,利用互联网更好的为学校教学管理服务。本系统主要有管理人员用户和学生用户两个子系统,系统管理员可以设置教师管理课程的权限,实现登录和退出、课程管理、题库管理、学生管理、试卷管理、考试管理等功能。系统以Zend Studio作为编辑工具,采用Wam
5、pServer作为服务器,设计了一个采用B/S模式,依据系统设计原理,通过系统的结构设计、数据库的设计以及前端和后台服务器的开发,构建了一个以PHP作为开发工具采用MySQL数据库作为后台数据库,通过Ajax技术实现网络考试的各种功能。另外B/S模式的实现,也使得考试更加方便,客户端只要安装浏览器就能登录考试,不受地域限制,不同地方的考生可以同时参加考试。关键词 在线考试;B/S;PHP;AjaxTHE DESIGN AND IMPLEMENTATION OF ONLINE EXAMINATION SYSTEM BASED ON PHPABSTRACTWith the development
6、of Internet technology and database technology, online paperless examination for its fairness, accuracy, flexibility, timeliness and convenience features has become widely used in the international examination way, the system realize integrated network technology and database technology, the use of
7、the Internet better for the school teaching management service.The system consist of teachers and students system. Teachers act as system administrators. Its function include Log and exit, course management, question bank management, student management, paper management, test management and so on. T
8、he system uses the Zend Studio as the editor tool, WampServer as a server. It is based on Browser/Server mode, according to the system design principles to achieve online test by development of structural design, database design and front-end and back-end servers, and it use PHP as a development too
9、l to use MySQL database as backend database, network test various functions through Ajax technology. On the other hand, the use of Browse/Server make the test is more convenience, the client simply install the browser can log to test, without geographical restrictions, the candidates may be in diffe
10、rent places at the same time take the exam.KEY WORDS Online Examination, Browser/Server, PHP, AjaxII1 绪论1.1 研究背景及意义伴随着互联网的发展,教育也迎来了互联网的春天,现代教育更加依托于互联网的应用,网上选课,发布通知,在线授课等形式层出不穷。随着教育形式的变革,教育环节中重要的一项考试方式也发生着改变,人们更加倾向于使用互联网在线考试,这样就不用受地理限制可以随时随地参加考试,同时也给阅卷老师减轻了许多负担,还节约了大量的纸张,因此在线考试必将成为现代化互联网教育不可或缺的重要部分。另
11、外从硬件方面来说,计算机的更新换代已经达到的很高的水平,在教育上的应用也变得越来越普及,在线考试系统也会随之展现出其越来越多的优越性。1.2 国内外研究现状分析在越来越重视知识的当今社会,各个国家都加大了在新一代培育上的投入,都希望在以后的社会发展中走在互联网的前列,从而在信息的飞速发展中占据一个有力的地位,正是这个原因,各地政府依托于互联网来实行教育教学,并把此作为其民族发展的动力之源。在外国,澳大利亚在早期就开始投资建设“澳大利亚教育网”,这个网络不但包含了澳大利亚全部的高校,还要联通本国境内的每一所中小学1。另外美国政府提出要到二十一世纪初,让本国家所有学校和图书馆都搭载上互联网的快车,
12、让国内不论是哪个阶段的学生都可以享受到“21世纪教师”的网络服务,因此提出了“教育技术规划(Educational Technology Initiative)”2。到了1995年末,国外一些教育机构开始开发自己的网上教育平台,最早的有美国的NTU、英国的OPEN COLLEGE等这些都是那个时候实施互联网教育的典范。随着教育搭载上互联网的高速公路,在线考试作为远程教育不可分割的一项,随着互联网的大潮也如雨后春笋般迅速发展起来,人们的选课和考试都在互联网上进行,特别是互联网业务的普及、低成本的在线考试从技术和经济条件上已经日趋成熟。在国内,从大多数来看,很大一部分的教育教学还普遍停留在传统的考
13、试方式上,但是传统的考试每次都需要人为的出卷、组织考试、批改试卷并且做出许多试卷分析和成绩评估,作为老师,一次考试的实施给他们带来了许多的麻烦,并且随着教育现代化,考试类型的增加和考试要求的更加严格,教师的工作也会变得越来越繁重。而现在人们普遍认为的网络教育也是停留在网上报名和成绩查询,没有形成相应的规模,而国外网上提交作业和考试已经变得非常普及,所以传统考试方式终究要被替代,网上考试方式正在以燎原之势飞速发展3。1.3 论文研究内容论文的主要研究对象是在线考试系统的设计与实现,通过本系统可以有效地解决传统纸质考试的不足从而推动教育教学的变革,进而提高教师工作的效率。论文主要利用PHP语言和M
14、ySQL数据库技术为基础,采用Ajax技术开发一个能够满足实际考试需求的在线考试系统,考试系统的主要实现功能如下:(1)系统分学生和教师两级权限登录,教师并且充当管理人员角色;(2)系统可以根据管理人员设定的试题类型,试题分值以及试题难易程度和数目自动生成试卷,也可以人工根据设置进行组卷,还可以修改试卷;(3)系统可以自动实现对客观题的判断,并给出分数;(4)管理人员可以设置考生考试时间、二次登录,并且可以延长考试时间;(5)管理人员可以设置学生所属专业、班级和该学生是否能参加考试;(6)管理人员可以查看考生的考试状态以及查询考试成绩;(7)学生可以参加该课程考试和交卷,考试结束可以自动显示自
15、己成绩。1.4 论文组织结构本文从实际出发,说明了在线考试系统的设计思想和实现方案,并分析了系统中用到的具体技术,介绍了关键部分的实现过程。第一章 绪论。介绍了在线考试系统提出的背景,对国内外现状进行分析,介绍课题研究的主要内容。第二章 相关技术介绍。介绍了构建系统所需的相关技术。第三章 需求分析。详细分析系统需求并做出阐述。第四章 系统总体设计。根据需求分析对系统做出设计。第五章 系统实现。对系统的主要功能进行分步说明。第六章 总结与展望。总结全文并展望今后的主要研究工作。2 相关技术介绍2.1 PHP简介2.1.1 PHP概述PHP最早是由丹麦的拉斯姆斯勒多夫发明的,它主要用于动态网页的制
16、作,可以产生图形用户界面4。PHP应用广泛,这源于它能在大多数的网页服务器上执行,它需要嵌入在HTML语言中使用,所以和HTML代码一样,通过执行代码生成网页。另外一个值得说明的就是,他是完全免费的,并且还可以在目前市面大多数的操作系统和服务器上面运行,由于它是免费的,所以就需要有人去维护它的执行标准,这个任务由一些网络社区来维护5。PHP是一种非常好用的编程语言,它简单易学,与其他语言不相同的方面就是它融合了其他语言的一些优点和长处,博采众家之长,并且加入自己特有的元素,使得PHP语言不论是学习、应用还是在执行效果上都会给用户带来全新的体验。现在社会上流行的许多协同办公软件就是基于PHP开发
17、的,在软件开发的过程中可以插入许多插件,充分发挥其优势特性,给不管是开发人员还是用户都带来了极好的体验,在这个过程中可以充分体会到利用PHP开发的软件系统在运行和维护方面的便捷和高效。2.1.2 PHP特性PHP包含了多种语言的优点,采众家之长,才会使自己变得这样高效快捷。当我们需要重复使用某一个功能时,如果每次都重新编辑,会造成不必要的麻烦,但是如果封装起来,当使用的时候直接调用就方便多了,增加了代码的重复使用性。另外PHP是开放源码的,这样关于PHP的源码都可以找到,大大提高了学习者的学习效率,也给编程人员提供了范例的借鉴。由于他的跨平台性,它可以运行在市面上所存在的大部分操作系统和服务器
18、上。2.1.3 PHP应用及语法PHP是一个使用范围很广的语言,特别是在网页开发方面。总的来说,他的应用主要汇集在三个领域:服务器端脚本、命令行脚本和编写桌面应用程序。另外它的应用范围还可以增加到更加大的范围,诸如LDAP、IMAP、HTTP、SNMP等目前可见的绝大多数的协议的服务6。PHP与其他语言不同的一点就是PHP里面所有的变量名都必须以美元符号$开头,另外它的程序里面的单独一行的注释除去和C语言一样的之外还可以使用#来注释。2.2 MySQL数据库简介2.2.1 MySQL介绍MySQL在一些时候是免费的,它具有非常强大的功能,但是又有巧而精的系统结构7,我国现在最大的电商平台淘宝就
19、用是的MySQL数据库,这足以证明MySQL数据库的实用性及安全性有其它数据库无法比拟的特点。在WampServer里面集成的MySQL数据库,既有图形用户界面又可以使用数据库代码,可以使用户充分体验数据库使用快感,满足不同人群对它的需求,并且WampServer里面的数据库可以通过浏览器打开界面,并不用使用命令行或者安装专业的界面程序,任何时候只要开启服务器,就能从容打开数据库对其进行编辑和修改,这样使得数据库的安装和配置也变得极为简单,充分考虑到初学者对此一片茫然的心情,使得上手非常快,也极大地调动了初学者的学习热情。2.2.2 MySQL特性MySQL数据库在实用性和功能上面有许多特点,
20、为人们提供了很大的方便,这也是为什么一些大型后台数据管理都用MySQL数据库管理系统。MySQL的测试使用了许多编译器8,充分保证代码可以随便移植,并且MySQL为许多编程语言提供编程接口,在环境方面也没有过多的要求,基本上可以运行在当前流行的大多数操作系统上,在CPU资源利用上,MySQL又支持多线程编程,可以使CUP资源得到最大限度的应用,并且还提供其他数据库的连接方法9。2.2.3 MySQL应用管理与一些大的数据库相比,MySQL有它本身所含有的一些不足之处,但是使用和规模上的不足并不能阻止它的受欢程度,对于MySQL现有功能来说,它足以满足绝大部分中下企业和个人爱好者10。MySQL
21、数据库可以使用命令行工具进行操作,但是也可以使用图形用户界面,具有双重的管理操作11。2.3 WampServer简介2.3.1 WampServer介绍WampServer是由法国人开发的一个软件整合包,它把目前开发PHP所必须的几款软件整合到一块,Wamp就代表了这几款软件,他们分别是W表示的是这个整合软件包的运行环境,只能在Windows环境下运行,A表示Apache Web服务器,M表示MySQL数据库,P表示PHP解释器,并且还拥有图标、安装菜单以及环境配置,安装使用起来和一个软件差不多,从而可以直接安装,使开发人员可以直接使用,而不用再去担心环境配置的一列问题。还有令开发者兴奋的就
22、是这款软件对用户免费,只要下载安装就可以直接使用12。2.3.2 WampServer特点WampServer还拥有控制界面,利用控制界面可以轻松实现它的大部分功能,极大的给用户提供方便,并且系统管理界面还提供中英文切换,在使用方面更加注重用户体验,并且还设定有启动所有服务、停止所有服务等功能,更加方便了用户的使用。2.4 Zend Studio简介2.4.1 Zend Studio介绍Zend Studio是在PHP开发人员中使用范围最广也是最专业的一个集成开发环境,他可以安装许多插件,在使用上类似于Java开发使用的Eclipse,功能十分强大,一个软件基本满足了PHP开发过程中所有的代码
23、编写和调试工作,从而在一定程度上缩短了软件开发的时间,节约了一些不必要的费用,由于他的跨平台性能极好,也免去了开发软件与一些系统不兼容的烦恼13。2.4.2 Zend Studio特点Zend Studio不仅在功能上拥有让人垂涎欲滴的兴趣,在它的使用上,也非常注重用户体验,不仅可以自己设置软件界面的颜色,程序里面关键字和代码提示都非常灵敏,大大加快了程序编写的速度,他还有内置的调试器,通过它可以配置本地或者远程调试器,为程序的编写和维护提供了方便。2.5 Ajax介绍2.5.1 Ajax技术核心传统的Web应用程序的工作流程大体为“提交响应等待刷新”,具体的实现步骤如下:(1)用户触发HTT
24、P请求,客户端提交请求;(2)服务器接收并处理请求;(3)客户端等待页面刷新;(4)服务器端返回处理结果;(5)客户端页面刷新14。从中我们可以看出,只要页面有少许变化,就需要重新载入,这大大增加了服务器的工作量,使响应及其缓慢。若发送的请求和接收的响应只包含需要的数据,这将大大减轻服务器与客户端的通信量,增加交互的响应速,。通过Ajax我们可以满足这个要求。Ajax是几种技术的组合体,其中含有JavaScript和XML,还有DOM,CSS等。这些没有使用顺序的限制,只是松散地组合在一起,这些技术具体如下:(1)使用XHTML和CSS标准构建标准化Web页面;(2)使用XML和XSLT操作数
25、据;(3)使用DOM(文件对象模型)动态控制页面元素,以便交互;(4)使用XMLHTTPRequest15与服务器实行异步通信;(5)使用JavaScript将上面提到的技术组合在一起,一起处理这些数据。2.5.2 Ajax原理Ajax的工作原理就类似于在用户和电脑中间多了一个环节,导致用户操作和服务器响应不同步进行16。这就相当于客户端替代服务器处理了部分功能,这样不但减轻了服务器处理数据的压力同时也充分利用了客户端的空闲时间,即节省了内存也增加了使用效率。3 系统需求分析3.1 系统功能需求系统主要实现两个大的模块内容:考生模块和管理人员模块。其中考生方面主要是考生的登录及考试、交卷功能,
26、另外就是管理人员模块,管理人员对学生和试题进行增、删、改、查等管理,是本系统能够运行的基础。本论文所设计系统主要利用PHP语言和MySQL数据库技术为基础,采用Ajax技术开发一个能够满足实际考试需求的在线考试系统。(1)登录功能登录功能包括:考生登录和管理人员登录,管理员和教师一起用一个登录窗口,统称为管理人员。考生登录时,系统需要识别考生参加考试课程、用户姓名、密码以及考试登录时间,保存管理人员信息。(2)课程管理功能课程管理功能包括:课程的增删改以及设置、删除考试课程,设置课程考试开始和结束的时间,设置考试课程状态。管理课程时,系统需要保存课程名称、考试课程名称、考试课程考试时间、考试课
27、程的状态。(3)题库管理功能题库管理功能包括:试题的增删改查。管理题库时,系统需要保存试题的描述、试题选项、试题答案。(4)学生管理功能学生管理功能包括:专业、班级以及学生信息的增删改,设置、删除考试的学生。管理学生时,系统要保存专业信息、班级信息、学生信息、参加考试的课程信息。(5)试卷管理功能试卷管理功能包括:试卷结构的设置、修改、自动组卷、人工组卷、查看、修改试卷。管理试卷时,系统需要保存试卷结构,试卷包含的题目。试卷结构包括试卷类型,每个类型包含试题数目、试题分数。(6)考试管理功能考试管理功能包括:设置考生登录密码和二次登录密码、设置考生延迟时间、自动批卷、查询交卷和未交卷考生、查询
28、考生分数。管理考试时,系统需要保存考生登录密码、二次登录密码、交卷信息、考生分数。3.2 系统用户分析系统用户主要是系统管理员、教师和学生。系统管理员功能设置如图3-1所示,主要有设置教师权限,并且可以设置系统所有功能的权限。教师主要功能如图3-2所示,主要有登录,考试设置,试题添加、修改,组卷,成绩查询,查看未交卷学生,班级、学生设置。学生主要功能如图3-3所示,主要有登录、在线考试、交卷。图3-1 管理员功能示意图图3-2 教师功能示意图图3-3 学生功能示意图3.3 系统环境要求本考试系统在登录系统的时候需要通过浏览器,不论是局域网还是外部网络都可以登录,但是系统需要部署在学校内部服务器
29、上,以便于学校管理人员对系统的日常维护,教师可通过登录校园网对系统进行维护和设置考试内容等操作,学生则通过局域网或者互联网使用浏览器进行登录考试,由于考试系统同一时间使用人很多,所以对系统稳定性和网络带宽有一定要求。本考试系统设置运行在Windows Server 2003操作系统,搭载Apache服务器,利用PHP编写指令与MySQL实现数据库存取。(1) 服务器端操作系统:Windows Server 2003服务器:Apache 2.4.9PHP软件:PHP 5.5.12数据库:MySQL 5.6.17开发工具:Zend Studio浏览器:IE7.0及以上版本分辨率:最佳效果是1024
30、*768(2) 客户端浏览器:IE7.0及以上版本分辨率:最佳效果是1024*7684 系统总体设计4.1 功能设计根据系统的功能概述,系统需要具有课程管理,学生管理,题库管理,试卷管理,考试管理以及试卷管理等功能。4.1.1 登录4.1.1.1 功能描述(1)考生登录时需要选择考试课程、输入学号和密码;(2)考生密码需由管理人员统一设置;(3)管理人员与考生的登录界面不同。4.1.1.2 功能设计考生登录的界面为start.php,管理人员登录的界面为teacherstart.php。考生登录时,使用Sajax来实现,因此,需要包含Sajax.php,并且需要调用函数sajax_init()
31、、sajax_export()、sajax_handle_client_request()。系统大多数功能使用Sajax技术来实现。考生登录触发函数为logon_user(),通过该函数获取考生输入信息,并通过x_logon_user_exist()提交到服务器,函数check()处理服务器返回结果,如果考生信息正确,将转到index.php页面,否则显示错误信息。管理员“登录”按钮的触发函数为logon_manager()。该函数获取管理人员信息,并通过x_logon_manager_extst()提交到服务器。函数check()处理服务器的返回结果,如果管理人员信息正确,将转到man_in
32、dex.php,否则显示错误信息。4.1.2 课程管理4.1.2.1 功能描述(1)管理人员可以添加或删除考试;(2)管理人员可以设置考试课程,考试课程只能从已经添加的课程中选择;(3)管理人员可以设置考试课程的考试开始和结束时间,考试时间只能是未来时间,不能为过去时间;(4)设置考试课程的考试状态,即该课程是否允许考生参加该课程的考试。4.1.2.2 功能设计在设置考试时间页面,当文本框内容发生变化时,onchange响应函数会对文本框内容进行检查。GetTimeTest()检查输入内容是否符合日期和时间格式,GetNum()函数检查输入内容是否为数字,提交按钮的响应函数为SetExamTi
33、me(),该函数把输入内容提交给服务器。该函数实现流程如图4-1所示:图4-1 SetExamTime()函实现流程示意图4.1.3 题库管理4.1.3.1 功能描述(1)管理人员可以选择试题类型;(2)老师可以输入试题,输入时需要试题的详细信息;(3)老师可以修改和删除试题。4.1.3.1 功能设计(1)试题录入界面采用Sajax实现,客户端的下拉框的响应事件的响应函数为select_ttype(),通过这个函数显示指定题型的录入界面。“提交”按钮的响应函数为SubmitTimu()。服务器函数InsertTiMu()返回数据,由函数dis_result()处理。试题插入数据库流程如图4-2
34、所示:图4-2 试题插入数据库流程示意图(2)修改试题界面由文件modifytest,php来实现,该文件显示所有题型,界面中的题型下拉列表框onchange事件响应函数为select_ttype(),该函数显示指定类型的所有试题。DisplayTimu4Modify()函数显示指定类型的试题。修改窗口由文件updateTimu.php来实现。服务器端函数updateTiMu()用于更新试题,返回信息则由函数dis_resylt()处理。4.1.4 学生管理4.1.4.1 功能描述(1)为了方便管理考生,需要建立考生的专业。因此,管理人员可以新建、修改、删除专业;(2)管理人员可以建立考生的班
35、级,管理人员可以修改、删除班级;(3)管理人员对指定专业和班级的学生进行添加、修改和删除操作;(4)管理人员可以决定参加考试的学生,系统没有设置参加考试则该学生不能参加本科目考试。4.1.4.2 功能设计(1)设置专业由setmajor.php文件来实现。“设置”按钮的点击事件响应函数为Set_Major(),“删除”按钮的点击事件响应函数为Del_Major(),Dis_Major()函数把选中的专业名称显示在文本框内。服务器提供一个设置专业的函数Insert_Class(),该函数实现流程如图4-3所示:图4-3 Insert_Major()函数实现流程示意图(2)设置班级由文件setcl
36、ass.php文件来实现,界面中下拉列表框的响应函数为select_major(),调用服务器函数Dis_Class()显示指定专业的所有班级。“设置”按钮的响应函数为Set_Class(),“删除”按钮的响应函数为Del_Class()。(3)在设置学生页面,添加按钮的单击事件响应函数为insertstudent(),该函数用来检查管理人员输入学生信息是否合法,并向数据库添加学生信息,表student用来存放学生信息。4.1.5 试卷管理4.1.5.1 功能描述(1)管理人员可以设置试卷结构,题目类型包含单项选择题、多项选择题和填空题。管理人员设置试卷结构包含题目类型、题目数量和分数;(2)
37、系统具有自动组卷和人工组卷两种组卷方法;(3)系统允许管理人员查看试卷;(4)系统还设置了修改试卷功能,试卷结构修改以后,管理人员需要重新组卷。4.1.5.2 功能设计(1)设置试卷结构由文件settestpaper.php来实现,在设置试卷过程中,每种试题类型都属于一个表单,每个表单拥有三个文档,分别接受试题难度、总分值、数目的输入,名称均为“man”加上试题类型序号。如果单项选择题的类型序号为1,则设置单选题文本框的名称为“man1”。这样方便获取文本框内容。设置好以后,需要提交试卷结构由服务器处理,提交试卷以后,服务器会根据你所设置的试卷进行流程的运行,具体流程运行如图4-4所示。提交以
38、后,服务器经过处理验证需要保存,保存的时候同样需要进行判断并执行插入数据库语句。(2)组卷界面由文件zj.php来实现,该界面含有四层标记。 timu_ttype层:显示试题选择项;timu层:显示试题;timu_content:显示服务器返回信息。界面存在三个单选按钮,分别拥有相同的单击事件ZJ(),这三个单选按钮分别表示人工组卷值为1;自动组卷值为2;修改试卷值为3。(3)修改试卷界面左侧列表框的ID为selectTest,显示所有指定题型的试题,右侧列表框的ID为selectTest1,显示试卷中指定题型的试题。单击任何一个列表框,可以在其中看到相应的试题内容。selectTest列表框
39、的onchange和按钮的onclick事件所对应的函数为Display_TiMu(selectTest),该函数显示指定试题的描述、选择项和结果。对应按钮=和和=ALL,SelectFirstAll(),该函数把firstobj列表框中的所有选项加入secondobj列表框。图4-4 提交试卷结构流程示意图4.1.6 考试管理4.1.6.1 功能设计(1)考生可以在考试开始时间前半小时内登录,但是不能进行答题,这时会显示考试介绍,考试时间到了以后,考生才可以进行考试;(2)管理人员可以查询成绩;(3)如果考试过程因为停电或电脑卡等不可抗因素导致考试中断,这时需要重新登录考试,但是需要二次登录
40、密码,此密码由教师设置,并告知考生;(4)系统允许考生提前交卷;(5)考试结束时,系统提交试卷;(6)考试结束时,系统自动批改试卷,并显示分数;(7)管理人员可以设置考生的延迟时间;(8)管理人员可以查看交卷和未交卷学生信息。4.1.6.2 功能设计(1)考生信息保存在Session变量中,系统通过getpar()来获取这些值,在考生进入考试界面中时,系统就要调用getpar()获取考生信息并显示,获取考试参数和设置定时器由客户端函数init()来完成,设置考试参数则由SetParament()完成。(2)获取试卷由函数maketestpaper()来完成,步骤如图4-5所示:图4-5 获取试
41、卷流程示意图4.2 数据库设计4.2.1 关系设计系统拥有学生、管理人员、题库、试卷结构、专业、班级、考生、试卷、试题类型等实体,这些实体都拥有自己特有的属性,他们通过一些字段相互联系,该系统数据库中,他们之间的关系如图4-6数据库表关系E-R图。图4-6 数据库表关系E-R图4.2.2 表设计系统需要保存许多的考试信息,试卷信息,这样就需要建立后台的数据库系统,而数据库又是由数据表组成的。(1)专业信息表majorinfo如表4-1所示,用来保存学生所属专业的基本信息。表4-1 专业信息表majorinfo序号字段名称数据类型说明1ID自动编号专业序号2MajorName文本专业名称(2)班
42、级信息表class如表4-2所示,用来保存学生所属班级的基本信息。表4-2 班级信息表class序号字段名称数据类型说明1ID自动编号班级序号2ClassName文本班级名称3Major数值班级所属专业 (3)学生信息表student如表4-3所示,用来保存响应学生的基本信息,通过这些信息,可以明确显示学生的专业班级等。 表4-3学生信息表student序号字段名称数据类型说明1ID自动编号学生序号2Name文本学生姓名3Sex文本性别4XH文本学号5ClassID数值班级序号6MajorID数值专业序号7pwd文本密码 (4)考生信息表studentexaminfo如表4-4所示,用来保存参
43、加考试学生序号、参加考试课程、考试时间以及分数等信息。表4-4 考生信息表studentexaminfo序号字段名称数据类型说明1ID自动编号考生序号2StudentID数值学生序号3ExamCourse数值考试课程序号4Score数值考生分数5StartTime日期时间考试开始时间6EndTime日期时间考试结束时间7IsEndExam数值考试结束标志8SecondPwd文本二次登录密码9IsExam数值是否登录(5)考生答案信息表studentanswer如表4-5所示,用来保存学生考试时所答题目的答案,系统会自动刷新,实时保存,因此考试过程中,该表存取会非常频繁。表4-5 考生答案信息表
44、studentanswer 序号字段名称数据类型说明1ID自动编号班级序号2StudentID文本班级名称3CourseID数值班级所属专业4TiMuID数值题目序号5Answer文本答案 (6)试卷结构信息表testpaper如表4-6所示,是用来保存组卷以后的试卷信息,在这里显示了各个类型试题的数目、分值等信息,通过这个表,可以清晰的看出每份试卷的基本信息,可以认识到本次考试的试题难度,以及考试大概需要的时间。表4-6 试卷结构信息表testpaper序号字段名称数据类型说明1ID自动编号序号2CourseID数值课程序号3TType数值试题类型序号4Score数值该类型试题分值5Num数
45、值该类型试题数目6Level数值试题难度7Chapter文本试题所属章节 (7)试卷信息表testpapercontent如表4-7所示,是用来存储管理人员组卷以后形成的完整试卷,相当于是完整的考试试卷存储,显示了本次考试试卷的详细信息,明确显示了试卷的试题类型及详细试题描述。表4-7 试卷信息表testpapercontent序号字段名称数据类型说明1ID自动编号试题序号2CourseID数值课程序号3TType数值试题类型序号4Score数值该题分值5TiMuID数值该题序号 (8)题库信息表tiku如表4-8所示,用来保存试题信息,如果是选择题Selection_num表示最多可以输入6个选项,如果是填空题Selection_num表示每题填空项数目。表4-8 题库信息表tiku序号字段名称数据类型说明1ID自动编号试题序号2CourseID数值课程序号3TMTType数值试题类型序号4Chapter文本试题所属章节5