1、 毕业设计说明书大学排课系统的设计与实现院 、 部: 计算机与信息科学学院 学生姓名: 指导教师: 职称 专 业: 信息与计算科学 班 级: 完成时间: I摘 要排课是高校教学管理中最基本、最重要、同时也是最复杂的管理工作之一, 其实质就是使学生、教室和教师的时间相互协调,安排合理的课程表,使教学工作有效有序的进行。排课系统属于信息数字化校园系统的一部分,它依靠计算机来完成复杂的排课部分,避免了手工排课产生的老师上课时间冲突和教室冲突。本系统利用 Java 作为前台开发工具,Oracle 数据库管理系统设计的数据库作为后台。设计此系统前先做了需求分析,根据大学排课的复杂特点及现有的排课系统的功
2、能局限性,以基于优先级的算法为主要思想,设计一种编码码简单、易于系统实现的排课算法,并根据要求设计出课表优化目标函数,通过目标函数值的比较在可行课表中找出较优解。本文主要介绍排课系统的设计构思和实现过程。通过一步步地介绍,让读者体会一个系统的制作大致要做些什么,有哪些过程。本系统用面向对象的方法对排课系统进行分析,进行模块划分设计过程中再根据具体情况对算法进行改造和补充,设计合理的大学排课系统。本系统在设计时力求用户界面友好,基本功能完备,操作简单易用,便于维护。最后,本系统实现了大学排课、查询、补课等功能。关键词:大学排课系统;基于优先级算法;大型数据库;JavaIIABSTRACTCour
3、se scheduling is one of the most basic, most important, is also the most complicated management work of college teaching management, its essence is to make the students, teachers and teachers of the time coordination, reasonable arrangement of the curriculum, the teaching work effectively and orderl
4、y. A part of the course scheduling system belongs to the information of digital campus system, it depends on the computer to accomplish the complicated part of course arranging, avoiding manual course arranging the teacher in the class time conflict and classroom conflicts.The system uses Java as a
5、development tool, Oracle database management system design of the database as a background. The design of this system before the demand analysis, according to the university course timetabling complex characteristics and existing rows of functional limitation of class system, with the algorithm base
6、d on priority as the main idea, design a simple code course scheduling algorithm, easy implementation, and is designed according to the schedule optimization objective function, through the target the function value compared to find better solutions in the feasible timetable.This paper mainly introd
7、uces the design and realization process of course scheduling system. A step by step through the introduction, let the reader experience to make a system about what to do, what process. The system using object-oriented method to analyze the course scheduling system, divided the process design module
8、and according to the specific situation of reconstruction and supplement of the algorithm, the rational design of University Course Scheduling system. The system in the design sought to be user friendly interface, the basic function is complete, easy to use, easy to maintain. Finally, this system re
9、alizes the university course scheduling, query, remedial function.Keywords:University course Scheduling System;Based on priority algorithm;Database;Java目 录1 绪论 11.1 开发背景 11.2 开发意义 11.3 开发目标 21.4 国内外研究现状 21.5 小结 22 开发工具简介 32.1 MyEclipse8.5 32.2 Oracle 数据库 42.3 小结 53 系统需求分析 63.1 系统开发步骤 63.2. 用户需求 .73.
10、3 功能需求 73.4 可行性分析 83.5 小结 94 系统概要设计 .104.1 系统功能分析 .104.2 系统模块划分 .104.3 小结 .125 数据库设计 .135.1 数据库概念结构设计 .135.2 数据库逻辑结构设计 .155.3 系统 E-R 图 .175.4 小结 .186 系统详细设计 .196.1 用户注册 .196.2 用户登录 .206.3 用户管理界面 .216.4 基础信息页面 .226.5 排课 .226.6 查课 .286.6.1 教师查课 286.6.2 学生查课 296.7 补课 .316.8 小结 .317 系统测试 .327.1 测试方法介绍 .
11、327.2 测试工具介绍 .337.3 本系统的测试 .337.4 小结 .35结 论 .36参考文献 .37致 谢 .38附 录 .3911 绪论1.1 开发背景随着信息化社会的发展趋势,各行各业的信息化工作势在必行。作为信息化社会的一员,高等院校的信息化工作必须迎合需要,才能提高办学效率,更好地完成教学任务,跟上社会发展步伐。那么如何推进高校的信息化工作呢?计算机的广泛普及,使高校办公自动化工作的有了很大推进,教务管理自动化也逐渐深入每个学校的教务处。在学校教务工作中,每学期的课程表的排定工作占有很大比重。因此排课是学校管理中十分重要的工作,但又相当复杂,其实质就是为学校所设置的课程安排时
12、间和地点,由此使学校的教学计划能有序开展。那么如何快速合理的排好高校的课程呢?很多高校都采用过手工排课,但传统的人工排课使用手工方法存在许多弊端,如重复结果、效率低下、查找、更新和维护排课结果困难。采用手工排课,往往需要花费教务处工作人员很多时间,要为上千名学生和上百名教师安排出合理的课程表,工作量大,排出的课程不宜调整。因此采取高效的排课方式至关重要。那么如何高效率的完成排课工作呢?自动排课就能解决排课工作量大的低效率问题。利用计算机信息技术,解放双手,做到真正的信息化。1.2 开发意义首先探讨一下排课问题的本质。学校排课就是时间表问题的一类典型应用实例,它要解决的是课程安排对时间和空间资源
13、的利用率,对时间和空间进行有效利用,并且要避免相互冲突。接下来在排课过程中要解决很多问题,如课程的教学效果、教师的特殊要求等多项优化指标。最后将课程安排到相对应的时间和教室。在完成了排课问题的工作后,就能实现自动排课、查课的功能了。比较常见的排课算法有蚁群算法、遗传算法、基于拟人策略算法、改进型回溯算法,但算法的复杂性、算法性能、算法实现难度、编码的复杂程度和排课结果的优良性等方面存在不同程度的差异。根据需求,本文汲取基于优先级的算法思想,设计一种算法编码简单、易于系统实现的排课算法,并根据要求设计出课表优化目标函数,通过目标函数值的比较在可行课表中找出较优解。通过对基于优先级的算法的研究,进
14、而将其应用到排课系统中,利用计算机来模拟手工排课,可以抽象问题中的各个要素、数学表达各种约束条件,并根据课表的组织形式和普遍存在的规律,缩减了问题的搜索范围,有效组织了排课2知识,使其在一定程度上呈现智能化。1.3 开发目标排课系统是学校教学管理系统中的一项重要内容,排课系统的实现结果直接影响到学校的正常教学秩序和教学质量。排课管理的主要任务是把全校各年级所开设的课程进行汇总,然后根据教学计划和教学资源制定全校各个班级的课程表,优化配置各种教学资源,是学校的教学工作科学高效地进行。此次研究的意义在于设计一个智能的排课系统,减轻学校教务管理人员的工作量,提高办学效率,规范教学管理工作。通过对基于
15、优先级的算法的研究,进而将其应用到排课系统中,利用计算机来模拟手工排课,可以抽象问题中的各个要素、数学表达各种约束条件,并根据课表的组织形式和普遍存在的规律,缩减了问题的搜索范围,有效组织了排课知识,使系统在一定程度上呈现智能化。以智能化的排课来解决高校教务处理工作中的繁杂手工排课问题。1.4 国内外研究现状排课问题的实质是什么呢?国内外对于排课问题又有哪些研究及成果呢?在 20 世纪 50 年代末,国外有人开始研究关于如何让安排课表的问题。有些文献试图从图论的角度来求解课表问题,排课问题实际上就是 NP 完全问题。1963 年,Gotlieb 曾提出一个课表问题的数学模型,它标志着排课问题的
16、研究正式进入科学探索阶段。进入 20 世纪 90 年代,国外对排课问题的研究任然非常活跃,例如印度 Vastapur 大学管理学院的 Arabinda Tripathy、加拿大Montreal 大学的 Jean Aubin 和 JacqueSA Feriand 以及 Charles Fleutent 等。1.5 小结 通过分析开发背景、意义及背景,观测国内外关于排课问题的研究,不难发现人们都在探索一种更快,更简便的方法来解决类似于排课这样的复杂、工作量大的问题。本次课题的目的正是要实现一个这样的系统:把复杂的排课问题转化成机器语言,通过计算机程序来安排合理课程,并得到目标课程计划表。现代人类社
17、会的进步依赖于计算机技术的突破,把复杂工作都交给计算机来处理是时代发展的趋势,是技术进步的标志。这也是本系统设计开发的出发点,它的理念就是为用户提供简便易操作的系统,提升用户体验感受。32 开发工具简介不难发现大多数高校的现行教务管理系统均采用网站化管理,这样免去了用户在使用系统时繁杂的安装过程。要实现与教务管理系统很好地对接,因此在设计排课系统时尽可能选用了相同的操作系统和开发工具。此次开发的系统设计采用服务器 windows 7,后台数据库使用 oracle 大型数据库。而客户端采用 window sxp,开发工具为 MyEclipse,应用服务器采用 tomcat。事务处理运行环境为 S
18、SH2 框架。下面来介绍写我所使用的工具,看看为什么要用它来开发大学排课系统。2.1 MyEclipse8.5该版本集成了 Eclipse 3.5.2 的特点,提升了团队协作开发、开发周期管理以及 Spring 和 Hibernate 的更好支持。MyEclipse(MyEclipse Enterprise Workbench)其实也就是将EclipseIDE 进行扩展。在数据库和 JavaEE 的开发、发布以及应用程序服务器的整合方面使用 MyEclipse 可以极大的提高工作效率。总的来说 MyEclipse 是一个很强大的开发工具,它不仅包括了完备的编码、调试、测试和发布功能,而且完整地
19、支持 HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。因此是功能丰富的 JavaEE 集成开发环境。为什么 MyEclipse 的功能非常强大呢?首先 Myeclipse 是一个十分优秀的Eclipse 插件集合,它的支持也十分广泛,尤其是对各种开源产品的支持十分不错,可以用来开发 Java, J2EE 项目。MyEclipse 目前支持的功能有:Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC 数据库链接工具等等。MyEclipse 是几乎囊括了目前所有主流开
20、源产品的专属 eclipse 的开发工具。从 MyEclipse 的构成上来看,它有如下特征:(1)JavaEE 模型J2EE 容易让初学者误解是独立于一套 Java 的技术方案。从更深层次来看,Java 诞生十年,多年前的业务组件还可以使用,软件应用不再由于语言的更迭革命带来毁灭的打击了。(2)WEB 开发工具Java WEB 技术开发技术如下:基本的网页设计语言:html、javascript、css;动态网站:java、jsp(servlet 属于 jsp 中的)以上的作用是从前台网页获取数据和后台4数据库进行交互;数据库:mysql、sqlserver、sqlite、access、or
21、acle,数据库用于保存网站的一下信息(例如:用户信息、网站功能等) 。(3)EJB 开发工具EJB 是 sun 的服务器端组件模型,EJB 最大的用处是部署分布式应用程序,并且使用 EJB 技术部署的分布式系统可以不限于特定的平台。(4)应用程序服务器的连接器(5)JavaEE 项目部署服务为搭建伸缩性强、灵活易于维护的商务系统提供优秀机制。(6)数据库服务实现数据的共享、减少数据冗余、有利于数据的独立性,从而实现数据集中管控。(7)MyEclipse 整合帮助正因为 MyEclipse 具有以上七种功能模块类别的划分,使得它在实际应用中能够实现单独模块的扩展,并且不会影响到其他模块的正常工
22、作。简单而言,MyEclipse 是 Eclipse 的一个插件,是一款功能强大的 JavaEE集成开发环境,支持代码编写、配置、测试以及除错。需要指出的是 MyEclipse5.5 以后版本安装时不需安装 Eclipse。2.2 Oracle 数据库Oracle 数据库系统是美国 ORACLE 公司提供的世界上第一个关系数据库管理系统,由于其优越的安全性、完整性、稳定性和支持多种操作系统、多种硬件平台等特点,成为了最流行的数据库之一。 Oracle 之所以如此流行,主要是因为它的如下特点:(1)支持多用户、大事务的事务处理;(2)提供标准操作接口;(3)分布式处理功能;(4)用 ORACLE
23、 能轻松的实现数据仓库的操作。随着 Oracle 的发展,他也增加了许多新的特性:网络计算数据库、Oracle Real Application Clusters、自动存储管理、信息供应、数据库自动管理、物化视图与查询重写、闪回版本查询与闪回错误操作、数据泵等等。Oracle 也有很多优点,让我最终选择用它做数据库后台,其主要优点有以下几点:(1)拥有很强的有用性;(2)强大的可扩展性;(3)数据的安全性高。5在了解了 Oracle 数据库后,我们来对 ORALCE 和 Microsoft SQL Server 进行比较。Microsoft SQL Server 不提供直接的客户开发工具和平台
24、,它只提供了两个接口:ODBC 和 DB-Library。Microsoft SQL Server 的并行实施和共存模型并不成熟,很难处理日益增多的日常数据,及伸缩性有限。在安全方面,Microsoft SQL Server 并没有获得任何安全证书。在客户端支持 C/S 结构,只支持 windows 客户。虽然 Microsoft SQL Server 操作简单,但只有图形界面。在兼容方面,完全代码重写,延迟较大,并且不完全兼容。而 Oracle 采用的是并行服务器模式。如果数据库数量达到 GB 以上时,在提高系统的性能方面可以从两方面入手,一种是提高单台服务器的性能,第二就是增加服务器数目。
25、基于此,如果我们是提高单台服务器的性能,选择 Oracle 数据库较好,为什么呢?因为 Oracle 数据库能在对称多 CPU 的系统上提供并行处理。分析到了这里,大家就知道为什么要选择 Oracle 而不选择 Sybase SQL Server 了。我现在从事的排课系统的开发,要求有较高的实时性,并且考虑到数据量大,我们后台基本采取的是 Ooracle 大型数据库,以便更好地进行开发工作。 22.3 小结关于开发工具的选择,我们要根据具体的情况来看待,不能笼统地说哪个好我们就用哪个。根据系统的需要,技术开发的要求,我们来选择合适的工具,力求事半功倍。最后选取了主流的开发工具 MyEclips
26、e,后台采用 Oracle 大型数据库管理数据操作,以适应不断扩展的数据量,方便今后的数据管理工作。2孙风栋Oracle 10g 数据库基础教程J北京:电子工业出版社,2012.19-3563 系统需求分析3.1 系统开发步骤由于系统开发的复杂性和多样性,系统开发并没有一个完全统一的过程。尽管如此,一般的系统开发都包括一些固定的开发过程。通过分析,该系统大致确定的开发流程,有计划地进行毕业课程设计,保证开发能有序地进行,并且实现课题目标。事先制定计划的好处在于保证开发工作有序进行,不遗漏任何步骤,提高开发效率。系统开发流程如下图所示:问题的提出计划任务书系统需求分析系统详细设计系统概要设计数据
27、库设计 功能模块设计系统实现系统运行调试与结果分析课程设计说明书完善图 1 系统开发流程图73.2. 用户需求首先本系统需要面向的用户对象有三类,分别是系统管理员、学生和教师。因此对于用户的需求分析要分三类用户来分析。用户需求分析及从用户的角度来描述系统的功能需求和非功能需求,通常只涉及系统的外部行为,而不涉及系统的内部特性。为了便于用户理解,用户需求分析一般不采用技术性很强的语言,而是采用比较直观的语言来表达,是用户使用系统更易上手。用户需求有一个共同点,所有用户均能通过 IE 浏览器登录系统进行相应操作。其他不同需求下面详细介绍一下。系统管理员是本系统最重要的用户,他的需求包括对其余两类用
28、户进行管理及用户信息管理、基础信息管理、排课、查课、补课这五类需求。用户管理就是管理员对登入系统的人员进行准入管理。基础信息是管理员对进入系统的人员的基本信息以及教室、学生、教学计划和教学时间进行管理,方便查看了解人员状况,安排课程时间,制定教学计划。排课是本系统最重要的功能需求,也是管理员最重要的工作,管理员通过基础信息管理功能事先制定好教学计划,进而实现课表的排出。管理人员对排好的课程能进行调整,以应对特殊情况。课表排好以后,管理员能对课表进行查看,及这里的查课功能,并且管理员可以打印出课表。在存在一些特殊情况如突然增加一门课程的,管理员必须能够应对,这里就需要进行补课了,补课功能是管理员
29、将新加入教学计划的课程添加到现有的课表下,而不影响其他的课程。系统管理员的需求是所有用户中最关键的,也是内容最多的。学生是使用本系统人数最多的用户,他们的需求最重要的就是能够以自己的账号(学号)登陆到本系统查询自己所在班级的课表。学生用户通过注册进入系统,这里为了实现学校统一安全管理,学生只能凭学号注册。学生进入系统后不仅可以查自己所在班级的课表,也能查询学校各个班级的课表。这里解释一下为什么这么做,有些同学在学习自己专业课程的同时,也有精力学习其他专业的知识,但是有不清楚其他专业的课程安排,因此本系统考虑到这一情况,特意设置每个学生均可查询各个专业的课程。教师用户的需求与学生大致相同就不做过
30、多介绍了。总之教师也能够查阅所有班级的课表,方便教师安排自己的教学行程。3.3 功能需求功能需求描述应该提供的功能或服务,通常涉及用户或外部系统与与该系统之间的交互,一般不考虑系统的实现细节。本排课系统在功能上的需求与用户需求相呼应,用户需要什么系统就必须8有这些功能。通过对用户需求的分析,可以将系统功能需求归结为以下几类:(1)管理员将获取的教师信息、课程信息与教室信息进行录入。基础信息均由管理员录入,这些基本信息的录入是课表排列的基础,没有这个功能模块是无法得出有效的课表的。(2)通过校园网以 Web 页形式获取教师对排课的要求。凭借网址登录大学排课系统,免去用户繁杂的安装过程,这也是为了
31、呼应校园网络化的需求。以 Web 页形式也是为了适应不断变化的课表,方便教学信息修改后,用户及时查阅,不用更新系统,直接通过 Internet 来在线查阅。(3)将课程按教师授课时间不冲突、教室使用不冲突、班级上课不冲突的基本原则,用合适的算法排出理想课表。除了这些不冲突外,系统也应根据学校教学计划来安排课程,在学校教学时间内安排完该学期内的所有课程。排课这一部分功能是所有功能中的重点也是难点,它关系到课表是否合理,是否可行。因此,在这一部分上要花的时间比较多,这一部分功能能否完成决定了接下来的功能能否完成。(4)应急功能。应付多种特殊要求如补课以解决多种可能出现的问题。为了让本系统更加适应不
32、同的排课要求,需要对排课功能进行补充,及另外增加补课功能。以管理员身份登陆系统后,根据教师、教室和学生的需要,增加课程相应数量,也就是补课。这部分功能和排课功能的算法思想相似,无非就是在现有的基础上增加新的课程,再重新排课。总的来说,最关键的一步还是排课功能是否完善,是否合理了。(5)将排课结果提供给教务管理系统使用。 这部分功能也就是查课功能了。管理员录入基本信息后,使用排课功能得出课程表。学生和教师通过注册后进入系统,查询自己所在班级的课程表。这也就是说只能在排课功能完成的基础上,才可以进行相应课表的查询工作。(6)打印。用户可对查询的课表进行打印,方便查阅。3.4 可行性分析(1)经济可
33、行性 研究经济可行性是为了在新系统能达到最佳的经济效益的情况下使成本最小化。分析经济可行性需要对开发中硬软件支持以及其它费用进行估算,并对系统投入使用后带来的经济效益进行预估。本系统的实现有助于解放双手,用最少在一系列的预估后,事实证明本系统的开发研究是具有经济效益的,因此在经济上是可行的。 9(2)技术可行性 研究技术可行性是为了在开发之前开发者能清楚现行技术条件下是否具备开发该系统的能力,硬件软件配置是否能够满足开发的需要,开发后期对技术的要求开发者能否克服。通过分析后,本系统的开发在技术上是可行的。 (3)操作可行性操作可行性是为了保证在开发过程中所有设备能否顺利完成所有工作。系统开发所
34、使用的设备为个人计算机,该计算机性能稳定,未出现过不能正常工作的情况,因此本系统完全能够顺利开发。(4)方案可行性 研究方案可行性是为了能够更快、更好,高效的完成系统开发。本系统的技术基础成熟,优点突出,因此方案是可行的。3.5 小结进行系统开发之前的需求分析是很关键的,从需求分析中得到的功能需求是系统详细功能模块设计的基础,需求分析决定了系统的功能。可行性的分析是开发系统时必不可少的,是系统能否顺利进行开发的条件。本章对于系统的开发是很关键的,它是开发基础,对于以后的开发工作任然有借鉴意义。104 系统概要设计4.1 系统功能分析本系统具有排课、查课、补课、打印等功能。即使用本系统输入课程、
35、教师、学生、教师等信息,能方便快捷准确输出相应的课表,解决大学排课的复杂问题。因此系统所具有功能模块可分为五大模块,分别为:排课,查课,补课,基础信息,用户管理。排课是排课系统中的核心功能,排课功能的实现基于排课系统,其编程工具和平台仍然采用 MyEclipse8.5 和 Oracle 数据库。查课功能为整个系统中的最终目标,查课功能实现了,系统才算真正完整了。补课功能的实现使得学校在课外进行补课时也能利用排课系统进行排课。基础信息功能模块是管理员管理各项信息的工具,包括班级、学生、教师、教室、课程等等信息。用户管理功能模块属于管理员管理登陆系统人员的模块,用户包括管理员、学生、教师,其中管理
36、员的权限是最高的,能使用所有功能模块,学生和教师只能使用查课和用户管理功能模块。结合系统功能设计,得到系统综合用例图,如图 2 所示:管理员身份验证系统所有操作学生身份验证教师身份验证登陆界面主界面查看相应课表基本信息录入自动排课图 2 综合用例图114.2 系统模块划分排课系统通过管理员录入教师、课程、教室、教学时间等基础信息,根据优先级算法实现自动排课功能,教师和学生在课表生成后登录系统可以查看相应的课表信息。根据以上要求,自动排课系统主要分为七大模块,依次为:用户注册、用户登录、排课、查课、补课、基础信息和用户管理。每个模块下面又有小功能模块。其功能模块图如图 3 所示:教师信息学生信息
37、教室信息班级信息学生用户管理教师用户管理排课管理排课设置管理登录排课系统排 课 查 课 补 课 基础信息 用户管理图 3 系统功能模块图由系统功能模块图可以很直接理解这个系统有一些什么功能,能做一些什么处理。但是它具体是如何工作的还需要详细解释,下面来介绍具体每个功能模块。首先排课功能模块下面的排课管理是管理员对录入系统的课程进行排课,及管理员通过基础信息模块录入的信息来进行排课。而排课设置管理是为了调整课表设置的,管理员课根据具体情况调整课表。这一功能设置于补课相似,补课功能模块是为了补充学校临时增加的课程,使这一课程加入到现有课表下。查课功能模块是本系统最后处理出来的结果,提供给学生和教师
38、查询课表12信息。学生和教师可使用自己的账号登陆系统,查询自己所需要的课表。并且可以将课表打印出来,方便查阅。基础信息功能模块是属于管理员管辖的范围。管理员通过从学校教务系统获得的学生、教师、班级、教师基本信息进行处理录入。这部分基础信息非常重要,它是排课功能模块的基础,没有它课表就无法排出来。这个模块下面的教学计划信息和教学时间信息是用来安排课程上课学期和具体时间的,可以精确到小时。管理员可有计划的录入这些信息,以获取合理课表。用户管理功能模块是管理员对学生用户和教师用户进行管理的模块。管理员可对这两类用户的基本信息进行修改,也可以添加新的用户,或者删除失效的用户。4.3 小结本章主要是对系
39、统大概设计框架做一个介绍,简要的说明系统有哪些功能需求,这些功能需求面对的对象是哪些用户,概要的介绍使读者对系统有个大概了解。 功能分析使每个类型的用户清楚自己可以使用的功能模块,方便用户使用系统。系统功能模块图一目了然地介绍了系统的主要功能,用户可根据需要选择功能。135 数据库设计 15.1 数据库概念结构设计数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典在数据库设计中占有很重要的地位。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程 5 个部分。其中数据项是数据的最小组成单位,若干数据项可以组成一个数据结构,数据字典通过对数据项和
40、数据结构的定义来描述数据流、数据存储的逻辑内容。 3关于本系统的数据库数据字典,经过收集本系统将涉及的数据,考虑了可能扩充和改变的情况后,归结出了系统数据状况。利用 Oracle 来管理排课资源、排课约束条件等信息,利用数据库技术来实现设置排课优先级、课时和时间段的匹配以及处理排课资源的冲突,从而实现自动排课的目的。排课问题涉及到的相关数据项有课程信息、教师信息、班级信息、教室信息、教学时间信息、教学计划信息等,其数据结构分别描述如下:(1)用户信息:包括用户名,密码,类型等;(2)教师信息:包括教师编号,姓名,性别,所授课程编号,职称;(3)班级信息:包括班级编号、班级名称,班级人数,入学年
41、份,所属专业等;(4)教室信息:教室编号、教室名称、教室容量等;(5)教学时间信息:包括班级名称,课程,任课教师,主副课、总学时、周学时、学分、连课、教室;(6)教学计划信息:包括教师所授课程,时间安排等;(7)课程信息:包括课程名,课程号、优先级等;(8)班级课表信息:包括课程名称,教师,上课时间,上课地点等;(9)教师课表信息:包括课程名称,上课班级,上课时间,上课地点等。具体数据字典如下(具体数据项可见数据库逻辑结构部分,这里不做过多赘述):(1)数据文件:用户表;文件组成:用户编号,账号,密码,用户角色;(2)数据文件:学生表;3 王珊数据库系统概论M北京:高等教务出版社,2006.3
42、9-5014文件组成:学生编号,学生姓名,班级,专业;(3)数据文件:教师表;文件组成:工号,教师姓名,性别,所授课程,职称;(4)数据文件:班级表;文件组成:班级编号,班级名称,班级人数,入学时间,专业;(5)数据文件:教室表;文件组成:教室编号,教室名称,教室容量;(6)数据文件:班级表;文件组成:班级编号,班级名称,班级人数,入学时间,专业;(7)数据文件:课程表;文件组成:课程 ID,课程,教师,时间,上课班级,教室;(8)数据文件:教学计划表;文件组成:课程,时间安排;(9)数据文件:课表视图表;文件组成:上课班级,课程 ID,任课老师 ID,周学时,课程名称,任课教师名称;(10)
43、数据文件:教学时间表;文件组成:班级,课程,教师,是否主课,总学时,学分,周学时,是否连课(0:是;1:否),教室;数据流是数据结构在系统内传输的路径。本系统的数据流大体可以表述为以下状况:(1) 注册登录名称:注册登录简述:用户注册登录系统数据来源:学生、教师、管理员学号、工号数据去向:用户表数据组成:学生学号,教师工号,用户编号,账号,密码;(2)课表排列名称:课表排列简述:管理员管理排课数据来源:管理员录入数据去向:课程表数据组成:课程,教师,时间,上课班级,教室;(3)课表查询15名称:课表查询简述:学生、教师进行课表查询数据来源:管理员排课结果数据去向:课表视图数据组成:上课班级,课
44、程 ID,任课老师 ID,周学时,课程名称,任课教师名称;(4)用户管理名称:用户管理简述:管理员对用户进行管理数据来源:管理员录入或用户自行注册数据去向: 学生表、教师表数据组成:学生编号,学生姓名,班级,专业,工号,教师姓名,性别,所授课程,职称;5.2 数据库逻辑结构设计(1)班级表(CSS_CLASS) ;班级表主要用于保存管理员录入的各个班级的基本信息,班级编号是表的主键。表 1 班级表字段名称 字段含义 类型 长度 主键 允许空NO 班级编号 NUMBER 20 是 否NAME 班级名称 VARCHAR2 20 否 否CLASSSIZE 班级人数 NUMBER 20 否 否ENTR
45、ANCETIME 入学时间 VARCHAR2 20 否 否MAJOR 专业 VARCHAR2 20 否 否(2)教室表(CSS_CLASSROOM)教室表主要保存管理员录入的各个教室的基本信息,教室编号是表的主键。表 2 教室表字段名称 字段含义 类型 长度 主键 允许空NO 教室编号 NUMBER 20 是 否NAME 教室名称 VARCHAR2 20 否 否CLASSROOMSIZE 教室容量 NUMBER 20 否 是(3)课程表(CSS_COURSE)课程表主要用于保存管理员录入的课程信息,课程编号是主键。表 3 课程表字段名称 字段含义 类型 长度 主键 允许空NO 课程编号 NUM
46、BER 20 是 否16NAME 课程名称 VARCHAR2 100 否 否PRIO 课程优先级 NUMBER 20 否 是(4) 学生表(CSS_STUDENT)学生表主要用于保存管理员录入的学生信息,学生编号是主键。表 4 学生表字段名称 字段含义 类型 长度 主键 允许空NO 学生编号 NUMBER 10 是 否NAME 学生姓名 VARCHAR2 10 否 否CLASS 班级 NUMBER 20 否 否MAJOR 专业 VARCHAR2 20 否 是(5)教师表(CSS_TEACHER)教师表主要用于保存管理员录入的教师信息,教师工号是表的主键。表 5 教师表字段名称 字段含义 类型
47、长度 主键 允许空NO 工号 NUMBER 20 是 否NAME 教师姓名 VARCHAR2 20 否 否SEX 性别 VARCHAR2 10 否 是LESSONS 所授课程 VARCHAR2 200 否 是RANKS 职称 VARCHAR2 50 否 是(6)用户表(CSS_USER)用户表主要用于保存用户注册时输入的用户信息,用户编号是表的主键。表 6 用户表字段名称 字段含义 类型 长度 主键 允许空NO 用户编号 NUMBER 20 是 否ACCOUNT 账号 VARCHAR2 15 否 否PASSWORD 密码 VARCHAR2 25 否 否ROLE 用户角色 VARCHAR2 20
48、 否 否(7) 课程表(CSS_SCHEDULEDCOURSES)课程表主要是用于保存排课生成的课表信息,与之前的课程表有所区别,从别称可以看出。课程 ID 是主键。表 7 课程表字段名称 字段含义 类型 长度 主键 允许空IDCOURSE主键课程NUMBERNUMBER2020是否否否TEACHER 教师 NUMBER 20 否 否TIME_ 时间 VARCHAR2 200 否 否CLASSES 上课班级 VARCHAR2 200 否 否CLASSROM 教室 NUMBER 20 否 否17(8) 教学计划表(CSS_SCHOOLPLAN)教学计划表主要用于保存管理员录入的教学计划,课程是表
49、的主键。表 8 教学计划表字段名称 字段含义 类型 长度 主键 允许空COURSE 课程 NUMBER 20 是 否CLASSTIME 时间安排 VARCHAR2 20 否 否(9)课表视图(VIEW_COURSE_TEACHINGTIME)课表视图主要用于保存排课生成的课表,及用户可查看到的课程表。表 9 课表视图字段名称 字段含义 类型 长度 主键CLASS_ 上课班级 NUMBER 20 否COURSE 课程 ID NUMBER 20 否TEACHER 任课教师 ID NUMBER 20 否WEEKHOURS 周学时 NUMBER 20 否COURSENAME 课程名称 VARCHAR2 20 否TEACHERNAME 任课教师名称 VARCHAR2 20 否(10)教学时间表(CSS_TEACHINGTIME)教学时间表主要用于保存管理员录入的时间信息,教师是表的主键。表 10 教学时间表字段名称 字段含义 类型 长度 主键CLASS 班级 VARCHAR2 100 否COURSE 课程 NUMBER 20 否TEACHER 教师 NUMBER 20 主键MAIN 是否是主课 NUMBER 10 否SUMHOURS 总学时 NUMBER 10 否CRED