搜索
您的当前位置:首页正文

在线考试系统的设计与实现

2022-03-09 来源:易榕旅网


---------------------------------------------------------------------------------------------------------------------------------

WEB课程设计报告

项目名称: 专 业: 班 级: 学 期:

成 员: 姓名 韦孟君 胡芳惠

2016年7月

在线考试系统的设计与实现

数字媒体技术 0313413、14、19 2016年春季

学号 031341318 031341302 031341324 廖珊珊 ---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

摘 要

随着社会的不断发展,对劳动者和技术人员的知识和能力水平的要求越来越高。考试作为衡量人的能力的重要手段之一,在现代生活中的地位进一步提高,并深入到社会的各个方 面。各种各样的学历考试、资格证书考试层出不穷。同时,Internet技术的发展使得考试的技术手段和载体发生了革命性的变化,使得考试突破了时间和空间的限制。各大学校已经开 始采用课程的上机考核方式,传统的考试系统已经不能满足我们了,必须要改革,因此在线 考试系统应运而生了。我们在保持原有绝大部分功能的前提下,不仅需发完善原有功能,加 入许多新的功能,使得题目管理,上机考试,试卷评分,考试分析更加方便完善。基于web 和数据库的在线考试系统是学生学习过程中的一个辅助工具,基于Internet或者局域网,其主要功能是实现学生在学习过程中通过本系统对课程进行各个章节的综合测试和评分,以检验学习效果。管理员利用本系统可以进行试卷的测试。同时系统能过进行分数的统计以及成绩的查询,为学生及教师在学习过程中提供帮助。在线考试系统旨在实现考试的无纸化管理,对一些科目的考试可以通过互联在线或局域网进行,方便校方考务的管理,也方便了考生尤其适在线考试系统旨在实现考试的无纸化管理,对一些科目的考试可以通过互联在线或局域网进行,方便校方考务的管理,也方便了考生。尤其适合考生分布广,不易集中的远程教育。利用在线考试系统,可以帮助教育培训机构进行更系统、更科学的管理。在线考试系统作为一种崭新的、有着极大优越性的教学评价手段,日益成为数据库管理技术广泛应用的一个热点研究方向。实现了系统管理、考生管理、在线考试、在线制作试卷、控制学生考试、试卷审批等基本功能。

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

Abstract

With the continuous development of society, workers and technical staff on the knowledge and ability of the increasingly high demand. One of the important means of the examination as a measure of the ability of people, in modern life further enhance the status, and further to the various

social.noodles。 The exam qualification certificate, diploma examination all sorts of emerge in an endless stream. At the same time, the development of Internet technology makes the examination of technical means and carrier producedrevolutionary change makes the examination breakthrough the limitation of time and space. The school has been opened The beginning of curriculum examination, the traditional examination system has been unable to meet us, must be reformed, so online the examination system has emerged. We kept most of the functions of the premise, not only need the improvement of the original function, and in a lot of new features, the topic management,

examination, test scores, test analysis more convenient and perfect. Based on the web database and online examination system is a learning process support tool, based on the Internet or local area network, its main function is to realize students in the learning process through the system of the curriculum of various sections of integrated test and evaluation, in order to test the effect of learning. The system administrator can use the test papers. At the same time, the system can be made for a fraction of the statistics and the results of the query, for students and teachers in the learning process to help. Online examination system to achieve exam paperless management, to some of the subjects of the examination can be online through the Internet or LAN, to facilitate the management of the school examination, also facilitate the candidates is particularly suitable for online examination system examination aimed at achieving the paperless management, to some of the subjects of the examination can be online through the Internet or LAN, to facilitate the management of the school examination, candidates are also convenient. Especially suitable candidates widely distributed, easy to focus on distance education. The use of online examination system, can help education and training organizations to carry on more systematic and scientific management. The online examination system is a kind of brand-new, has a great superiority of the teaching evaluation means, has become a hot research direction of extensive application of database management technology. The realization of the system management, examinee management, online examination, online control of basic examinations and paper processing, paper production.

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

目 录

中文摘要 英文摘要

1.绪言........................................................................................................1

1.1 选题背景...............................................................................................................................1 1.2 课题研究的目的和意义.......................................................................................................1 1.3 可行性分析...........................................................................................................................3

2.需求分析................................................................................................4

2.1 系统业务逻辑.......................................................................................................................4 2.2 功能需求分析.......................................................................................................................7 2.3 系统性能分析.......................................................................................................................8

3.系统设计...............................................................................................9

3.1 总体设计...............................................................................................................................9 3.2 结构设计...............................................................................................................................9 3.3 功能模块...............................................................................................................................9 3.4 数据库设计.........................................................................................................................11

4.系统实现..............................................................................................13

4.1 开发环境的搭建.................................................................................................................13 4.2 数据库的连接.....................................................................................................................17 4.3 功能模块的实现.................................................................................................................19

5.总结......................................................................................................29 致谢.........................................................................................................30 参考文献.................................................................................................31

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

1.绪言

1.1 选题背景

考试是教育中一个重要的环节。考试的目的一是为了检查学生的知识掌握情况,二是为教师提供教学分析的依据。传统的考试由于涉及到组织命题、试卷印刷、考场安排、组织阅卷等诸多环节,考试时间周期长、效率低,同时人工阅卷等主观因素也影响到考试的公正性。随着网络技术在教育领域的应用,在线考试系统展现出越来越多的优越性。

随着教育信息化的不断深入,网络教育越来越多的运用在教学过程中。远程教学、在线辅导、在线考试已被越来越多的人所接受。目前,世界上许多国际考试都采用在线考试的方式,比如:微软认证(微软公司的MCSE,MCDBA,MCSD等考试),思科认证(Cisco career certification),惠普认证(HP-UX),SUN 公司的JAVA认证考试,以及TOFEL,GRE,这些考试都是通过网络实时进行考试的。国内的许多考试也搬到了网上,如驾照模拟考试系统,职业英语在线考试,以及众多的远程教育学院及网络学院的在线考试。

在众多的线考试系统中,题目类型大多采用单一的选择题模型,考生只需通过点击正确的选项即可完成考试,同时系统根据已存入的正确答案,可迅速计算出学生的成绩。这种系统虽然可以实现自动判分,但由于考试的题型形式单一,不能适用各种科目考试的需求。

开发基于Web的在线考试系统可以选择的技术有ASP,JSP,PHP。其中ASP技术由于其建立在微软的操作系统之上,使用微软的开发工具,结合微软的SQL Server数据库管理系统可以使系统达到最佳组合,实现无缝连接;使开发人员轻松自如地开发出功能强大的应用软件。而ASP技术中多使用传统ASP技术,即ASP4.0。由于ASP4.0依赖于嵌入的脚本语言:VBScript和Jscript,使得在语言的使用上受到了限制;同时,脚本语言只得通过解释执行,使得执行效率大打折扣„„。为了满足Internet飞速发展带来的对于Web应用程序和Web服务的日益提高的开发需求,微软创新地推出.NET开发平台。NET框架是微软面向推出的XML Web服务的新一代计算平台,它简化了在高度分布式Internet 环境中的应用程序开发。ASP.NET是微软开发的新型体系结构.NET的一部分,它的全新技术架构使它称为功能强大和灵活多变的最优的Web开发环境。因此,本在线考试系统将采用ASP.NET技术,使用Visual Studio.NET的集成开发环境;选用微软的SQL Server2008作为数据库系统,利用.NET提供的ADO.NET数据访问技术,使得数据驱动的Web应用程序开发变得迅速而简单;基于BROWSER/SERVER浏览器/服务器)模式的设计思想,便于扩充应用和升级维护,利用浏览器访问位于WEB服务器的纯WEB页面,实现网络组卷、在线考试、网上判分等各项相关的功能。实现在线网络出试卷与考试等各项相关的功能。

1.2 课题研究的目的和意义

随着教育现代化步伐的加快和计算机辅助教学的广泛应用,利用计算机的强大功能参与教学已成为教育工作者和教育科研人员广泛关注的研究领域。在教育领域中,考试是整个教学过程中的重要环节,它是对学生所学知识和能力的一种评价,也是衡量教师教学效果优劣的一种教育测量手段。通常的出卷方式是参与教学的教师根据自己的知识、经验、风格来收---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

集、选取并编制试题,这样做虽然试题的效率、信用度高,但同样存在着一定的缺点,主要表现在由于人为因素的不确定性,可能会造成选题范围过于狭窄;耗费教师大量的时间、精力;不利于实现考、教分离。在我国,随着高校招生规模的不断扩大,学校的学生越来越多,考试非常普遍,所在通过网络进行的在线考试是现阶段研究开发的一个热点。它是建立在国际互联网上的应用系统,客户端的配置可以极为简单,使考试不受地域的局限。这个软件很 小但是作用很大,并且应用起来效率很高。这次编写的这个软件只是这个理想的软件的一个雏形,功能少,很多东西不能实现。这也与本人的水平有关,但是软件的一些思想确是有的,也希望以后水平高了能将它们改进。开发在线考试系统的意义在于:

1.将教师从繁重的出卷、阅卷、评卷的繁重工作中解脱出来,教师的工作效率大幅提高,减少人为主观意志对评分的影响,有效提高教育质量。

2.学生在平时的学习中,及时的在网上进行自我测试,在学习上能够查缺补漏,激发学生的学习兴趣,为学生的学习带来更多的方便。

3.系统实现自动组卷、自动评分,使考试真正做到客观、公平、公正, 真正实现考、教分离。

1.3 可行性分析

本在线考试系统在可行性研究阶段中,主要在技术、经济、运行三方面来研究其可行性。在技术方面,本系统是在windows操作系统上,以Dreamweaver、PHP、MySQL、Apache作为工具所开发出来的系统,并在能够实现其必要的功能和性能。在经济方面,在开发过程中所需要的硬件为一电脑,软件安装好Dreamweaver、PHP、MySQL、Apache等开发工具,因此费用的支出较少。在运行方面,系统在网络中利用各种浏览器为用户提供相关服务,系统界面清晰、简洁、操作简单,符合大多数人的操作习惯。

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

2.需求分析

2.1系统业务逻辑

该系统开发遵循的业务逻辑如下: 1.实用性和先进性

系统设计要符合实际中使用的逻辑,能符合学校等使用者中的各种角色的使用规则。为了保证系统的效率,其存储能力以及维护扩展的方便,代码的设计要有统一的编码规则,逻辑要清晰。

2.整体性和可靠性

本系统作为整个学校或者其他机构的一个基本独立的系统,系统开发应做好总体设计。数据信息要统一,应该具备恢复的能力和一定的容错能力。 3、安全性和保密性 系统安全性很重要,考试的一些信息是一种严格的需要保密的信息,防止数据被破解、丢失、乱码等等,是本系统必须做到的。 4、易使用和易维护

操作要易上手,不同的用户能根据各自的界面,快速的掌握使用方法。因为开发者不一定会作为以后的系统维护者,所以,为了维护的方便,要求后台的代码结构要清晰,要有必要的注释。

2.2功能需求分析

本系统的用户可分为管理员和普通用户两类。

本系统共分成两个界面:一个界面用于管理员登录,主要负责进行基本资料、题库、试卷、成绩的管理以及查询等;另外一个界面用于普通用户登录,主要负责在线考试、新生注册等。

从总体上考虑,系统应该实现下列功能:

对系统前台模块来说,包括用户登录,新生注册,进入考试等。 (1)用户登录:已注册的用户用自己的用户名和密码登录本系统。 (2)新生注册:新生可以从这里注册本系统。

(3)进入考试:登录或注册后用户选择科目并从这里可以进入考试页面。 对管理员来说,包括科目管理,题库管理,试卷管理,成绩管理,学生管理,系统管理。 (1)科目管理:管理员可以添加新科目,编辑,删除等

(2)题库管理:管理员可以对题库中的试题进行三种基本操作:添加新的考题,编辑,删除,其中试题类型包括判断题、填空题、选择题;对于每种类型的试题,教师可以设置题干、答案等属性。

(3)试卷管理:管理员可以从课程,各种题型的数量等方面对某份试卷提出一定的要求生成试卷规则。同时,管理员还可以对库中已有的试卷进行修改和添加新试卷等。 (4)成绩管理:管理员可以查询成绩,批准补考等。

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

(5)学生管理:管理员可以加入新的学生,查找已有的学生,和删除等。

2.3系统性能需求

随着计算机技术的发展和网络技术的日益成熟,通过网络进行信息交流已成为一种快捷的交互方式。在这种网络环境下,学校或考试机构希望通过建立网络在线考试网站来扩大知名度、降低管理成本和减少人力物力的投资,从而为考生提供更全面、更灵活的服务,并全面、准确地对考试进行跟踪和评价。与此同时,考生希望根据自己的学习情况进行测试,并能够得到客观、科学的评价;教务人员希望能够有效地改进现有的考试模式,提高考试效率。 通过实际情况的调查,要求网络在线考试系统具有以下功能: (1) 界面设计美观大方、方便、快捷、操作灵活,树立企业形象。 (2) 要求实现在线考试功能,自动核算考试成绩。

(3) 要求提供考试时间倒计时功能,使考生实时了解考试剩余时间。 (4) 要求系统自动阅卷,保证考试成绩真实有效。

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

3.系统设计

3.1 总体设计

网络正在改变着传统的教育方式,网络教育也越来越多。在节能环保的大环境下,把考试搬到无纸的网络环境下也是一种趋势。 根据系统的功能要求,在线考试系统涉及两种不同的用户:考生和管理员,他们职能各个不同。考生进入网络考试系统,可以查询个人考试成绩,修改个人资料,在线考试;管理员能够进行考题的维护,包裹删除、添加和及时更新,按不同条件查询考生的成绩并进行分析统计。具体达到了以下目标:

(1) 实现了组卷、评分的自动化。

(2) 具有空间性。只要有电脑和网络,考生能在任何地点任何时间进行在线考试。 (3) 操作简单方便,界面美观简洁。 (4) 随机抽取考试试题。

(5) 系统自动阅卷,保证成绩的真实准确。 (6) 考生可以查询自己的考试成绩信息。

3.2 结构设计

在线考试系统的考生用户和管理员用户分别为前台用户和后台用户: 考生功能:

(1) 参加考试:登录考试页面之后,考试开始并计时,手动和自动提交试卷,自动

阅卷。

(2) 查询成绩:考生可以查询本人的成绩信息。 管理员功能:

(1) 考试管理:添加、修改考试题目。

(2) 题库管理:及时对题库进行更新,删除旧的题目,添加新的题目。

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

3.3功能模块

3.3.1登陆模块

在登录模块中,当用户登录时,首先输入用户名及登陆密码,如果该用户存在则可成功跳转到相应的页面;如果用户不存在提弹出提示,用户可先进行注册,然后再进行登陆。

3.3.2注册模块

在注册模块中,用户可以注册成为学生,管理员是不允许注册的。注册的时候,需要填写用户名,邮箱,密码和重复密码。当用户输入用户名时,页面会自动搜索输入的用户名是否存在,如果用户名存在,则会提示“用户已经存在”;当用户输入邮箱时,页面也会搜索该邮箱是否存在,如果邮箱已经注册过了,则会提示“邮箱已经被注册”。如果注册成功,则会提示“操作”

3.3.3后台管理模块

在管理员模块中,管理员能对整个系统进行管理。后台管理模块可分对全局模块、用户

模块、考试模块、内容模块、文件模块、财务模块。全局模块可修改模块相关属性;用户模块可修改用户的相关属性;考试模块可修改考试、题库相关的属性;文件模块可修改和制定用户上传的文件的相关属性和限制;内容模块可修改更新模块的内容信息;财务模块用于管理积分和代金券。

3.3.4在线考试模块

在在先考试模块中,用户可以选择学习考试和改错复习,每次操作都有相应的记录,但是有些选项学员需要支付一定的代金券才可以进行学习。在学习考试中,用户可以进行课后练习、强化训练、模拟考试和正式考试;在改错复习中,用户可以进行习题收藏、查询自己---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

的考试记录和成绩单。

3.3.5考试信息模块

在考试信息模块中,用户可以看到当前最新的考试新闻,点击进入相应的新闻,会看到相关的考试信息。

3.3.6滚动图片

在前台界面中,网页的主页面有一栏广告栏,广告栏会滚动播放相应产品的图片广告。 广告的增添和修改可在后台管理模块中进行操作。

3.4数据库设计

3.4.1 需求分析

考生:

(1)参加考试:登录考试页面之后,考试开始并计时,手动和自动提交试卷,自动阅卷。

(2)查询成绩:考生可以查询本人的成绩信息。 管理员:

(3)考试管理:添加、修改考试题目。

(4)题库管理:及时对题库进行更新,删除旧的题目,添加新的题目。

3.4.2 概念设计

(1)、学生信息实体 学生信息实体包括学生账号、学生密码、联系方式、考题类别、考试时间和考试成绩等属性。考生信息实体的E-R图如下所示: 学生账号 学生密码 考试成绩 学生 联系方式 ---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

考试时间 考题类别 (2)、管理员实体

管理员试题包括编号、管理员账号和加密密码属性。管理员实体的E-R图如下所示:

管理员

编号 加密密码 管理员账号 (3)、考试类别实体

考试类别实体包括编号和考题类别名称。考试类别实体的E-R图如下所示: 考试类别

编号 考试类别名称 (4)、考题信息实体

考题信息实体包括编号、考题类别、考试成绩、考题内容、考题答案、考题正确答案和考题所属套题等属性。考题信息实体E-R图如下所示:

编号

考题类别

考试成绩 考试内容 考题信息 考题答案 考题正确答案 考题所属套题

3.4.3 逻辑设计

学生(学号,姓名,性别,密码)

试题库(课程代码,课程名称,题目类型,题目内容,被选答案A,被选答案B,被选答案C,被选答案D,参考答案,难易度)

试卷组成(试卷代码,课程名称,题号(大题)1,试题类型1,小题数1,难题数1,中题数1,简单题数1,每小题分数1,题号(大题)2,试题类型2,小题数2,难题数2,中题数2,简单题数2,每小题分数2,题号(大题)3,试题类型3,小题数3,难题数3,中题数3,简单题数3,每小题分数3,题号(大题)4,试题类型4,小题数4,难题数4,中题数4,简单题数4,每小题分数4,题号(大题)5,试题类型5,小题数5,难题数5,中题数5,简单题数5,每小题分数5,题号(大题)6,试题类型6,小题数6,难题数6,中题数6,简单题数6,每小题分数6,题号(大题)7,试题类型7,小题数7,难题数7,中题数7,简单题数7,每小题分数)

试卷(试卷编号,试卷名称,大试题号,小试题号,试题库中序号,学号,学生答案,得分)

成绩(学号,试卷编号,课程名称,成绩)

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

3.4.4 物理设计

(1)tb_user(学生信息表) 学生信息表用来保存学生信息,PK为online_id。 (2)tb_admin(管理员信息表) 管理员信息表用来保存管理员的用户名和密码,PK为id。 (3)tb_ktlb(考题类别信息表) 考题类别信息表用来保存考题类别,PK为ktlb_id。 (4)tb_kt(考题信息表)

考题信息表用来保存考试题目信息和考题答案等相关信息,pk为kt_id。

4.系统实现

4.1 开发环境的搭建

4.1.1 在Windows下安装Apache服务器

(1)双击Apache_2.2.11-win64-no-ss1.msi文件,弹出欢迎界面。单击Next按钮,进入到许可协议页面。

(2)在许可协议界面,用户需要同意页面中的条款才能继续安装。选中I accept the terms in the license agreement单选按钮,单击Next按钮进入到下一页面。在了解了相关的信息后,单击Next按钮进入到Server Information页面。

(3)Server Information页面需要用户填写域名、服务器名称和管理员Email,接下来选中默认的第一个按钮,即该服务器对所有人开放。

4.1.2 在Windows下安装php

Php下载后也是zip包,同样解压到合适位置,我们这里也将其放在F盘的phptools文件夹下的php5.5目录下。

4.1.3 在Windows下安装MySQL

MySQL选择的是免安装版的,就更简单了,同样是解压到合适的位置,这里我们也将其放在F盘的phptools文件夹下的MySQL目录下,解压安装后如下图:

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

4.1.4 配置PHP

将F:\\phptools\\php5.5\\php.ini-production 复制一份,并重命名为php.ini;

将 F:\\phptools\\php5.5和F:\\phptools\\php5.5\\ext加入环境变量PATH中,选中计算机,右键属性-->高级系 统设置 -->环境变量-->系统变量,找到Path,编辑,在其后加上;F:\\phptools\\php5.5;F:\\phptools \\php5.5\\ext,如下图:

4.1.4 配置Apache

用记事本打开F:\\phptools\\Apache2.4\\Apache24\\conf 查找

ServerRoot,修改

ServerRoot \"C:/Apache24\" => ServerRoot

\"F:/phptools/Apache2.4/Apache24\"(这里输入的是你解压apache安装包后放的位置)

查找#ServerName www.example.com:80 ,修改为 ServerName www.example.com:80 (去掉前面的#)

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

查找DocumentRoot \"c:/Apache24/htdocs\" , 修改为DocumentRoot

\"F:/phptools/Apache2.4/Apache24/htdocs\" (如果一样,就不用改)

查找 ,修改为 (如果一样,就不用改)

查找DirectoryIndex index.html ,修改为 DirectoryIndex index.html index.php index.htm (这里我们添加了index.php index.htm)

查找ScriptAlias /cgi-bin/ \"c:/Apache24/cgi-bin/\" ,修改为 ScriptAlias /cgi- bin/ \" F:/phptools/Apache2.4/Apache24/cgi-bin\" (如果一样,也不用改)

\"c:/Apache24/cgi-bin\">

\"F:/phptools/Apache2.4/Apache24/cgi-bin/\"> (如果一样,也不用改)

在 F:\\phptools\\apache2.4.10\\conf\\httpd.conf最后一行添加添 加 LoadModule php5_module \"F:/phptools/php5.5/php5apache2_4.dll\" 让 apache 支持php (请确认F:/phptools/ php5.5/有php5apache2_4.dll,如果你下载的是我提供的连接肯定是有的)

添加 AddType application/x-httpd-php .php .html .htm

添加 PHPIniDir \"F:/phptools/php5.5\" (告诉apache php.ini的位置) 至此,httpd.conf 配置完成,保存httpd.conf(如下图所示) :

4.1.5 将Apache安装到系统服务中

输入F:\\phptools\\Apache2.4\\Apache24\\bin\\httpd -k install,回车 安装过程如下图所示

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

4.1.6 开启几个常用PHP扩展

用记事本打开F:\\phptools\\php5.5\\php.ini

将; extension_dir = \"ext\"修改为 extension_dir = \"ext\" (去掉extension前面的分号) 将;extension=php_mbstring.dll 修改为 extension=php_mbstring.dll(去掉extension前面的分号,这是php多字节字符串扩展)

将;extension=php_mysql.dll修改为 extension=php_mysql.dll(去掉extension前面的分号) 将;extension=php_mysqli.dll 修改为 extension=php_mysqli.dll(去掉extension前面的分号)

4.1.7 启动Apache

启动apache,有两种启动方式:

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

在windows服务中启动;点击开始,找到计算机,右键-->管理-->服务和应用程序-->服务,找到Apache2.4,右键启动即可,如下图

双击F:\\phptools\\Apache2.4\\Apache24\\bin\\ApacheMonitor.exe启动,如下图

4.1.8 启动MYAQL

MySQL免安装版配置成功后,也在服务中启动,启动方法与Apache在服务中启动方

式类似,所不同的是,你点击右键启动的是MySQL服务

4.2 数据库的连接

1)数据库连接第一步:配置mysql_connect()的参数

参数依次为:主机地址,用户名,用户密码

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

(2)mysql_pconnect()与mysql_connect()是不一样的,pconnect顾名思义是持久连接

(3)服务器连接成功后,需要你选择你需要用的数据库

(4)使用mydql_close()可以关闭数据库连接资源,避免长时间占用启用资源消耗

(5)mysqli_connect( )是mysql连接的另一种方式,参数形式一样

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

(6)首次使用mysql连接数据库时,要记得使用输入逻辑判断,服务器连接不成功或者选择数据库不成功,都要用Mysql_error或者mysql_errno来报错

(7)mysql的报错,能够帮助你准确地定位到错误发生在哪里。

4.3 功能模块的实现

4.3.1登录模块

(1)设计登录模块是为了方便管理员对学员的管理,有针对性的为每一类学员制定相关

的考试题目。

(2)输入账号和密码信息,进入登录界面。登录分为管理员登录、教师登录、普通登录,管理员登录可以进入后台管理。 考试系统登录界面如下图4-1所示

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

登录界面的关键代码如下: public function index(){

}

public function login(){

if($this->ev->get('userlogin')){

$tmp = $this->session->getSessionValue(); if(TIME - $tmp['sessionlasttime'] < 1){ }

$args = $this->ev->get('args');

$user = $this->user->getUserByUserName($args['username']); if($user['userid']){

if($user['userpassword'] == md5($args['userpassword'])){ $message = array( );

exit(json_encode($message));

'statusCode' => 300, \"message\" => \"操作失败\"

$this->login();

$this->session->setSessionUser(array('sessionuserid'=>$user['userid'],'sessionpassword'=>$u

ser['userpassword'],'sessionip'=>$this->ev->getClientIp(),'sessiongroupid'=>$user['usergroupid'],'sessionlogintime'=>TIME,'sessionusername'=>$user['username']));

$message = array(

'statusCode' => 201, \"message\" => \"操作成功\

\"callbackType\" => 'forward', \"forwardUrl\" => \"reload\" );

if($this->ev->get('userhash')) exit(json_encode($message));

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

}

}

}

}

else

exit(header(\"location:{$message['forwardUrl']}\"));

else{ }

$message = array( );

exit(json_encode($message));

'statusCode' => 300,

'errorinput' => 'args[username]', \"message\" => \"操作失败\"

else{ }

$message = array( );

exit(json_encode($message));

'statusCode' => 300,

'errorinput' => 'args[username]', \"message\" => \"操作失败\"

else{ }

$this->tpl->display('login');

4.3.2注册模块

用户注册界面如图4-2所示

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

注册功能部分代码如下所示: public function register(){

if($this->ev->get('userregister')){

$fob = array('admin','管理员','站长'); $args = $this->ev->get('args');

$defaultgroup = $this->user->getDefaultGroup(); if(!$defaultgroup['groupid'] || !trim($args['username'])){ }

$username = $args['username']; foreach($fob as $f){ }

$user = $this->user->getUserByUserName($username); if($user){

$message = array(

if(strpos($username,$f) !== false){ }

$message = array( );

exit(json_encode($message));

'statusCode' => 300,

'errorinput' => 'args[username]', \"message\" => \"用户已经存在\"

$message = array( );

exit(json_encode($message));

'statusCode' => 300,

\"message\" => \"用户不能注册\"

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

}

);

'statusCode' => 300,

'errorinput' => 'args[username]', \"message\" => \"用户已经存在\"

exit(json_encode($message));

$email = $args['useremail'];

$user = $this->user->getUserByEmail($email); if($user){ }

$id = $this->user->insertUser(array('username' => $username,'usergroupid' =>

$message = array( );

exit(json_encode($message));

'statusCode' => 300,

'errorinput' => 'args[username]', \"message\" => \"邮箱已经被注册\"

$defaultgroup['groupid'],'userpassword' => md5($args['userpassword']),'useremail' => $email));

$this->session->setSessionUser(array('sessionuserid'=>$id,'sessionpassword'=>md5($args['u

serpassword']),'sessionip'=>$this->ev->getClientIp(),'sessiongroupid'=>$defaultgroup['groupid'],'sessionlogintime'=>TIME,'sessionusername'=>$username));

}

}

$message = array(

'statusCode' => 200, \"message\" => \"操作成功\

\"target\" => \"\ \"rel\" => \"\

\"callbackType\" => 'forward',

\"forwardUrl\" => \"index.php?\".$this->G->defaultApp );

exit(json_encode($message));

else{ }

$this->tpl->display('register');

public function logout(){

$this->session->clearSessionUser();

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

}

}

$message = array( );

$this->G->R($message); exit;

'statusCode' => 201, \"message\" => \"操作成功\\"callbackType\" => 'forward',

\"forwardUrl\" => \"index.php?\".$this->G->defaultApp

4.3.3后台管理模块功能实现

(1)后台管理模块设计内容。后台管理模块是管理人员对整个系统的管理,管理员通过登录管理员账号进入后台管理模块。后台管理可分对全局模块、用户模块、考试模块、内容模块、文件模块、财务模块进行修改。全局模块可对模块的名称、状态、模块标志等进行修改。用户模块可对用户的注册信息、注册角色进行管理并对其进行相关的修改。考试模块包括考试设计、课程开通、试题管理、试卷管理、回收站、批量工具这几个方面,考试设计主要是对考场列表、地区设置、科目管理、题型管理的设置;课程开通是针对注册学员所开通的课程进行管理;试题管理分为普通试题管理和题帽试题管理,记录所上传试题的科目、题型、难度、知识点等;试卷管理可对试题进行随机组卷、手工组卷、即时组卷的操作,在后台可对不同组卷方式进行不同的评分标准定义,并在试卷列表可查询学员的考试组卷情况;回收站和批量工具是对试题的删除和清理,在回收站中显示有被删除题目的信息,也可以在回收站中对删除的题目进行恢复;批量工具中可直接清理之前删除的试题、考试记录和会话,避免空间的浪费。用户模块是对上传文件类型的管理,限制了一些文件上传的格式,并且对上传文件的路径进行了保存,方便对文件的管理。内容模块主要是对考试系统界面信息的管理,包括对广告信息、新闻消息的更新。订单管理模块是对学员购买积分的订单和代金券的使用情况进行管理的。

(2)后台管理模块流程图

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

全局模块 模块管理 用户管理 用户模块 角色管理 模型管理 考试设计 课程开通 后 试题管理 考试模块 试卷管理 台 回收站 批量工具 管 文件模块 文件类型 理 文件管理 分类管理 内容模块 内容管理 模型管理 标签管理 财务模块 订单管理 代金券管理

4.3.4在线考试模块功能实现

(1)考试功能模块的内容。单击最新考试里的考场名称,进入在线考试环节。在线考试分为学习考试和改错复习两类,学习考试有课后练习,为学员提供章节练习;强化训练项目针对某一些易错和难度比较高的题目进行强化训练;然后考试又分为模拟考试和正常考试,模拟考试和正常考试都进行考试计时,只是在测试的题目有所不同。改错复习中可以查询自己---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

的考试记录和成绩单,还可以将自己不熟悉的题目和易错题收藏到习题收藏里,便于学员有针对性的复习和查漏补缺。

(2)学习考试模块图

(3)设计思想:学员可通过自己的学习账号来进入自己的课程学习,每次的课程学习后台管理模块都有相应的记录。但是有些课程学员需要支付一定的代金券才可以进行学习。 (4)部分代码:

①public function basics(){

$action = $this->ev->url(3); $page = $this->ev->get('page'); switch($action){

case 'openit':

$basicid = $this->ev->get('basicid');

$basic = $this->basic->getBasicById($basicid); if(!$basic){ }

$userid = $this->_user['sessionuserid'];

if($this->basic->getOpenBasicByUseridAndBasicid($userid,$basicid)){

$message = array(

'statusCode' => 300,

\"message\" => \"您已经开通了本考场\" $message = array( );

$this->G->R($message);

'statusCode' => 300,

\"message\" => \"操作失败,此考场不存在\"

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

}

}

);

②public $G;

public function __construct(&$G){ }

public function index(){ }

$userid = $this->ev->get('userid');

//$data = array('user',array(array('AND',\"userid = :userid\//$sql = $this->sql->makeDelete($data); //$r = $this->db->exec($sql);

//$data = array('user',array(\"usertruename\" => 'dddaaa'),array(array('AND',\"userid //$sql = $this->sql->makeUpdate($data); //$r = $this->db->exec($sql);

//$data = array('*',array('user','user_group'),array(array(\"AND\= //$sql = $this->sql->makeSelect($data); $sql = array('sql' => 'show tables'); $r = $this->db->fetchAll($sql); print_r($r); $this->G = $G;

$this->sql = $this->G->make('pdosql'); $this->db = $this->G->make('pepdo'); $this->ev = $this->G->make('ev');

= :userid\

user_group.groupid\"),array(\"AND\

代码见kaoshi->app->exam->app.php 4.3.5考试信息模块的实现

(1)考试信息栏目会实时更新一些新闻信息,这些新闻信息可通过后台的内容管理模块进行管理。 (2)部分代码: public function ad(){

$subaction = $this->ev->url(3); switch($subaction){

case 'modify':

if($this->ev->get('modifyad')){

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

}

}

}

$args = $this->ev->get('args'); $args['adstyle'] = $args['adstyle']; $adid = $this->ev->get('adid'); $this->ad->modifyAd($adid,$args); $message = array(

'statusCode' => 200, \"message\" => \"操作成功\

\"target\" => \"\ \"rel\" => \"\

\"callbackType\" => \"forward\

\"forwardUrl\" => \"?content-master-ad&page={$page}\" );

exit(json_encode($message));

else{ } break; default: $page = 1;

$ads = $this->ad->getAdList(1,$page); $this->tpl->assign('ads',$ads); $this->tpl->display('ad'); break;

$adid = $this->ev->get('adid'); $ad = $this->ad->getAdById($adid); $this->tpl->assign('ad',$ad); $this->tpl->display('ad_modify');

4.3.6滚动图片的实现

(1)在网页的主页面有一栏广告栏,广告栏的广告是滚动出现的。在后台管理模块中可对广告内容的修改和对滚动广告的增添。 (2)部分代码: public function dstatus(){

$number = 3; $a = array();

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

}

$a['status'] = 'succ';

$a['url'] = 'files/attach/images/content/20150117/14215094601346.mp3?'; echo json_encode($a);

public function upload(){

$fn = $this->ev->get('CKEditorFuncNum'); $upfile = $this->ev->getFile('upload');

$path = 'files/attach/files/content/'.date('Ymd').'/'; if($upfile)

$fileurl = $this->files->uploadFile($upfile,$path,NULL,NULL,$this->allowexts); if($fileurl){

$message = '上传成功!'; $args = array();

$args['attpath'] = $fileurl; $args['atttitle'] = $upfile['name'];

$args['attext'] = $this->files->getFileExtName($upfile['name']); $args['attsize'] = $upfile['size'];

$args['attuserid'] = $this->_user['sessionuserid']; $args['attcntype'] = $upfile['type']; $this->attach->addAttach($args); $str

=

'\\''.WP.'/'.$fileurl.'\\',

type=\"text/javascript\">window.parent.CKEDITOR.tools.callFunction('.$fn.', \\''.$message.'\\');';

} else{

$message = '上传失败,附件类型不符!'; $str

=

'type=\"text/javascript\">window.parent.CKEDITOR.tools.callFunction('.$fn.',false, \\''.$message.'\\');';

}

} echo $str;

(3)滚动广告运行界面:

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

5.总结

本次课程设计可以说是一波三折。刚刚接受作业时,由于水平有限,对于ASP和数据库的操作都不是很熟练,我们遇到了很多问题。有的时候我甚至想放弃,但是最后我还是坚持下来了,完成了本次毕业设计。这让我明白了一个道理:坚持到底就一定会有收获。

经过这段时间的精心设计和代码实现,本系统的基本功能已经实现,并能实践于管理过程中,但是一个完整在线考试系统系统是一个庞大的工程,需要网络交互功能的实现,脚本的设计,网页的构架,网页的美工,文字的编辑,非一朝一夕可尽善尽美,这需要一个长期的摸索与完善过程,同时还要在实践中发现和修改那些不完善的地方。本系统的基本功能虽已实现,但仍有诸多地方需要修改和完善。

通过本次课程设计,我们对Java、ASP、Access等技术有了更深入的理解。同时,我们的编程能力得到了很大的提高。由于本次课程设计我们完整地走过了该系统实现的整个流程,这让我们对项目开发有了一个初步了解,为以后工作积累了一定的经验。此外,通过本次课程设计,使我们懂得了谨慎的重要性。特别是对于一个程序员的工作态度以及他的良好的习惯。

此外,由于实地考察不够加上时间紧迫,导致本系统功能不够完善。另外在做需求分析的时候,由于考虑欠佳,等到做网页的时候又出现了问题,在返工为时太晚,尽管已经想办法补救,但难免出现漏洞。另外有些想法还没有及时的添 加到页面中.但是本系统还有不少闪光点,例如系统布局合理色调清新,功能虽然多但给人一目了然的感觉,不会太繁杂。在自我创新的同时,我们没有丢掉老师交给我的一些好的方法和捷径。正确处理数据结构之间的关系是我面临的一个问题和挑战。处理数据库的有关连接是这次系统设计的一大收获。 系统难免还有一些不足的地方,还望各位读者和教师们多多批评指正,不胜感激。

致谢

经过一个学期的努力,在线考试系统的开发暂时告一段落了。在整个网站的开发过程中,我们小组都学到了不少的知识,也积累了许多关于网页的开发经验。在此,感谢我的指导老师沈济南老师的指导和督促,在整个的开]发步骤上,老师给我们列出了详细的工作计划,使我们在开发进程上,不致于茫然。每周四的实验课上,在设计思路和系统功能结构方面,老---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

师给我们提出了许多宝贵的意见,同时不断地给我们提出更高的要求。另外,感谢在我们小组做课程设计过程中给过我帮助的所有同学,是大家的努力才得以完成我的这个预定系统。从开始到完成设计题目系统的实现,再到论文的完成,每走一步对我们来说都是新的尝 试挑战,这也是我们在大学期间独立完成的最大的项目。

在线考试系统成功的实现了登陆,在线考试,自动阅卷,后台管理等主要功能。系统的最大特点是操作简单,部署方便,并且较好的防止错误操作发生,尽可能多的给用户提示信息。但系统也存在设计上的不足,因为初次设计制作完整的系统,在初期阶段需求分析和考虑数据库设计的时候都的不全面。

由于我们的知识有限,系统存在着一些需要改进和不足的问题,还望各位读者和教师们多多批评指正,不胜感激。与此同时,我要感谢对我毕业设计提供帮助的同学们,是你们给予了我更多广泛的设计思路,才使得我的思想更加宽广,这对我的课程来说,是一种很大的帮助,谢谢你们。

参考文献

[1] 高冬梅编著.SQL Server 2008数据库程序设计.北京:机械工业出版社,2009.6 [2]田 更编著.ASP.NET程序设计案例教程.北京:清华大学出版社,2011.10 [3]田 更编著.基于.NET的储蓄设计综合实训教程.北京:中国铁道出版社,2010 [4]耿祥义等编著.XML程序设计.北京:清华大学出版社,2009.10

[5]韦良芬等编著.C语言程序设计经典案例教程.北京:北京大学出版社,2010.6 [6]周鸿玲.基于Web的考试系统组卷策略研究[D].吉林;东北师范大学,2009. [7]方大良.在线考试系统组卷策略分析[J].电脑知识与技术,2008,4(9);2629-2630. [8]胡星. 网上考试系统题库与组卷技术的设计与实现[D].北京;北京工业大学,2004. [9]Karli Watson Christian Nagel 等.C#入门经典(第3版). 2006年 北京 清华大学出版社 [10](美)内格尔,(美)埃夫琴等著,李铭译.C#高级编程(第7版).2010年 北京 清华大学出版社;93-95 [11]邵维忠.面向对象的系统设计[M]. 2004年 北京 清华大学出版社;201-203

[12](美)Krzysztof Cwalina,Brad Abrams等.NET设计规范[M]. 2006年 北京 人民邮电出版社;203-204

[13]陈宗兴,杜国梁.ASP.NET网络系统程序开发[M].北京:中国水利水电出版社,2002;151-155 [14]金小璞,罗庆云,徐芳.基于ASP.NET 技术的在线考试系统[J].福建电脑,2005年第10期;13-14

[15] 廖彬山,高峰霞.Web数据库开发技术[M].北京:电子工业出版社,2003;53-55 [16] 郑阿奇.SQL Server实用教程[M].北京:电子工业出版社,2002 [17] 郝刚.ASP.NET 2.0开发指南[M].北京:人民邮电出版社,2002

[18]曹 斌,韩中孝.ASP.NET数据库系统项目开发实践[M].北京:科学出版社,2003 [19] 丁宝康,董健全.数据库实用教程[M].北京:清华大学出版社,2003

[20] 李晓黎.ASP+SQL Server网络应用系统开发指南.北京:人民邮电出版社,2004 [21] 武延军.精通ASP网络编程[M].北京:人民邮电出版社,2000

---------------------------------------------------------------------------------------------------------------------------------

因篇幅问题不能全部显示,请点此查看更多更全内容

Top