罗云芳黄锦祝
基于WAMP的网络教学系统的设计开发*
罗云芳1黄锦祝2
( 1.广西职业技术学院,广西 南宁,530226;2.广西机电职业技术学院,广西 南宁,530003)
[摘要]“PHP网站建设与开发”课程知识深广且抽象,学生难以理解掌握。鉴于此,基于WAMP框架设计开发了一套供学生复习、课后答疑和在线测试的网络教学系统。应用表明,该系统对学生深入探究学习内容有极大帮助,有效提高了课程教学质量。
[关键词]PHP网站建设与开发;WAMP;单例模式;组卷
“PHP网站建设与开发”是计算机相关专业核心课程,也是社会急需的Web软件开发程序员、Web软件设计与测试员、Web网站管理和维护等岗位人才的必备技能,课程的教学质量将直接影响学生的就业质量。而“PHP网站建设与开发”涉及理论基础和PHP开发语言、Mysql数据库、HTML标记语言、AJAX异步数据交换、Smarty模板和开发框架等各类专业技术知识,内容繁多,学生在学习的过程中比较难以掌握[1][2][3]。
为提高课程教学质量,为学生提供老师授课视频和各类丰富的教学材料;学生与学生之间、学生与教师之间的即时交流等等是非常必要的。因此需要设计开发一套网络教学系统,实现教师授课视频的上传和播放管理,各类教学材料的上传与管理,学生与教师交流的论坛,学生考试和练习管理。为学生提供一个很好的课后复习、与教师交流和教师即时监控学生学习过程情况的平台。
为方便学生使用,系统开发基于B/S架构实现,开发平台采用WAMP框架。WAMP是中小型Web应用系统开发的黄金组合,即以Windows为操作系统,Apache为Web服务器,Mysql为系统后台数据库,PHP为系统开发语言。按MVC软件设计模式进行开发实现,以提高系统代码的可读性、系统的可维护性和系统的可扩展性[4]。
本系统功能主要包括:课件的上传与管理,授课视频的上传与管理,师生互动交流,教师教学,学生学习和在线测试等功能模块。整体框架如图1所示。
图1 系统整体架构图
系统数据处理层主要负责数据的读取和存储处理,程序与数据库服务器的连接采用PDO对象模型实现[5],数据的存取调用逻辑层的数据操作命令实现,Mysql数据库数据的存取采用ODBC数据驱动器实现[6];逻辑层负责接收UI层中的各类数据,通过逻辑处理构造成相应的数据处理操作命令,UI层负责数据功能模块与用户的接口,实现各功能模块的功能操作界面,提供给管理员用户信息管理数据的录入,教师用户多媒体课件和授课视频的上传与管理,师生互动交流数据的录入管理,教师教学和学生在线测试相关数据的输入和相关命令操作。
3.1数据处理层数据操作公共类实现
本网络教学系统各功能的实现都需要与数据库进行通信,读取数据库中数据或将系统数据存储到数据库中,按程序操作数据库的步骤,频繁的数据库操作中,如果每次操作都创建与数据库的新连接,将会大大增加系统和内存资源消耗,降低系统的性能,针对数据库句柄连接数据库的行为,使用单例模式可以避免大量的new操作,避免系统和内存资源的消耗,提高系统的性能[7]。同时系统各功能的实现,数据库操作都是相同的CURD四种,实现的核心代码都是一样的,只是具体的实现命令不同,因此数据库的具体操作实现在数据处理层以一个独立的数据操作公共类实现,可以提高系统的可扩展性和代码的封装性,大大减少代码的重复性。创建单例模式实现的系统数据操作公共类必须同时满足:只能有一个实例;必须能够自行创建这个实例;必须自行向整个系统提供这个实例[8]。单例设计模式的原理如图2所示。
图2 单例设计模式原理图
以单例模式实现的系统数据操作公共类关键代码:
3.2文件上传与管理功能实现
要实现教学材料和测试试题的管理需将材料文件信息分类入库存储到系统数据库中,同时将材料文件内容上传到服务器相应目录。系统中各功能中需要上传文件功能虽不一样,但文件上传的原理是一致的,即将选择的符合上传条件的文件从客户机磁盘复制到服务器指定目录,在实现文件上传时选择上传文件的表单一定注意加上"enctype"属性和对应的"multipart/form-data"值[9],选择的文件上传时利用$_FILES全局变量装载保存,上传利用move_uploaded_file()函数将文件复制到服务器相应目录,实现文件上传与管理功能程序流程如图3所示。
图3 文件上传程序流程
实现文件上传的关键代码:
3.3师生互动交流功能实现
师生互动交流主要包括以列表的方式显示登录的用户、公共发贴回贴和针对用户发贴回贴功能[10]。列表显示登录的用户,当用户登录成功后采用从数据表中动态向列表框中添加用户信息的方式实现;公共发贴回贴和针对某用户发贴回贴实现的方法是一致的,都是在交流页面中发表问题贴子和选择相关问题贴子进行回复,针对某用户发贴和回贴只是在发贴和回贴前要先选择相关用户而已,在实现中为了使发贴和回贴内容展示更生动,使用FCKeditor第三方编辑控件实现。FCKeditor是目前最优秀的可见即可得网页编辑器之一,它采用JavaScript编写[11]。具备功能强大、配置容易、跨浏览器、支持多种编程语言、开源等特点。FCKeditor编辑控件在PHP中使用步骤:首先到其官网下载并解压到项目根目录, 然后在项目文件中使用include("fckeditor/fckeditor. php")语句载入FCKeditor控件类文件,载入成功即可使用。在互动交流发表提问贴子时,在录入问题分类和主题后即可采用FCKeditor控件录入问题贴子的详细内容。发表问题贴子的流程如图4所示。
图4 发表问题贴子流程
实现师生互动功能的关键代码:
3.4在线测试功能实现
在线测试功能主要是包括试题库试题内容的导入,测试试题的自动组卷和学生作答后提交试卷的评分三个功能点。试题库试题内容的导入,首先将试题内容保存到试题内容模板EXCEL文件中,然后利用OLEDB数据驱动方式与EXCEL试题内容文件进行连接,读取EXCEL文件试题内容后采用SQL Update语句更新到试题库数据表中[12];试卷评分是当学生测试完成提交试卷后,将学生所做答案保存到试卷答案数据表,然后利用SQL查询语句将试卷参考答案和学生所做答案取出一一比对,如果答案一致则按试题分值记分,从而计算出学生测试的成绩;测试试题自动卷是在线测试功能的关键功能,测试试题自动组卷的目的是生成一份用于测试的考生试卷,用于给学生进行在线测试,由于一份测试试卷涉及到总题量、章节内容比例、重点知识内容比例和简中难题比例等,要在试题库中找出满足相应条件的题目组成随机的、科学合理的试卷,必须有科学合理的组卷原理和算法[13]。
按要求输入生成目标试卷的总题量和各项约束条件,并将这些约束条件转化为试题的具体量化参数,然后按相应的算法从试题库中随机抽取试题,判断抽取的试题是否符合量化参数要求,如果不符合要求则重新选题,依此循环直到达到试题总题量要求,将抽取的试题按赋分原则赋分,最后编排形成学生的测试试题[14]。测试试题组卷原理流程如图5所示。
图5 组卷原理流程图
请补充组卷功能实现的关键代码:
PHP网站建设与开发是计算机相关专业的核心课程,课程直接面向就业工作岗位,课程的教学质量直接影响着学生的就业,而课程涉及的知识内容广且抽象难以理解掌握,单靠学生在课堂上的学习时间难以熟练掌握课程知识技能[15]。基于WAMP架构针对PHP网站建设与开发课程设计开发的网络教学系统,经过2年来的试用,在提高课程教学质量上起到良好的效果,广受学生的好评。
参考文献:
[1]刘耀钦.基于Smarty模板引擎的Web页静态化研究与性能分析[J].计算机与数字工程,2015(02):295-333.
[2]孙光明,王硕.基于JSON的Ajax数据通信快速算法[J].计算机应用与软件,2015(01):263-266.
[3]李荣国,王见.MySQL数据库在自动测试系统中的应用[J].计算机应用,2011(12):63-67.
[4]何佩佩,韩汉光,谢颖华等.基于WAMP的网站流量数据分析[J].计算机系统应用,2014(7):94-99.
[5]传智播客教材编辑部.PHP程序设计高级教程[M].中国铁道出版社,2014(8):33.
[6]仇伟明.基于Visual Basic环境下数据库访问技术的研究[J].长春工业大学学报自然科学版,2014(10):35-40.
[7]刘伟,胡志刚,刘宏韬等.单例模式导向的源代码自动重构研究[J].小型微型计算机系统,2014(12):2664-2669.
[8]刘耀钦.单例模式及其扩展在Web开发中的应用分析[J].计算机系统应用,2014(05):218-221.
[9]朱杰.使用HTTP协议传输数据的几种方式的比较[J].信息与电脑,2014(08):42-47.
[10]齐越.基于PHP的BBS论坛管理系统的设计与实现[C].吉林大学,2015(05):45.
[11]张顺吉,李红林.基于WEB的科技符号在线输入的研究及实现[J].曲靖师范学院学报,2011(11):28-32.
[12]陈洪磊,施秋萍.基于C#的OLEDB 和COM组件对Excel文件操作[J].大众科技,2014(6):6-9.
[13]曾一,冉忠,郭永林等.试题库中自动组卷的算法及试卷测评策略[J].计算机工程与设计,2006(8):3024-3027.
[14]许永达.基于改进遗传算法的智能组卷研究[J].计算机与数字工程,2013(02):51-55.
[15]谭鸿健.基于职业能力发展规律的PHP课程教学实践[J].高教论坛,2015(03):82-86.
The Design and Development of Web-Teaching System Based on WAMP Frame
Luo Yun-fang1Huang Jin-zhu2
(1.Guangxi Vocational and Technical College, Nanning, Guangxi 530226; 2.Guangxi Technological College of Machinery and Electricity, Nanning, Guangxi 530003)
Abstract:The course of PHP Website Building and Development is so abstract that the students can hardly understand and grasp the knowledge. In view of this, we designed and developed a web-teaching system based on WAMP frame, which can help the students to review what they have learned, answer their questions after class, and conduct online testing. It shows that this system can help the students to explore the learning content deeply and promote the teaching quality effectively.
Keywords:PHP website building and development; WAMP; singleton pattern; test paper composition
中图分类号:TP391
文献标识码:A
文章编号:1674-3083(2016)02-0012-05
收稿日期:2016-03-04
基金项目:PHP网站建设与开发课程教与学资源平台的开发(桂职院〔2015〕174号151208)。
作者简介:罗云芳(1981-),男,广西贺州人,讲师,硕士研究生,主要研究方向:软件工程,计算机应用技术及计算机教学。黄锦祝(1965 -),男,广西武鸣人,教授,学士,研究方向: 计算机应用及软件开发。