基于C/S模式的机房排课系统设计与实现

来源:岁月联盟 作者:韩立华 王玉梅 时间:2010-08-15
摘   该文在从手工排课表到机房排课系统转换问题分析的基础上,对机房排课系统的系统需求、系统设计、系统的基本功能描述等做出了详细论述,给出了基于C/S模式的系统逻辑模型,并对其中较为关键的排课过程和调课过程的算法用流程图方式加以描述。该系统通过实际应用,效果良好。关键词  排课表 C/S模式 数据库 Delphi Sql-server1. 引言目前我院教务处的许多事务都采用机进行管理,如学生选课系统、成绩查询系统等,但在每学期中,各科教师在拿到教务部门下发的实验任务后,就必须到计算中心进行排课登记,排课人员很头痛的就是面对这么多的上机实验课程,如何高效而迅速地安排机房。一直以来排课人员都是使用一张手工排课表,查找到空余机房后再将该课程的排课信息填入其中,最后录入电脑进行打印后张贴到值班室,以供值班人员查阅。这样不仅工作繁琐,效率低下,而且只能安排上机的时间,无法具体安排所用机房,给当日的值班人员增加了不少工作量,同时也不便于课程和机房的查询以及信息的分类汇总与统计。为解决这一系列的问题,我们设计和开发了机房排课系统。2. 系统需求2.1 原始资料特点(1)部门分类:学校包括多个系和分院,如土木分院,经管分院、工程系、材料工程系、计算机系及电气工程系等,而每个系又分为许多专业,每个专业又分为不同的班级;(2)课程分类:包括计算机基础课、计算机制图课、毕业设计、临时性培训课程等;(3)上机性质分类:按课程的类别有“计划”、“设计”、“培训”、“自由”等,如按教学计划安排的课程上机性质为计划;毕业设计的课程上机性质为设计;临时性培训的课程为“培训”,学生计划外自费上机时性质为自由。2.2 要求特点由于机房上课的特点,故排课时以2个学时为一个时间单位,将一天的上机时间划分为6个时段,即1-2节,3-4节,…11-12节,规定了每段的起始时间和终止时间,如1-2节为8:00~9:50。另外,机房上机不同于教室上课,一个机房可以同时安排多门课程,这就需要按班级人数来严格控制机位,暂时排不满的机房在同一时段可以继续安排其他课程。2.3数据结构特点课程、教师、机房、学生四者之间的对应关系在同一上机时段内的相互关系用E-R图表示,如图1所示,
图1 课程、教师、机房、学生相互关系E-R图由图可看出,一名教师可以占用多个机房,而一个机房内可供多个教师上机辅导;同样,对于课程来说,一门课程可能占用多个机房,而一个机房内可允许多门课程同时上机。与在教室上课不同的是,在机房一个教师可以同时辅导多门课程的上机实验。
3. 系统设计3.1系统体系结构排课系统的操作对象分为排课管理员、实验室值班员以及普通用户(包括一般教师、学生等),级别不同,可操作的项目也不同,其系统逻辑模型,如图2所示。

图2 系统逻辑模型
 3.2数据库设计

(1)排课计划表:记录排课的信息,是该系统最重要的数据表,由于要记录的内容较多,如果用一个表来存放信息,将产生很大的数据冗余,故将排课计划表分为两个表:排课计划主表和排课计划子表,主表用来记录每门上机课程的基本信息,如计划编号、上课教师、课程名称、上课班级、上机人数、计划学时、课程代码等;子表则存放每门实验课程的具体机房安排,如计划编号、周次、星期、节次、所用机房、上机人数等,排课主表与子表通过计划编号相关联,两者是一对多的关系,如图3所示;

图3 排课主表与子表 (2)班级信息表:记录全院有上机课程的班级情况,字段有:班级名称、班级编号、所属院系、所学专业、人数等;(3)上机性质表:记录几种主要的上机性质,字段有:性质编号、性质名称;(4)机房信息表:记录机房的主要情况,有机房编号、机房名称、机房性质、机位数、可用机位数、是否允许排课等; (5)课程信息表:记录所有上机的课程情况,有课程名称、课程代号、课程类别、使用环境等;(6)日志信息表:记录有关重大操作的信息,有操作日期、操作项目、计划编号、课程名称、操作员等。3.3系统功能描述系统主要功能模块,如图4:图4 系统主要功能模块 3.3.1.排课管理(1)预约登记:教师从教务处拿到上机计划书后到排课管理员那里申请排课,排课管理员按上机计划书将排课信息录入机保存到排课计划主表中;(2)排课:操作员根据机房使用情况,指定某课程在某时间内的上课机房,并在同一页面内可以查询机房的使用情况和空余情况以及已排课情况;排课时,可以先“预排”, 若预排成功,则可以排课,否则不予排课。也可以直接排课,如果排课条件不满足,系统会自动显示预排课的结果以及不满足条件的原因。此时,系统会提示操作员是否“强制排课”,即在机位条件不满足时强行排课,此功能仅限于当排课人数与机房机位数相差无几时使用,如果排课人数远远超出机房机位数而进行强制排课,会导致上课时出现混乱状况。3.3.2.调停课管理 (1)调课:排好的课程可能由于多种原因而进行调整,引起调课的原因主要有:机房的调换和上课时间的调整,当新调整的机房或时间段空余机位不足时,提示操作员是否要执行“强制调课”;(2)停课:将已排好的某些课程取消,并恢复机时。3.3.3.系统维护(1)修改机房信息:主要是可用机器的数量增加或减少,可用机房的增加或减少;(2)修改班级信息:主要是增加删除班级、修改班级人数;(3)初始化周次:每学期开始排新课时,必须要对本学期的周次、开始时间进行确认;(4)代码表维护:对上机性质、时段划分、课程代号等代码表的增删改;(5)授权管理:增加或删除使用本系统的用户,对用户进行授权。4. 系统实现4.1排课过程算法实现用N-S流程图表示,如图5所示。

图5 排课过程N-S流程图
 

 4.2调课过程算法实现调课算法的步骤实际是先停课后排课,调课方式有三种:(1)机房调整:即上机时间不变,只改变上课机房;(2)时间调整:上课机房不变,仅改变上机时间;(3)同时调整:即时间和上课机房都要变动。停课过程比较简单,只需将相关记录从排课计划子表中删除即可;再排课的过程类似于初排课过程,这里不再赘述。4.3查询结果显示方式无论是排课查询还是机房查询,其查询结果显示的内容都类似,这里以排课查询为例说明。查询时首先会出现一个“定制查询信息”的窗口,设置好查询条件之后单击查询按钮即可看到查询结果,如图6所示:图6查询窗口 该窗口共分为三部分:左边是树形目录,所定制的时间可以在此分层显示,单击某一时间(如图中单击星期五)则在右边上半部分显示所选时间的总排课信息,并以图示的方式显示了机房的占用情况;当单击该表某条记录时,又会在下半部分显示更为详细的排课信息。此种显示方式不但界面美观,操作方便,更重要的是它在容纳大量信息的同时又不显得拥挤和繁杂,使操作者对所查询的信息一目了然,十分清楚。5. 本文介绍了基于c/s模式的机房排课系统的设计与实现,其中Server端选用Windows2000和Sql server 2000,Client端选用Delphi6.0开发应用程序,实现了排课、调课、查询、统计、打印等基本功能,投入实际运行后,不但大大提高了排课人员的工作效率,而且规范了实验室人员的机房管理工作和学生的上机实验过程。6. 1.张亮,杨生树,陈娟《公安院校计算机排课管理的设计与实现》,江苏警官学院学报,2003.52.景雪琴,《从排课表到教室调度表的设计与实现》,计算机应用与软件,2004,23.韩明,《计算机辅助大学排课系统》,电脑开发与应用,2002,104.侯秀萍,《基于C/S模式的自动排课系统的研究》,微机,2003,3