收藏 分享(赏)

基于PHP的网上学校系统的开发-计算机科学与技术毕业设计.doc

上传人:为人民服务 文档编号:2369312 上传时间:2018-09-13 格式:DOC 页数:29 大小:746.50KB
下载 相关 举报
基于PHP的网上学校系统的开发-计算机科学与技术毕业设计.doc_第1页
第1页 / 共29页
基于PHP的网上学校系统的开发-计算机科学与技术毕业设计.doc_第2页
第2页 / 共29页
基于PHP的网上学校系统的开发-计算机科学与技术毕业设计.doc_第3页
第3页 / 共29页
基于PHP的网上学校系统的开发-计算机科学与技术毕业设计.doc_第4页
第4页 / 共29页
基于PHP的网上学校系统的开发-计算机科学与技术毕业设计.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、摘 要 IIAbstract III1 绪论 12 系统分析 32.1 可行性分析 32.2 需求分析 32.3 开发环境 43 设计工具介绍 53.1 APACHE 简介 53.2 PHP 语言简介 53.3 PHP 连接 MySQL 数据库 63.4 Ajax 简介 74 系统设计 84.1 系统目标 84.2 系统结构 84.3 数据库设计 104.4 总体框架设计 124.5 公共模块设计 154.6 登录模块 164.7 在线考试模块 174.8 查询模块 204.9 考试倒计时模块 215 总结与展望 22参考文献 23致 谢 24摘 要而 Web Server 与数据库和应用服务

2、器的紧密结合,使得这个系统便于网上查询。更重要的是它的便于扩充应用、升级维护简便,使得这种模式的应用范围不断扩大很多部门的业务系统、企业的 MIS 系统纷纷采用这种模式。另外,考试系统的软件也必将不断的更新;同时软件产品本身就要经过一个不断自我完善的过程。基于上述考虑,用 Browser/Web 模式来设计考试系统比较合适。本文是基于 PHP 和 MySQL,为了配合网上教学建立的“网上考试系统”,实现网上学习一体化而设计的。设计本系统要熟悉 HTML,PHP 语言及 MySQL 数据库的编辑和应用。其中用到了 Dreamweaver 帮助进行站点和网页设计,还用到了 phpmyadmin 对

3、 MySQL 数据库进行可视化操作 1。全文共分为绪论、系统分析、工具简介、系统设计、 总结展望、参考文献。详细阐述了系统分析、系统设计的方法及其内容,对 PHP 语言的使用介绍得比较多,附上关键代码,方便读者理解。关键词:AbstractMaking this system online inquiry convenient. More importantly, it is easy to expand application, upgrade convenient maintenance, making its application scope expands unceasingly,

4、many departments of the banking system, enterprise MIS system are using this model. In addition, the test system software will constantly update; Meanwhile software product itself would be passing a constant self-improvement. Based on the above consideration, choose Browser/Web model to design this

5、system is more appropriate.To matching the online teaching and realzing the online learning integration,this “online examination system“, which is based on the PHP and MySQL, was set up . Design the system must be familiar with the HTML, PHP language and MySQL database editors and applications. In t

6、he webpages and sites design, Dreamwaver , a visualization web design tool, helped a lot. And in the design of database, phpmyadmin, a MySQL database front desk tools which is based on PHP, helped a lot.This paper is divided into 6 chapters: system analysis, system overview, design process, the user

7、 instructions, closing and references. The main section was on the system analysis and system design. In order to make readers a better understanding, the article introduced a lot about the grammar of PHP language, attaching all the codes.Key Word: Browser/Web model, Online examination system, PHP,

8、MySQL database 1 绪论诞生于本世纪中叶的计算机科学较之其他现代科学技术的发展更迅速,在新世纪,它几乎可以称为“知识爆炸”了。21 世纪是知识经济和信息的时代,信息技术的发展水平、运用水平和教育水平已经成为衡量社会进步的重要标志。面对挑战与机遇并存的发展形势,世界范围内的多层次、多侧面的计算机教育热潮正在蓬勃掀起。随着技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了教学,通过计算机实现异地教育和培训。现在,计算机硬件技术的发展已经达到了相当高的水平。但是,教学软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到教学当中去,这就

9、给软件设计人员提出了更高的设计要求。根据 2011 年国家统计局今日发布的 2010 年国民经济和社会发展统计公报显示,2010年中国互联网上网人数 4.57 亿人,其中宽带上网人数 4.50 亿人,互联网普及率达到34.3%。现今在网络上就出现了各式各样的网上教学,有学就有考,以验证所学,所以网上教学就不能脱离网上考试。教学包括很多环节,例如教学系统、答疑系统和考试系统等等。其中很重要的一个环节就是网上考试系统,同时它也是最难实现的环节。在我国,虽然教学已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、

10、人工阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,应用不断扩大,如教学和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行网上考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。网上考试是现阶段研究开发的一个热点。它是建立在国际互联网上的应用系统

11、,客户端的配置可以极为简单,使考试不受地域的局限。一个完备的网上考试系统可以使用户在网上学习过后及时检验自己的学习效果,已发现自己的不足,使得学习效率得到很大提高。网上考试系统中题目的生成、试卷的提交、成绩的批阅等都可以在上自动完成。只要形成一套成熟的题库就可以实现考试的自动化。这样一来,教师所要做的只是精心设计题目、维护题库,而不是组织考试,从而大大减轻了教师的负担,这表明其经济性是相当可观的。为了适应新形势的发展,我进行了这一系统的初步设计工作,也可以说是做一个初步的探索,希望它能够在各类考试中发挥高效、便捷的作用,把老师从繁重的工作中解脱出来!21 世纪 Internet 在中国迅猛发展

12、,计算机也越来越多地走进人们的家庭和生活。现在人们可以在家里做到一些原来不可能做到的事情,如:在家阅读北京图书馆的书、看意大利时装展等。还有聊天、购物、新闻、教学等都已经逐渐网络化了。既然有了网上教学也就得有网上考试,就像学校里一样有教学就得有考试,网上教学也得通过网上考试的验证来体现教学效果。因此我们做了这个考试系统的设计与开发。原有考试系统的缺点是维护、升级较麻烦,近几年伴随 Internet 迅速发展起来的一种技术与客户/服务器方式类似,客户端是一个标准的浏览器,服务器端是 Web Server,而Web Server 与数据库和应用服务器的紧密结合,使得这种模式的应用范围不断扩大,它已

13、不仅仅用于网上查询,有很多部门的业务系统、企业的 MIS 系统纷纷采用这种模式,它的主要优点是便于扩充应用、升级维护简便。另外,考试系统的软件也必将不断的更新;同时软件产品本身就要经过一个不断自我完善的过程。基于上述考虑,用 Browser/Web 模式来设计考试系统比较合适,服务器端我们采用MySQL 数据库系统和 Apache 来构成考试的应用服务系统;客户端采用浏览器来完成考试全过程,同时可进行远程系统维护和管理 2。利用和数据库技术,结合目前硬件价格普遍下跌与宽带网大力建设的有利优势,应用PHP 技术,我开发了基于 B/S 模式多用户网上考试系统这一程序。它运用方便、操作简单,效率很高

14、(同时,它要求计算机配置也很高,尤其是服务器端)。现阶段虽只实现了试卷的客观题部分,但已具有多用户同时网上考试、动态出题、时间控制、自动判卷,试题录入、修改题库、课程管理、消息发布等重要功能,也就是说实现了真正的无纸化考试,满足任何授权的考生随时随地考试并迅速获得成绩,同时也大大减轻了教师出题、出题和判卷等繁重的工作量。2 系统分析随着计算机网络技术,特别是 Internet 技术的发展和普及,对现代教育模式产生了巨大影响,网络学校应运而生。教学模式发生变化,学习效果的测试方式:考试手段也发生变化,网络考试系统正是在这种环境下产生的。基于 web 技术的网络考试系统可以借助于遍布全球的 Int

15、ernet 进行,因此,网络考试不仅可以在本地进行也可以在异地进行,考试形式更加灵活。2.1 可行性分析定期组织考试时及时掌握学生学习情况的有效方式,利用网络考试系统,一方面可以节省人力资源,降低考试成本,另一方面,网上考试系统能够快速进行考试和评分,很好的保证了考试的客观性与公正性。 3由于时间、资源、人员的限制,还存在着一些问题,但是也有其优点:) 界面清晰,用户易接受和使用;) 该系统安全、稳定,硬件需求较低;) 各项功能强大,数据库更新、查询、系统帮助等;) 系统开发成本低,风险小,效益高;2.2 需 求 分 析随着计算机技术的日益发展和网络技术的日益成熟,通过网络进行信息交流已经成为

16、一种快捷的交互方式。在这种网络环境下,通过建立网络考试系统可以降低管理成本减少人力物力资源的投入,从而为学生提供更全面,更灵活的服务,并全面、准确地对考试进行跟踪和评价。管理员能够根据学习情况随时调整考试模式,提高考试效率。 4功能需求的任务是弄清用户对目标系统数据处理功能提出的要求,根据地系统目标和数据需求并与用户充分讨论后做出归纳,本系统的功能需求可归纳为:) 学习计划。年初管理员拟定全局学习计划,采用学分制,有必修课、自选课,年中对学习计划可以进行调整。) 试题库管理。涵盖所有基础试题库的管理,包括试题录入、导入、试题维护等功能,各试题还可分类管理,即各部门根据职责分工负责试题库建立及相

17、应试题的录入,试题库应及时更新,以确保系统随机出题的质量,同时,除可自动生成试卷外,系统应具备人为出试卷的功能。) 题型设置。包括多种题型,单选,多选,判断等。管理员可以设置整张试卷的题型比例,同时可选择考试的部门或者人员。) 试卷自动生成。系统根据提醒设置随机抽取题目自动生成试卷。) 考试通知。试卷、考试时间、考试对象等通过管理员同意之后,将考试通知发布到首页。) 考试与阅卷。自动阅卷,提交之后马上出成绩。另外在规定期限内,若用户对考试成绩不满意可以选择多次考试,最终按最高分录入,但每次考试成绩都有记录。) 考试成绩与学分排行。按照学习和考试情况统计结果,选出学习标兵或者学习积极分子等。)

18、考试成绩统计与分析等。根据需要对考试情况进行综合查询和统计。2.3 开发环境Apache 是目前应用最广的 Web 服务器;PHP 是一种类似 ASP 的服务器端脚本语言,而MySQL 是一个小巧的数据库系统软件,它们特别适用于网站建设。Apache+PHP+MySQL 不仅仅是开源项目,可免费获取,而且它支持 Linux、UNIX、OS/2 和 Windows 多个操作系统,可移植性好。因此,这种组合是设计动态网站的最佳解决方案。 5)硬件需求:计算机(win7 系统)软件需求:() () 服务器端开发环境:xampp-win32-v1.7.3-joomlagate(Apache 2.2.1

19、4+PHP 5.3.1+ MySQL 5.1.41+ phpMyAdmin 3.2.4)3 设计工具介绍3.1 Apache 简介Apache 是世界使用排名第一的 Web 服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。Apache web 服务器软件拥有以下特性:1) 支持最新的 HTTP/1.1 通信协议2) 拥有简单而强有力的基于文件的配置过程3) 支持通用网关接口4) 支持基于 IP 和基于域名的虚拟主机5) 支持多种方式的 HTTP 认证6) 集成 Perl 处理模块7) 集成代理服务器模块8) 支持实时

20、监视服务器状态和定制服务器日志9) 支持服务器端包含指令(SSI)10) 支持安全 Socket 层(SSL)11) 提供用户会话过程的跟踪12) 支持 FastCGI13) 通过第三方模块可以支持 Java ServletsPHP 是英文超级文本预处理语言 Hypertext Preprocessor 的缩写,它是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入 HTML 文档的脚本语言,P HP 独 特 的 语 法 混 合 了C、 Java、 Perl 以 及 PHP 自 创 新 的 语 法 。 它 可 以 比 CGI 或 者 Perl 更 快 速 的 执 行 动 态网 页 。用

21、PHP 做 出 的 动 态 页 面 与 其 他 的 编 程 语 言 相 比 , PHP 是 将 程 序 嵌 入 到 HTML 文 档 中 去执 行 , 执 行 效 率 比 完 全 生 成 HTML 标 记 的 CGI 要 高 许 多 ; PHP 还 可 以 执 行 编 译 后 代 码 , 编译 可 以 达 到 加 密 和 优 化 代 码 运 行 , 使 代 码 运 行 更 快 。 PHP 具 有 非 常 强 大 的 功 能 , 所 有 的CGI 的 功 能 PHP 都 能 实 现 , 而 且 支 持 几 乎 所 有 流 行 的 数 据 库 以 及 操 作 系 统 。 7以下罗列了 PHP 所具

22、有的一些特点:) 开放的源代码。所有的 PHP 源代码事实上都可以得到。 ) PHP 是免费的。和其它技术相比,PHP 本身免费。) php 的快捷性。程序开发快,运行快,技术本身容易学习,上手快。嵌入 HTML:因为 PHP 可以嵌入 HTML 语言,它相对于其他语言,编辑简单,实用性强,更适合初学者。 ) 跨平台性强。由于 PHP 是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS 下。 ) 效率高。PHP 消耗相当少的系统资源。) 图像处理。用 PHP 动态创建图像 ) 面向对象。在 php5 中,面向对象方面都有了很大的改进,现在 php 完全可以用来开发大型商业程

23、序。) 专业专注。PHP 支持脚本语言为主,同为 类 C 语言。3.3 PHP 连接 MySQL 数据库PHP 连接数据库有两种方法: 81) 通过 mysql 库和 mysqli 库函数连接。这种方法是 PHP 连接 MySQL 最常用的方法,无论从易用性和效率上都比用 ODBC 接口连接好。Php 存取 mysql 数据库的四个步骤是:(1) 建立连接:mysql_connect();(2) 操纵数据库:mysql_select_db();返回布尔型数据值(3) 操纵数据库中的数据:mysql_query();(4) 关闭连接:mysql_close();2) 通过 ODBC 接口连接。开

24、放式数据库互联(open database connectivity,ODBC)是Microsoft 引进的一种早期数据库接口技术。Microsoft 引进这种技术的一个主要原因是,以非语言专用的方式,提供给程序员一种访问数据库内容的简单方法。PHP 通过 ODBC 不仅可以连接 MySQL 数据库,而且还可以连接 Oracle、Sybase、Informix 和 SQL Server 等。无论是使用 mysql/mysqli 库函数还是使用 ODBC 接口连接,PHP 对 MySQL 数据库的连接方式都有两种。分别是永久连接和非永久连接方式。1) 永久连接方式:它的最大的优点是效率比非永久连

25、接方式高,当客户端对 MySQL 服务器的连接请求非常频繁时,永久连接将更加高效。它使得每个子过程在其生命周期中只做一次连接操作,而非每次在处理一个页面时都要向 MySQL 服务器提出连接请求。即每个子过程将对服务器建立各自独立的永久连接。2) 非永久连接方式:即短连接方式。当客户端向 Web 服务器请求网页时,服务器处理这个请求,并将所请求的网页发送给浏览器,然后连接就被断开,直到浏览器发出下一个请求。对于大部分网站通常都使用这种连接方式,它虽然没有永久连接方式的效率高,但是可有效避免永久连接所带来的问题和提高服务器承载能力。3.4 Ajax 简介 AJAX 不是一种新的编程语言,而是一种用

26、于创建更好更快以及交互性更强的 Web 应用程序的技术。 9通过 AJAX, JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象,JavaScript 可在不重载页面的情况与 Web 服务器交换数据。AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。 Web 应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。 AJAX 是一种独立于 Web 服务器软件的浏览器技术。可使因特网应用程序更小、更快,更友好

27、。主要包含的技术) web 标准(standards-based presentation)XHTML+CSS 的表示; ) 使用 DOM(Document Object Model)进行动态显示及交互; ) 使用 XML 和 XSLT 进行数据交换及相关操作; ) 使用 XMLHttpRequest 进行异步数据查询、检索; ) 使用 JavaScript 将所有的东西绑定在一起。系统设计系统结构设计是系统开发的又一重要步骤,是系统分析之后对整个系统结构进行规划。它包括数据库的设计和应用程序设计。4.1 系统目标根据系统的功能要求,网络考试系统中涉及两种不同的用户:考试用户、管理员,他们的职

28、能各不相同。考试用户进入网络考试系统,可以按照学习通知完成选课,查询考试通知,查询个人考试成绩,修改密码,在线考试。管理员能够发布学习通知,发布考试通知,设置考试时长,考试时段,考试题型比例,进行试题库维护,包括删除,添加,及时更新,按不同条件查询考生的成绩并进行分析统计。所有数据都存储在服务器的数据库中,具体应达到以下目标: 101) 采用开放、动态的系统框架,加强用户与网站的交互性。2) 具有空间性。被授权的用户可以在异地登陆考试系统,无须到指定地点进行考试。3) 操作简单方便,界面简洁美观。4) 系统提供考试倒计时功能,使考生了解考试剩余时间。5) 随机抽取试题。6) 实现自动提交试卷的

29、功能。当考试时间到达规定时间,如果考生还未提交试卷,系统将自动交卷,以保证考试严肃、公正地进行。7) 系统自动阅卷,保证成绩的真实准确。8) 考生可以查询自己的考试成绩。4.2 系统结构网络考试系统的考生用户和管理员分别为前台用户和后台用户,他们的功能职责不同,其功能结构图如图.1 所示。1)考生功能参加考试:选择考试课程之后,考试开始并计时,手动和自动提交试卷,自动阅卷。查询成绩:考生可以查询本人的成绩信息。修改密码:考生修改自己的密码。学习通知:考生可以查看管理员发布的选课要求和考试通知。2)管理员功能发布通知:管理员进入发布通知页面,发布选课通知和考试通知。考试管理:添加、修改考试科目;

30、修改试卷的题型比例;修改考试部门,确定考试日期和考试时长。题库管理:及时对题库进行更新,删除旧的题目,插入新的题目等。成绩查询:管理员可以查看权限范围内所有用户的成绩信息,并可以对所有信息进行分析统计。图 4.1 网络考试系统功能结构图网络考试系统的网站流程图如图 4.2 所示:图 4.2 网络考试系统流程图用户进入登陆界面,确定登录用户为系统有效用户之后,根据用户类型跳转至不同的功能导航页面。其中考试用户主要实现考试功能:考试之前考生首先选择参加考试的科目;确定之后,系统自动弹出试卷,考生开始考试,同时系统开始计时;当考生完成考试选择提交试卷,或者规定时间到系统自动提交试卷;试卷提交以后系统

31、自动阅卷并显示考试成绩。管理员主要实现成绩查询功能:首先管理员要确定查询条件,比如考试科目,考试成绩,考生部门等;系统根据查询条件以列表方式显示查询结果,并自动进行相关分析。4.3 数据库设计数据库设计的任务是确定系统所需的数据库,数据库顾名思义是保存数据的地方,它的价值在于它能够向用户提供有意义的信息,还有向系统供应所需的一切数据。在 MySQL 数据库系统中建立一个名为 snet 的数据库,存放考试系统中与用户,课程,考试题目,考试成绩相关的数据。该数据库包含以下数据表:1)officer 表officer 表存储海事局职员用户的基本信息。表结构如表 4.1 所示,主键为o_num。o_t

32、ype 的值为 user 和 admin 两种,默认值 user 表示一般用户,管理员的用户类型值为 admin。登陆时初始用户名为职工编号 o_num,密码 password 的初始值与 o_num 相同。表 4.1 officer 表结构字段 类型 是否 NULL 附加属性 含义o_num Int(6) NOT NULL KEY 职工编号o_name Varchar(20) NOT NULL 职工姓名password Varchar(45) NOT NULL 用户密码department Varchar(30) NOT NULL 职工所在部门o_type Char(10) NOT NULL

33、 默认 user 类型 用户类型本表格相关内容管理员拥有全部权限,所有数据全部由管理员录入、删除、更改等,用户只能更改个人的用户密码,以增强系统的稳定性和安全性。表中还可以存储用户的其他信息,比如联系方式、职称级别、性别、生日、身份证号码、年龄、用户组、备注信息等,考试系统实现中没有使用到相关信息,故未详细列出,完成网络学校系统时再将其添加上。2)course 表课程信息表结构如表 4.2 所示,主键为 c_num。Course 表存储所有需要学习的课程的基本信息。管理员可以根据拟定的学习计划添加和修改课程信息,对于考试用户,参加考试时要选择参加考试的课程。系统扩展的话还可以实现选课功能。若要

34、实选课,则是从 course 表中得到 select 选项,然后从下拉菜单中进项选择并计算学分,评判是否达到学分要求。表 4.2 course 表结构类型 是否 NULL 附加属性 含义c_num Int(6) NOT NULL KEY 课程编号c_name Varchar(20) NOT NULL 课程名称credit Int(2) NOT NULL 课程学分type char(4) NOT NULL 课程类型3)result 表Result 表存储考试结果的相关信息,表结构如表 4.3 所示,其中 result_id 为主键。表 4.3 result 表结构字段 类型 是否 NULL 附加

35、属性 含义result_id Int(6) NOT NULLkey, auto_increment考试结果编号o_num Int(6) NOT NULL 职工编号c_name varchar(20) NOT NULL 课程名称score Int(3) NOT NULL 考试成绩res_date datetime NOT NULL 考试时间考试结果表为考试结束,自动阅卷之后成绩自动录入,管理员和考试用户都可以对result 表进行查询,但是因为权限不同,不同用户组权限级别不同,权限允许的前提下,可以对成绩进行查询并分析。4)tiku 表tiku 表存储考试结果的相关信息,表结构如表 4.4 所示

36、,其中 kt_id 为主键表 4.4 tiku 表结构字段 类型 是否 NULL 附加属性 含义dx_id Int(6) NOT NULLKey, auto_increment单选题编号c_name Varchar(20) NOT NULL 课程名称timu text NOT NULL 题目内容options varchar(100) NOT NULL 选项ans varchar(100) NOT NULL 正确答案fenzhi int(4) NOT NULL 默认:2 每题分值实现自动阅卷时只需,创建一个数组存放考生提交的答案,将考生答案和正确答案进行比对,计算最终得分时只需将每道题的分值累

37、加即可。5)notice 表notice 表存储学习计划和考试通知的相关信息,表结构如表 4.5 所示,其中 id 为主键,且定义其 id 号自动增长。表 4.5 notice 表结构字段 类型 是否 NULL 附加属性 含义id Int(6) NOT NULLKEY,auto_increment通知编号title Varchar(20) NOT NULL 通知主题details text NOT NULL 通知内容dates date NOT NULL 发布日期设计网上考试系统 snet 数据库时,还建立了 exam_info 表用于存放考试方式的相关信息,例如考试时长,试卷的题型比例,考试

38、的科目和允许参加考试的日期等信息。4.4 总 体 框 架 设 计网络考试系统的工作流程图如图 4.1 所示。首先显示登陆页面如图 4.2 所示,然后进行用户身份验证,进入相应页面,如图 4.3,4.4 所示。网站的目录结构是:admin 子目录存放管理员执行的所有程序,user 子目录存放考试用户的所有程序,js 子目录存放外部的 CSS 文件和 javascript 文件,images 文件夹存放网站内所有使用到的图片。图 4.3 网络考试系统工作流程图示意图用户登录进入功能导航页面时,利用 session 显示合法用户的用户名、所在部门及其权限,为 admin 或者 user。导航页面用框

39、架 frame 构成,分为 top,left 和 main 三个部分,代码如下:首页 main 显示各个页面的功能介绍,left 为导航区,实现功能导航,在 main 区显示,以 user 页面 left 导航为例,其关键代码如下: 考生功能菜单开始考试查询成绩修改密码学习通知图 4.4 登陆页面图 4.5 管理员功能页面图 4.6 考试用户功能页面4.5 公共模块设计1)公共模块为了在考试系统中的所有程序中获取当前用户的信息,采用 SESSION 变量存储用户登录信息。这些登录变量为$_SESSION“o_name”、$_SESSIONo_num、$_SESSIONdepartment分别存

40、放职员的姓名,职工编号,部门。因此在 php 脚本程序的开头加入以下语句,以便引用 SESSION 变量。session_start( );2)连接 MySQl 数据库服务器程序(conn.php)该程序建立与 MySQL 服务器的连接,打开 snet 数据库。代码如下,其中mysql_connect(“$host”,“$user”,“$password”)中的变量$host 表示服务器名,$user 表示 Mysql 的用户名,$password 表示 MySQL 的密码。mysql_select_db(“$db_name”,)$db_name 表示数据库名。在每一个 PHP 程序的开头通过

41、以下语句引用 conn.php 程序。require(“/conn.php”);3)退出系统程序(logout.php)退出系统用来删除 SESSION 变量,返回登陆页面,以便其他用户能够登录系统。代码如下:top.location.href=“./index.php“;4.6 登录模块登陆的时候调用数据库中的用户表 officer,对用户名及密码进行验证,根据用户的合法性及用户权限,确定跳转到不同的功能页面或者提示出错。流程图 4.7 如图所示:图 4.7 登录模块流程图index_ok.php 程序代码如下:0) if($rowo_type=admin) header(“Location

42、:./admin/index.php“); else header(“Location:./user/index.php“); else echo “alert(用户名或密码错误);history.go(-1);“;?4.7 在线考试模块在线考试模块中最核心的功能是如何输出考题/如何对提交的答案进行判断,并且将答案输出到当前页中,这是在线考试最关键之处。 11流程图如图 4.8 所示:图 4.8 在线考试模块流程图把系统需要的全部数据库制作完成以后,再用上面我们所说到的 HTML 和 PHP 语言来编程,使得考试界面能把试题库中的考试试题调出来配合试卷结构库中的试卷结构组成一张完整的考卷。也就

43、是说将初始化模块和数据库模块联系起来,根据题型比例,随机选出符合规格的试题,组成一张完整的试卷。考生根据考试通知选择要考试的课程名称,然后系统根据管理员设置的考试信息,存于 exam_info 表中,从题库,即 tiku 表中随机地抽取一定量的题目,比如 50 个,产生随机的一张试卷。流程图如图 4.9 所示。图 4.9 试卷产生模块流程图不同的考生抽取的题目都产生于试题库,但是由于是随机抽取所以不同的人试卷不一样,所以,这能够更好地体现的考试的公平性。由于上述三方面的内容都在同一页中显示,所以在技术实现的过程中这三方面是以一个整体的形式出现。以单选题为代表介绍系统的设计过程。首先以上一页表单

44、中提交的值为条件,执行查询语句,通过 while 循环语句输出查询将结果;然后根据输出的查询结果创建单选按钮,生成考题;最后,将考题答案提交到本页,对提交的答案与数据库中存储的正确答案进行比较,并且将答案输出到本页中。单选题输出,答案判断和考题答案输出的关键代码如下:分 “value=“ “.substr($str1,0).“;echo “正确分数:“;echo “.$myrow1fenzhi.“; $fen1+=$myrow1“fenzhi“;elseecho “您输入的答案“;echo “.substr($str1,0).“;echo “错误“;echo “正确答案:“.substr($m

45、yrow1ans,0).“ ; ?考生自己提交答案或者考试时间到系统自动提交答案,考试完成之后,各个题目的逐一进行答案比对,并将最终成绩录入 result 数据表中,程序流程图如图 4.10 所示:图 4.10 自动阅卷模块流程图4.8 查询模块用户只要在主菜单里按查询按钮就可以按部门、科目、成绩、成绩排名等查询到权限范围内的有关信息,并在页面上显示出来。管理员可以对用户进行管理,不同用户级别具有不同权限,比如部门经理可以查询本部门所有成员的成绩,并进行相应的分析,而普通用户只能查询个人的考试成绩,管理员则可以查阅所有人的信息。成绩分析的项目包括: 平均成绩,最高成绩,绩点分布等,更深层次的分

46、析可以考虑知识点的掌握度、频数分布图、学生把应曲线等等。进行成绩分析时设计相应的按钮,只要具有权限的用户点击按钮就可以实现一键分析的功能。整个系统应尽量做到傻瓜式操作,具有良好的交互界面和人机对话功能,易于接受。成绩分析查询模块流程图如图 4.11 所示: 图 4.11 成绩查询模块流程图4.9 考 试 倒 计 时 模 块XMLHttpRequest 的浏览器中运行,将其代码保存在一个名称为 xmlHttpRequest.js 的文件中,然后在需要应用 Ajax 技术的页面中应用以下代码包含该文件。接下来编写两个自定义的函数 showtime()和 sparetime(),通过 showtim

47、e()函数来读取显示时间的文件 showtime.php 中的数据;通过 sparetime()函数读取获取剩余时间的文件 sparetime.php 中的数据。showtime.php 文件中实现当前时间显示的原理是:获取一个在 session 变量中存储的考试时间戳,然后再应用 mktime()函数来获取当前时间的时间戳,应用当前的时间戳减去考试开始时间的时间戳,最后应用 date()函数输出获取的新时间戳的时间值。sparetime.php 中获取剩余时间的实现原理是:首先设置考试时长为 30 分钟,在考试开始计时的基础上加上 30 分钟,然后用考试时间减去系统的当前时间,获取的就是考试

48、剩余时间,当剩余时间为零时,系统将自动提交试卷。 115 总结与展望本文详细论述了网上考试系统的设计与实现,该系统基本实现了需求分析中的功能要求,其中考生信息主要由管理员直接进行添加、删除或者更改,考生成功登录后进入考生界面,考生界面主要由参加考试、成绩查询、考试和学习通知、修改密码等模块组成,考试时考生选择考试科目,核对正确后开始考试,关键实现了考生在选择科目后由系统自动产生试卷,考试计时,考试时间到,系统强制考生提交,及考完后对试卷的自动评分并马上显示成绩和评卷结果。管理员进入管理员界面,管理员界面主要由发布通知、考试管理、题库管理、成绩查询、课程管理等模块组成。主要实现了发布通知,题库管

49、理,基本实现了课程管理,考试管理。由于时间和技术水平的缘故,本系统还存在着许多方面的工作尚未完善。整个系统在细节存在比较多问题,比如界面不够美观,安全性较差,约束力较弱等。另外,系统的功能并没有全部实现,在很多方面有待提高。在以后更进一步的实现阶段,出了完成考试部分的功能外,要将整个网络学校系统功能合并起来,做一个完整的系统出来,同时应该加强数据的完整性约束提高系统数据的正确性和相容性,以及系统的容错性,加强对用户输入端的数据进行检验。参考文献1 David Powers 著陈宗斌等译PHP 与 Dreamwaver 基础教程北京:人民邮电出版社20082 聂庆鹏,毛书鹏,王志乐编著PHP+MySQL 动态网站开发与全程实例北京:清华大学出版社20073 王维. 基于 PHP 和 MySOL 的考试系统的研究. 中国教青技术装备. 20104 赵鹤芹. 设计动态网站的最佳方案:Apache+PHP+MySQL.计算机工程与设计. 2007 5 宗杰,马国强,刘冉编著PHP 网络编程学习笔记北京:电子工业出版社20

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报