毕业设计-排课管理系统[管理资料]

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

毕业设计(论文)设计题目排课管理系统
电大分校:
学生姓名:
学号:
指导教师:
完成日期:
目录
引言.................................................. 错误!未定义书签。

第一章系统概述 (4)
1.1排课管理系统概述 (4)
1.2排课管理系统的目的和意义 (4)
第二章系统分析 (5)
2.1 编程环境选择 (5)
2.2设计大纲 (7)
第三章设计内容 (9)
3.1实现功能 (10)
3.2功能与模块的设计 (10)
3.3数据库设计 (10)
3.4数据表设计 (11)
第四章系统流程图设计与分析 (14)
4.1登陆系统流程图 (14)
4.2主界面中课表生成部分流程图 (14)
4.2.1班级管理流程图 (14)
4.2.2班级课程处理流程图 (15)
4.2.3课表生成部分流程图 (16)
4.2.4报表输出功能 (17)
4.3其它模块设计说明 (18)
第五章设计进程 (19)
第六章结论和总结 (20)
致谢 (22)
参考文献:.............................................. 错误!未定义书签。

附件:程序清单
引言
计算机已经成为我们学习和工作的得力助手:今天,计算机的价格已经十分低廉,性能却有了长足的进步。

它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;
第四,计算机可以使敏感文档更加安全,等等。

在中小学中用计算机管理排课的意义现在我国的中小学校中排课的管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。

我作为一个计算机应用的大专生,希望可以在这方面有所贡献。

改革的总设计师邓小平同志说过"科学技术是第一生产力",我希望能用我三年的所学编制出一个实用的程序来帮助中小学进行更有效的课程管理。

第一章系统概述
1.1 排课管理系统概述
排课管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以排课管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统人工的方式管理文件排课,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对排课信息进行管理,具有着手工管理所无法比拟的优点。

例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高
排课管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

1.2排课管理系统的目的和意义
终上所述,开发这样一套排课管理软件成为很有必要的事情。

我们所开发的这排课管理软件归纳起来,好处大约有以下几点:
1.可以存储历届的排课,安全、高效;
2.只需一到二名排课录入员即可操作系统,节省大量人力;
3.可以按照录入人员的输入来自动生成课程表,并尽量减少冲突等情况发生。

排课系统的设计分析根据实际情况,我们使用原型法(Rapid Prototyping)即以少量代价快速地构造一个可执行的软件系统模型。

使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。

此时模块也发展成为最终产品了。

第二章系统分析
编程环境选择
编程环境的选择微软公司的Jsp是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。

Jsp提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。

故而,实现本系统VB是一个相对较好的选择。

关系型数据库的实现Sqlserver2000 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。

Sqlserver 的优点在于它能使用数据表示图或自定义窗体收集信息。

数据表示图提供了一种类似于Excel 的电子表格,可以使数据库一目了然。

另外,Sqlserver 允许创建自定义报表用于打印或输出数据库中的信息。

Sqlserver也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。

Sqlserver 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。

如上所述,Sqlserver 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。

二者的结合(DBA)微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及Jsp 来访问数据库并对其进行各种操作。

Jsp、Sqlserver 以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。

当今的微软对数据库中的ADO比较注视,,鉴于ADO在很多程序里的广泛应用,使用ADO来连接数据库将是最为适用的,并且在定义了ADO 的连接模块后,对于将来的升级也会很方便,只要修改一下连接源,就可以轻松的更换后台。

在使用Jsp语言进行编程时还有有如下的优点:
Jsp应用程序不同于其他语言开发的单一性程序。

使用Jsp编程时,必须首先确定应用程序如何与用户交互,如鼠标单击,用户必须编写代码控制这些事件的响应方法。

使用Jsp开发数据库应用程序的一般步骤如下所示:
(1)建立数据库
(2)建立用户界面
(3)编写代码
(4)调试运行
(5)编译应用程序
(6)发布应用程序
界面设计
(1)控件的位置
(2)界面元素的一致性
(3)保持界面的简明
(4)使用颜色和图像:增加视觉的感染力
(5)图像和图标:增加应用程序的视觉上的趣味
(6)选取字体
Jsp应用程序的结构:
由于Jsp应用程序是基于对象的,所以应用程序的代码结构就是该程序在屏幕上物理表示的模型。

根据定义,对象包含数据和代码。

在屏幕上看到的窗体代表属性,这些属性定义了窗体的外观和内在特性。

本设计主要是运用ADO来连接和操作数据库。

附:ADO 技术简介
ADO是Microsoft目前主要的数据存取技术,从1997年Microsoft推出ADO 的第一个版本之后, ADO的整体架构并没有太大的改变。

不过在每一个新的ADO 版本之中,Microsoft不断地改善ADO的执行效率,提供更多的功能,持续增加ADO的稳定性,并且让ADO能够存取更多种类的数据源。

ADO是Microsoft提出的各种数据存取技术的演化结果,因为随着数据日益复杂,数据存取技术也必须不断地进步以适应应用系统的需求。

目前,虽然ADO 是Windows平台存取数据的标准技术,不过ADO也将会继续演变。

要了解ADO 为什么会成为目前的标准,可以从Windows平台数据存取技术的进化而得知。

1. ODBC
1992年Microsoft和Sybase、Digital共同制定了ODBC标准接口,以单一的ODBC API来存取各种不同的数据库。

随后ODBC便获得了许多数据库厂商和Third-Party的支持而逐渐成为标准的数据存取技术。

ODBC以当时的业界标准规范X/Open Call-Level Interface(CLI)和ISO / IEC9075-3 Call-Level Interface(SQL/CLI)为涵盖的范围,因而支持了广阔的数据库。

虽然ODBC在初期的版本中执行效率不佳,而且功能有限,因此也为人们所贬低。

但是,随着Microsoft不断地改善ODBC,使ODBC的执行效率不断增加,ODBC驱动程序的功能也日渐齐全。

到目前,ODBC已经是一个稳定并且执行效率良好的数据存取引擎。

不过ODBC仅支持关系数据库,以及传统的数据库数据类型,并且只以C / C + +语言API形式提供服务,因而无法符合日渐复杂的数据存取应用,也无法让脚本语言使用。

因此Microsoft除了ODBC之外,也推出了其他的数据存取技术以满足程序员不同的需要。

2. DAO
1993年Microsoft为了让程序员能够存取Sqlserver数据库,使用OLE Automation技术封装了Jet Engine。

这些使用Jet Engine存取Sqlserver数据库的OLE Automation Object便称为Data Sqlserver Object(DAO)。

DAO能够存取x Base的数据库以及Excel文件,并且能够结合ODBC存取关系数据库。

但是DAO毕竟主要的设计目的是存取Sqlserver数据库,因此DAO在存取Sqlserver 数据库时非常有效率,但是在存取其他的数据源时却表现得不怎么好。

目前DAO 已经慢慢接近维护的状态。

3. RDO
由于DAO在结合ODBC存取关系数据库时表现得并不好,因此在1995年Microsoft同样以OLE Automation技术直接封装ODBC API,让程序员能够存取关系数据库。

这种数据存取技术便称为Remote Data Object(RDO)。

Microsoft 之所以推出RDO,是因为ODBC API是非常复杂的API,许多程序员无法直接使用ODBC API来开发应用程序,因此Microsoft以简化的RDO对象让程序员能够较为简单存取数据。

此外,通过RDO,VB和脚本语言也能够存取各种关系数据库。

不过目前RDO也已经逐渐地被放弃了。

4. OLE-DB
随着数据源日益复杂化,现今的应用程序很可能需要从不同的数据源取得数据,加以处理,再把处理过的数据输出到另外一个数据源中。

更麻烦的是这些数据源可能不是传统的关系数据库,而可能是Excel文件,Email或Internet/Intranet上的电子签名信息。

Microsoft为了让应用程序能够以统一的方式存取各种不同的数据源,在1997年提出了Universal Data Sqlserver(UDA)架构。

UDA以COM技术为核心,协助程序员存取企业中各类不同的数据源。

UDA 以OLE-DB (属于操作系统层次的软件)作为技术的骨架。

OLE-DB定义了统一的COM接口作为存取各类异质数据源的标准,并且封装在一组COM对象之中。

藉由OLE-DB,程序员就可以使用一致的方式来存取各种数据。

5. ADO
ADO(ActiveX Data Object)是微软新近推出的新一代数据访问规范,其使用简便功能强大,在Delphi 中其地位等同于一个和BDE并列的数据库引擎。

ADO是MDAC 的应用程序设计接口,从它的字面意思上可以看出,ADO和Active X技术密不可分,而Active X技术又和OLE,COM(组件对象模型,也由微软提出,旨在实现软件组件化)等技术有深厚的历史渊源。

OLE DB 则是系统级的接口,定义了一套从关系数据库及文件系统访问数据的COM接口。

经过慎重考虑,并尽量使排课的速度加快,因此对各位教师和各班级都建立一个占用表,首先计算当前要排课程的老师的已排课程占用情况,将其与排课班级的占用表进行对比,获取有用空间,即得到的空间都会适合,这样使用随机推举的方式来自动生成一个新位置,达到排课效果,并且不会造成冲突等情况的发生。

排课作为系统的主要重点,在编写中就要尽量避免各种各样的冲突和错误发生,因此也需要经过投入长时间的测试与使用才能使程序的功能达到最好,速度最快。

在课程表输出方面,将采用目前最常用的报表形式来进行输出,并且同时使用VB中操作EXECL的方法将课程表输出到EXECL自制的课程表模板文件中,并且同时可以实现打印,这样用户如果在认为报表输出的格式并不能让您满意的话,就可以根据自己的需要来修改EXECL的模板,达到课程表的完美输出。

第三章设计内容
1 掌握学校所有的课程和教师的信息。

包括每门课程的时间、班级以及任课老师的姓名等。

2 针对不同的人员授予不同的权限。

提供灵活的浏览、查询功能。

可以查看某个系、某个班级所有课程的信息。

3 可以对一个或多个班级进入课程管理与排课表管理,可以不限次的生成该班级课程表。

4 可以对课程进行变动管理。

既可以手工排课,又可以实现自动排序功能。

5 帮助系统维护可以实现:操作日志、重新登录、打印设置(包括统计各种报表及打印等)、退出等操作。

6 提供一种或多种课程表输出功能,并使用活动的模板输出功能,输出样式可以由用户自定义。

7 实现功能全面化,由于每个学校或班级的每天课程数目或时间都不太一样,实现智能计算总课程数目和管理对应的时间段,并且根据每门课程的独立分布式来进行排列(例如:大学语文自动排列的分布方式可以是周一至周六,那么系统就会自动将其平均分布在周一至周六这些天里)
8用户管理:设置两个级别用户:管理员和普通用户,管理员有权限操作系统中的所有数据,普通用户只能以执行查询,输出之类的功能,无法对系统进行实质性的操作,用户使用本系统之前必须先通过身份认证(用户级别、用户名和密码,密码输入有次数限制,连续三次输入错误密码则锁定该用户)
设计思想
本系统采用各班级独立划分管理,所有教师均可为任何班级服务,各班级根据每天课程数目来进行自动排序,同时各教师允许教学多门课程,因此为了每名教师配置了时间占用表,只要与班级对应的时间空间表未被占用,都可以参与排课,并根据用户定义的要求排出课程。

数据管理类:由于班级,时间,教师,课程等信息都需要一个活动的管理过程,因为在节省资源的情况下,将各数据所需要的代码合并在一起进行编写和使用。


各模块设计与分析
此处中各模块的设计与分析在以下各模块数据流图与程序中同步讲解。

系统ER图
系统E -R图说明:
本系统是一个排课管理系统,主要是根据班级为单位,利用班级与课程来进行排课。

班级与课程是一对多的关系,班级不能重复,但是课程可以随意出现任何班级。

班级与班级课程信息之间也是一对多的关系,一个班级,可以有很多不同的课程。

班级与临时生成课表是一对多的关系,一个班级,只能有一个课程表,而排列的方式都同样由班级获得。

其余的数据库建立都是在让系统方便使用的基础上建立的,还有一个无需用户手动添加数据的,做为内部参数来使用的表,这里就不用标出的了。

数据字典
数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实完善的。

明确地需求收集和分析作为数据库设计的第一阶段是十分重要的。

这一阶段收集到的基础数据(用数据字典来表达)和一组数据流程图(Data Flow Diagram,简称DFD)是下一步进行概念设计的基础。

以下是本系统的数据结构,因实现使用方便的特点,数据库中的各字段列表直接用中文来表示,所以数据字典在以下数据库设计中已经没有什么太大的
必要。

详见数据库的设计:
数据库的概念数据库是一种存储数据并对数据进行操作的工具。

数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。

计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。

关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,像记录、域等。

新建一个数据库创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。

创建一个数据库结构的过程被认为是数据模型设计。

创建一个数据库的大体思路如下:
1.标识需要的数据;
2.收集被标识的字段到表中;
3.标识主关键字字段;
4.绘制一个简单的数据图表;
5.规范数据;
6.标识指定字段的信息;
7.创建物理表。

数据库的修改分为:添加、编辑和删除记录。

这三种操作均可由Jsp 创建的程序来完成,下面的章节将详细描述实现的具体方法。

实现数据库之间的联系数据库之间的关系指明两个库之间共享一个共同的关键字值。

一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。

一个更高级的连接形式称为自连接。

这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。

数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。

在表中使用的关键字类型用于描述数据库表示什么以及在数据库中如何与其它的库建立关系。

在众多的数据库中,Microsoft 的Sqlserver是操作最简单,使用最为广泛的一种数据库软件,在单机上运行有着方便、实用、操作员要求低等特点。

在这里,我选择了使用Sqlserver数据库管理系统,来开发一个小型的销售管理系统。

在系统的数据库设计中,应遵守以下的原则:
①数据结构的合理性。

即数据文件的合理组织,数据元素的合理归类和划分,
以及数据项的合理描述。

②数据存储的安全性。

提高安全性的最为有效的措施是增加数据的冗余,而数据的大量冗余往往为维护数据的一致性带来了困难。

对此,根据实际需要进行合理取舍,在尽量降低冗余的前提下,确保数据的安全性和可靠性。

③维护和管理方便。

存储结构的设计,首先应保证对数据进行管理和维护上的方便,它是提高系统运行效率的基础。

在使用Sqlserver创建“排课管理系统”数据库系统中需要建立的数据表有:
1 登陆
2 课程名
4
5 课程占用表
6 系统日志
7 系统设定
8 占用
第四章系统流程图设计与分析
设计说明:进入主界面后,等待操作用户输入用户名和密码,在输入之后按确定进入,验证用户名和密码,实现流程:
(1) 检测数据库中有无管理员帐号,如果有,则等待用户输入用户名和密码,否则按程序本身自动执行插入命令,新建一个管理员用户,并等待用户输入.
(2) 验证用户名和密码是否正确,错误次数不能超过三次,超过三次则退出系
统登陆界面
(3) 当验证通过后,检测该登陆用户的管理权限,并设置变量传值给主窗体.
主界面中课表生成部分流程图
班级管理流程图
模块设计说明:班级的操作部分是排课程序正常执行的重要部分,班级的添加不允许有同名的班级出现,而修改也不能做到修改班级名,班级名称将作为不可修改的数据部分,而删除部分,在删除之前必须保证该班级的课表是否已经生成,如果是,则需要注销课程表,这样做是让该班级生成的课表占用教师空间的部分全部返回,这样不会使教师的空间被反复占用,而最终导致错误发生。

班级课程处理流程图
模块设计说明:课程数据的添加,修改或删除都会影响到已生成课程表的返回,因为在操作之前必要保证课程表属于未生成状态,如果当前为生成状态,则需要注销课程表,这样才可以继续操作。

注:已生成课程表的返回:由于课程表排列好后,对应的课程后教师的排课占用表都会有标记标明,如果这时修改了某此数据后,这教师的占用表并没有恢复到
未生成状态,这样就会导致不可预知的错误发生。

课表生成部分流程图
注解:
A:每周课程数是否大于课程表的表格数B:退回以前曾生成的课程表,此操作达
到将各位老师和该班级的排课占用情况返回到未生成状态
当前所排课程与当前班级的可
在当前课程当前节排列成功后,
模块设计说明:此处将执行的数据分成很多小部分来执行,这样做可以在测试中便如发现问题,因为排课系统的要求非常高,所以在程序实现方面是以由简到繁的过程。

(1)排课中要求的每周课程数相加不能超出定义的课表范围,否则也将会出现
死循环。

(2)列出对应课程教师的未被占用的排课列表和班级的课程占用表。

(3)穷举法列出以上两者之间的共通点,可用点。

(4)最后通过循环随机选择来实现课程的定位与排列。

(5)课程定位中不允许每天有相同的课程重复,并按规定来执行按什么样的格
式来排列,例如两节连排,也就是说可以把该课程在同一天排在一起,可以实现两节课连上,这是大学课表里最常用的一个功能。

报表输出功能
a:通过班级来获取对应的生成课程表数据
并赋值给某个打印变量或数据集
b:打开MDI窗体,并在其中显示报表窗
体,将该报表的数据源定义为a所赋值的
语句变量
模块设计说明:此处采用了两种输出方式,第一种是普通的报表方式输出,可以实现一般的打印预览等功能,第二种则是采用模板功能,用户可以自由修改模板,前提是不可以更改数据位,其它的部分无论如何修改都没有关系。

(用户管理模块,时间段模块,课程管理模块)
此处几个模块是经过资源优化将其与班级管理整合在一起的,此处工作流程基本上与班级管理的流程相同。

调课功能实现及设计说明
由系统自动排课生成的并不一定能完全达到用户所想需要的效果,虽然在程序中解决了系统冲突的出现,但是因为某些原因而出现临时的原因都需要进行调课,因此排课系统中除了自动生成课表还必须有很灵活的调课功能才能让系统更完整,也便如使用.
此处调课是事先获取系统有用资源空间,并在图表中进行背景色变色显示,提示用户该门课程可以调动至变色显示的地方,主要是通过班级的课程占用与该教师的排课占用情况进行对比,寻找有利和适用的位置,并等待用户进行调课操作.
执行调课:在进行以上操作后,计算机自动等待用户选择系统列出的调课点,在选择某调课点后,系统自动清除数据库的中该课程的教师与当前班级该处资源占用情况,并同时清除图表中的资料,将其重新放置到新位置,并修改新地点的资源占用情况,最后将图表的可调位置背景色还原回正常状态.
第五章设计进程
3月13日:获得毕业设计课题与论文规范
3月14日:构思后台数据库的内容,前台操作界面与实现大体的功能
3月16日:创建数据库后台,建立连接数据库的模块,创建主界面窗体,并初步使用数据处理
3月17日:构思资源优化,对排课必须的功能进行归纳并构思采用排课
方式
3月21日:构思采用教师与班级之间的资源占用表来进行穷举法排列,
并通过随机生成取得理想排课位置。

3月24日:完成生成课表部分代码,并进行反复测试,寻找系统错误部
分,并加以修改。

相关文档
最新文档