基于.NET框架的排课系统研究与设计

时间:2022-09-24 10:50:46

基于.NET框架的排课系统研究与设计

【摘 要】文章介绍了采用B/S结构和动态网页技术,利用VS2005+SQL Server2005设计的排课系统,以及建立该系统的技术方案,包括系统可行性分析和需求分析、系统功能设计及数据库设计,并给出了实现方法。

【关键词】排课系统 B/S结构 SQL Server2005

一、排课问题提出及实现意义

课表编排是一个涉及到多种因素的典型的组合规划问题,它要保证在课程中安排教师,学生,教室不能产生冲突,并且要满足教师的要求和教室资源等约束条件。目前,国内的部分高校仍然采用手工排课的方法,工作量大,排出来的课表不宜调节。运用计算运行速度快,处理能力强等特点进行排课能够快速的得到满足约束条件的可行结果,具有排课时间短,人力省和质量高的优点。

二、排课系统需求分析以及系统功能模块划分

排课作为教学管理中重要一部分,由于涉及因素多,约束条件复杂,是整个教学中的重点和难点。在计算机技术和信息技术高速发展的今天,充分利用现有的信息技术手段和先进的工具,开发出简单,高效,实用,安全的排课系统是很有现实意义的。

以目前的技术看,建立B/S结构的网络应用相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。由于B/S架构具有先天的方便、快捷、高效的特点,所以本系统采用B/S架构。

基于B/S结构的排课子系统是教学管理系统的一部分,根据该系统的要求,基于B/S结构的排课系统是集教师信息,班级信息,课程信息,教室信息,课程信息和课表信息于一体的管理信息系统。通过对排课业务进行分析后,确定排课系统实现以下功能:

(一)基本信息管理模块负责对排课所需要的信息进行管理和维护。

(二)课表编排模块是本系统的核心,主要实现课表的自动编排和手工调节功能。

(三)课表管理模块主要提供对课表的查询和打印功能。

三、系统设计

(一)系统设计原则与目标

排课子系统是一个关于课程编排的管理信息系统,主要针对学校教学设计,帮助排课人员处理大量复杂的排课信息,有效的生成课表,节省了排课人员大量的时间和精力。系统设计原则与目标有以下几点:安全性,防止未经授权的人员误用乱用该系统;经济实用,和已有设施紧密配,合充分利用所有设备,避免重复投资;满足对容量和容错的需求;兼容性和扩展性,为满足未来软硬件的灵活部署和容量要求,应考虑系统规模扩展的需求和升级能力;易于管理和维护,系统易于管理和操作;同时,系统维护应尽量集中、简单,尽量避免复杂系统和多系统组合的维护开销,减轻维护人员的负担;强大的可开发性,系统应配备健壮的开发接口和丰富的开发工具,充分支持现有的开发手段和开发成果,开发平台应该易用并足够强大以满足变化的需求。

(二)系统软件体系结构

排课子系统采用B/S结构,统一管理数据库和Web服务器。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构,第一层是客户端(用户界面),提供用户与系统的友好访问;第二层是应用服务器,负责业务逻辑的实现;第三层是数据服务器,负责数据信息的存储、访问及其优化。由于业务逻辑被提取到应用服务器,大大降低了客户端负担,因此也成为瘦客户结构。

(三)系统主要功能模块设计

系统主要功能模块设计包含基本信息管理模块设计,课表编排模块设计和课表管理模块的设计。基本信息管理模块提供对排课基本信息的录入、修改、删除等功能,这些基本信息包括班级信息,课程信息,教室信息,教师信息。课表编排模块是本系统的核心部分,就排课问题而言,其本质是教室、教师、班级、课程和时间5个要素在各自具备一定限制条件的情况下,寻求一种教师,班级和课程在时间和空间上合理分布的复杂的资源分配问题。在完成了课表的编排之后,特意设计课表管理模块对课表进行统一的管理。该模块主要功能是实现教师课表,班级课表和教室课表的查询和打印。该模块设计思路为:在页面中设计三个相应的下拉框,从这三个下拉框中选定相应的项目后,便可以进入相应的课表页面,从而可查看和打印相应的课表。在经过课表的自动排课和手工调节之后,已形成最终既无冲突又符合人为意愿的课表。要实现班级课表的查询,只需调用最终课表中字段为班级名称的记录即可,同样要查询教师课表和教室课表,只需调用最终课表中字段分别为教师编号和教室名称的记录即可。在对各课表查看了之后,还可对课表进行打印。

(四)数据库设计

数据库技术是当今信息时代赖以发展的重要基础技术之一,也是发展较快的计算机技术的重要分支。较好地理解数据库设计原理对于设计出性能高效的数据库系统是很重要的。

B/S结构排课子系统,是一个数据库应用系统,许多信息都是保存在数据库中。在数据库应用系统的开发过程中,数据库的结构设计是一个很重要的问题。我们这里所说的数据库结构设计是指各个表结构的设计,包括信息保存在哪些表格中,各个表的结构如何,以及各个表之间的关系。

数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现等等。

四、统运行环境

服务器端:(1)硬件环境:CPU:P4以上;内存:256M以上,推荐512M;硬盘:40G以上。(2)软件环境:操作系统:windows 2003 server;微软.net框架:.NET Framework 2.0;浏览器:兼容现今主流浏览器。

WEB服务器:IIS7.0;数据库:SQL Server 2005

五、系统具体实现

(一)登录界面的实现

本排课数据库系统包含tblClass(班级信息表), tblStudent(学生信息表),tblSubject(课程科目信息表),tblTeacher(教师信息表),tblRoom(教室信息表),tblTime(课表),admin(管理员信息表)7个表。系统登录界面提供三种权限的用户登录:管理员,教师,学生,以及可实现对教室课表的查询和打印。管理员在输入自己的帐号和密码之后进入系统,可对整个排课业务进行操作,待排课都完成后,教师输入自己的名称和密码,可进去查询自己的课表,并可对该课表进行打印;同样,学生根据自身的权限,可进入系统查询和打印自己班级的课表。此外,教师,学生还可以查询和打印某个教室的课表。

管理员输入自己帐号和密码后点击“登录”按钮触发登陆事件,然后执行事件中登陆验证代码。

教师在输入自己的名称和密码之后,点击“教师登录”按钮,系统定向到相应的页面,实现教师课表的查询和打印。

同样,学生输入自己名称和密码后点击“学生登录”按钮,转向相应的事件代码进行处理,以实现该学生所在班级课表的查询和打印。

教室查询逻辑与此类似,不再重复。

(二)班级信息录入功能的实现

该页面实现排课基本信息之一的班级信息的添加,修改和删除功能,页面文件为Info_Class.aspx. 该页面组成较为简单,由一个table表格和一个repeater控件组成,在table表格中用来输入班级名称,在repeater控件中用来绑定班级ID和班级名称,并提供对班级信息的修改和删除操作。最终班级信息写入到VB_NET排课数据库中的tblclass表格中。实现代码较简单,从略。

(三)课程信息录入功能的实现

该页面实现排课基本信息之一的课程信息的添加,修改和删除,最终将课程信息写入到数据库中的tblSubject表中。 在添加课程信息时,需要输入该门课的总课时和每周课时(两者都必须为整数,规定一节大课为两个课时),用来计算此课在该学期持续的时间,在课表中将显示出该课程到哪一周结束。该页面文件为Info_Suject.aspx。其页面组成和实现方式和Info_Class.aspx类似, 不再累述。

(四)教师信息录入功能的实现

该页面实现排课基本信息之一的教师信息添加,修改和删除,最终将教师信息写入到数据库中的tblTeacher表中。页面文件为Info_Teacher.aspx。

(五)教室信息录入功能的实现

该页面实现排课最后一项基本信息――教室信息的添加,修改和删除。考虑到课都是在特定设备的教室进行,而一老师可以教N个班的N门课程,所以当初在进行数据库tblRoom数据表的设计时,为每个教室关联了一个教师。 在录入教室名称在之后,从关联的教师编号下拉框中选定所关联的教师,最终将教室信息写入到数据库的tblRoom表中。

(六)课表自动编排的实现

该页面为课表自动编排页面,再经过对排课基本信息的录入,确保无误之后,排课算法可自动生成一个初排课表。在该课表中,显示出了课程编排后包含的一些必须因素,如上课地点,上课班级,授课教师和上课时间(包括星期和节次)。考虑到周末教师和学生需要时间来休息或者处理自己的一些事情,故周六和周日不安排课;同时考虑到学校第一大节课都是排一些公共课或是一些理论知识课,基本上不排课,故排课时先从第二大节到第五大节(晚上)排起,若2―5大节已经排满,再排第一大节。实现如下:先定义三个函数IsPkOver,IsPkOver1,IsPkOver2来判断课表中有无重复记录,再定义函数IntoPk来往课表中插入排课数据。

(七)课表手动调节的实现

排课问题是个NP完全问题,其复杂度随着排课规模成指数级增长,当排课规模过大时,会出现“组合爆炸”的问题。该系统只用来排学校的课程,相对来说,排课规模小很多,但仍无法100%保证经排课算法排出来的课表无冲突;同时考虑到,排出来的课表应人性化,应能满足人的主观能动性,故系统中设计了课表手动调节这一功能。

(八)课表查看管理的实现

在经过自动排课手手工调节之后,已形成最后的既无冲突又符合排课人员主观能动性的课表。本页面实现对课表的查看管理,在页面中有三个下拉列框,从中分别可选择某一编号的教师,某班级名称和某教室名称,从而可查询和打印相应的课表。

六、结语

基于B/S架构的排课系统是面对学校课程编排的数据库管理系统,它主要完成排课基本信息的管理,课表的自动编排和手动调节以及各种课表的查询和打印等功能。本系统采用主流网络编程语言来完成整个系统的设计,在数据库的设计上利用了SQL Sever 2005的安全、可靠和高效的数据管理特性。

参考文献:

[1]张海藩.软件工程导论(第四版)[M].北京:清华大学出版社,2003年.140-141

[2]陈惠贞,陈俊荣程序设计[M].北京:中国地道出版社,2006年.367-368

[3]马军.精通2.0网络应用系统开发[M].北京:人民邮电出版社,2006年.7-9

[4]李万宝技术详解与应用实例[M].北京:机械工业出版社,2005年,11-15

上一篇:中国化妆品CCR最佳单品评选大奖 下一篇:又见炊烟升起