基于PHP+MYSQL教务排课系统的设计与实现

时间:2022-10-09 05:02:29

基于PHP+MYSQL教务排课系统的设计与实现

摘要:排课是高校教务管理中一项重要而繁琐的工作,针对于手工排课易出错,效率低等一系列问题,采用当前流行的B/S三层体系结构,将PHP和MYSQL数据库相结合,设计实现了教务排课系统。主要对该系统的系统功能模块、排课算法等做出了详细的论述。

关键词:PHP;MYSQL;教务排课系统

中图分类号:TP301.6 文献标识码:A 文章编号:1007-9599 (2011) 22-0000-02

Academic Scheduling System Design and Implementation Based on PHP+MYSQL

Gao Wang

(Wuhan Institute of Physical Education School of Sports Science and Technology,Wuhan 430205,China)

Abstract:Scheduling in Educational Administration is an important and tedious work,for in the error-prone manual Scheduling,efficiency and low range of issues,using the popular B/S three-tier architecture,the PHP and MYSQL databases combination of design and implementation of the Academic Scheduling System.Major system functions of the system,Scheduling algorithms to make a detailed exposition.

Keywords:PHP;MYSQL;Academic Course Scheduling System

排课工作一直是高等院校教学管理中最基本的、最重要的工作。近年来,高等院校的招生规模不断扩大,如果采用过去的手工排课,费时费力且容易出错,其方便性,科学性难以保证。开发简单实用的教务排课系统已经成为满足教务工作高效管理的迫切需求。

一、PHP+MYSQL技术

PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP可简单地视为一种较流行的开放动态网页的程序语言,是一种服务器端的,嵌入到HTML中的脚本语言,是一种风格类似于C语言的超文本处理语言[1]。与其他的动态网页开发语言相比,PHP将自身程序嵌入到静态网页文件中去执行,从执行效率上看,要高于完全生成HTML标记的CGI;与客户端脚本语言JavaScript比较,因为PHP是在服务器端执行,所以可以充分利用服务器的性能;PHP执行引擎还会在内存中保留用户经常访问的PHP程序,正是由于这个原因,当其他用户再次访问驻留在内存中的程序时就不需要重新编译了,只要直接执行内存中的代码即可,这也体现了PHP的高效率[2]。正是由于这些特性,所以本系统采用PHP作为服务器端脚本语言。

MYSQL是一个数据库管理系统软件,是一种比较流行的关系型数据库。和其他数据库管理系统(Oracel、DB2、SQL Server等)相比,MYSQL具有小巧、功能齐全、查询快捷,并且完全免费使用等特点[3]。

所以,采用基于PHP+MYSQL技术开发的教务排课系统,具有性价比高、灵活、使用广泛和有良好支持的特点。

二、教务排课系统的具体实现

(一)功能模块

教务排课系统的功能模块总体上可分为权限管理、编辑信息、数据导入导出、课表查询、报表生成与打印、智能排课、帮助七个模块,如图1模块功能图所示。

图1功能模块图

各个模块功能如下:(1)权限管理:系统管理员可增加、删除用户(包括管理员),并设置用户权限,也可修改自己的密码。普通用户只能修改自己的密码。(2)编辑信息:可删除所有信息,以便重新输入信息;可输入系别、班级、课程、教师、教室、教师任课(可以设定总课时;可以设定合班课的课程、班级、教师;可以设定单双周;可以由教师设定课程可用时段;可以设置指定教室;可以设置当课时总数超过总课时时,能否进行减少课时;可以设置排课先后,即哪些课排在前,哪些课排在后。)(3)数据导入导出:可以导入导出Excel、备份数据。(4)课表查询:可以分别以班级、教室、教师为关键字进行查询。(5)报表生成与打印:可生成的报表包括班级课表、教室课表、教师课表、排课总表。可直接生成Excel,也提供打印功能。(6)智能排课:可以自动排课;可以重新排课;可以进行手工调整。(7)帮助:系统功能和用户操作手册。

(二)排课算法

教务排课系统实现的关键是算法。一个好的排课算法不仅可以有效地实现各个功能模块的要求,而且可以很好地降低程序设计的复杂程。其重点在于算法的设计。排课是一个涉及教师、班级、课程分布、时间分配、座位、地点等多种因素的优化组合问题,并且已经证明是一个NP问题。目前为止还没有一套算法可以完全解决此问题,只是利用类似解决的方法来优化组合问题。在本教务排课系统的设计上采用的是优化资源查找算法,即把每一个教学任务作为一个基本单位,以计算教学任务排课优先级为基础,自动安排教学任务的时间和教室。

1.确定时间。首先,对所有教学任务中的课程依据设定的优先级进行从高到低的遍历,然后,安排合适的教学时间和教学地点。为了使排课的难度降低,先确定合适的教学时间,教学时间的安排要使相应教学班的时间资源不冲突,也要使教师的时间资源不冲突,当所有教学任务的时间安排好之后,再安排教学任务的教学地点。

2.确定教室。当所有教学任务时间确定之后,接下来的工作就是确定教室。在为教学班确定教室时,也需要设置多个优先级,需要特定教室的教学班,需要特定类型教室(如机房、实验室等)的教学班设置较高的优先级,人数越多的教学班,优先级越高。即对教室要求条件越多的教学班安排教室的优先级越高,反之则优先级越低[4]。如果安排教室时出现了冲突,即将多个教学班安排在同一教室时,则将其中某一个教学班重新安排到其他时间片,直到冲突不再出现,该教学班安排到合适的教室为止。

(三)冲突处理

排课系统中会存在着一些硬性冲突:班级冲突、教师冲突、教室的冲突等。其中教室的冲突包括:同一时间所能提供的教室总数小于安排的课程总数、同一时间在同一教室安排多门课程、某一课程所安排教室的座位数小于参加学习的总人数等。也存在着一些软性冲突,比如课程在一周上多次时,要有一定的时间间隔、尽量将课程安排在上该类课程效果最好的时间段上等。

在排课过程中应当遵循一定的基本规则,只有将规则融入算法中才能够在满足功能要求的同时避免冲突的发生,这些基本原则主要有:(1)特性突出的班级优先级最高。(2)同一时间段同一班级的学生只能安排一门课程。(3)同一时间段同一教师只能安排一门课程。(4)同一时间同一教室只能安排一门课程。(5)同一时间段安排的课程总数只能小于所能提供的教室总数。(6)某一课程参加学习的总人数只能小于所安排教室的座位数。

三、实现方法与运行平台

本系统在前台页面设计上使用XHTML+CSS技术实现表现层与结构层分离遵循WEB标准,使得样式代码文件的层次含义分明,更加便于维护与修改。后台使用流行脚本语言PHP编写,搭配性能稳定My SQL数据库。在开发教务排课系统时,具体开发流程可以概括为以下四步:(1)对排课系统进行详细的需求分析,编写需求文档。根据WEB标准制作前台页面。(2)首先根据数据库需求分析,创建数据库和数据表,如创建用户表、教师信息表、课程信息表、班级信息表等;然户确定每个数据表的字段含义、属性、定义主键索引,并建立表之间的关系。(3)采用Web系统常用的MVC三层体系结构来实现后台部分,并采用面向对象的设计思想设计实现常用模块,如系统安装模块、用户管理模块、智能排课模块等。(4)编写PHP主程序开发平台是 WINDOWS 2003操作系统,开发工具是DreamWeaver CS3,运行平台是Linux Redhat 9.0,WEB服务器是Apache2.0。

四、结语

本文介绍了基于PHP+MYSQL技术的教务排课系统设计与实现。通过本系统能够实现智能排课,课表生成准确快速,提高了排课效率,减少了工作量,使课表更加合理,避免了手工排课带来的弊端。同时,本系统还存在一些不足,需要在实践中进一步完善和扩展。

参考文献:

[1]杜江.PHP5完全攻略[M].电子工业出版社,2010

[2]王勇.说说脚本语言[J].软件世界,2007,11

[3]贾素来.使用PHP和My SQL开发动态网站[J].大众科技,2011,3

[4]潘以锋.高校智能排课系统的算法[J].上海师范大学学报,2006,5

上一篇:新旧会计准则下金融工具和长期股权投资的变化 下一篇:浅议岩土工程勘察施工中存在的问题及解决方法