版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 南 京 工 程 学 院 毕业设计说明书(论文) 作 者: 学 号: 院 系: 计计 算算 机机 工工 程程 学学 院院 专 业: 计计算机科学与技算机科学与技术术 题 目: 高校排高校排课课系系统统的的设计设计与与实现实现 指导者: 副教授 助教 (姓 名) (专业技术职务) 评阅者: (姓 名) (专业技术职务) 2008 年 6 月 南 京 毕毕 业业 论论 文文 中中 文文 摘摘 要要 排课问题的研究主要是解决各种教学资源如教室、老师的合理有效利用等问 题,避免老师、班级在上课时间、地点上的冲突,使排课时间分配均匀。一般而 言,在算法设计中为排课操作设置了不同的优先级,逐级排课,有效地
2、降低了排 课时间冲突的概率,提高了排课的成功率。 论文详细介绍了排课算法的设计和实现、数据库的设计和实现,以及数据输 入、信息查询和教师、班级课表输出等功能的设计与实现。在时间选择的灵活性 、排课优先级等方面提出了自己的见解并进行了编程实现,毕业设计所实现的排 课系统只是一种尝试,还有很多不完善的地方,需待日后改进。 关键字 排课 高校 算法设计 delphi7.0 毕毕业业设设计计说说明明书书(论论文文)外外文文摘摘要要 titletitle design and realization of course arranging system for university abstractab
3、stract the study of arranging schedule problem is largely to solve the proper and effective usage of various teaching resources, such as classrooms, teachers and so on, to avoid the conflict on the time or the place of the schedule, and to make the time produced on the average. generally speaking, d
4、ifferent priorities are assigned to the operation of the arranging schedule, make the schedule step by step in the design of the algorithm, and thus bring down the probability of the conflict of the time arranging effectively, increase the probability of the successive arranging. this paper introduc
5、es the design and implement of arranging schedule algorithm、the design and implement of database, and the design and implement of inputting data, searching information ,outputting teacher and class schedule, and so on. the paper shows some originalities in flexible setting of time mode, the priority
6、 of arranging schedule, etc, and finally realizes them in program .the realization of course arranging system in graduate design is only an attempt and there are still a lot of bugs to be improved in the future. keywordskeywords course arranging, university algorithm design , delphi7.0 目 录 前 言 .1 第一
7、章 高校排课系统综述 .2 1.1 课题背景.2 1.2 毕业设计实现系统的特点.3 第二章 开发工具简介 .4 2.1 delphi7.0 简介 .4 2.2 sql server 2000 简介.6 2.3 microsoft visio 简介.8 2.4 powerdesigner 简介.8 第三章 概要设计 .10 3.1 需求分析.10 3.2 模块功能设计.11 3.3 排课算法设计.12 第四章 数据库设计 .16 4.1 实体关系模型.16 4.2 数据库设计.17 第五章 详细设计与实现 .25 5.1 系统主界面.25 5.2 信息录入功能.25 5.3 排课功能.31 5
8、.4 课表输出功能.32 5.5 帮助功能.32 第六章 结论 .34 6.1 测试结果.34 6.2 成果与特色.35 6.3 展望与心得.36 参考文献 .37 致谢 .38 附录 .39 1 排课算法代码实现.39 2. 英文资料及翻译.43 前 言 全球性的网络化、信息化进程正改变着人们的生活方式,internet 技术应用飞 速增长给人们生活工作的各个层面带来了深刻的影响,办公自动化系统作为 internet 的重要应用,也已不可避免的成为各行各业的迫切需要。传统的办公模式 主要以纸介质为主,在信息革命的浪潮中,显然已经远远不能满足高效率、快节奏 的现代工作和生活的需要。如何实现信息
9、处理的自动化和办公的无纸化逐步得到了 人们的重视。办公自动化的发展实际上取决于办公活动的需求和实现这种需求的可 能性。展望未来,全世界都将进入可持续发展的办公自动化时期。 教育行业也迎来了一次全新的办公自动化的改革,教育办公化和办公化教育是 当代和未来教育的世界性发展趋势。近年来,大学的学习方式也在不断的更新,许 多大学的不断发展,采用学分制的管理系统。而随着高校新生的扩招力度加大,各 高校都面临着教室资源紧张的问题,原来每个班有一个固定教室的模式已不存在,甚 至原来一个系专用的教学楼都要考虑参加全校的教室资源统一调整,对高校教务处 来说确实是一个艰巨的任务。 知识经济时代已向我们走来,信息化
10、已经成为社会发展的时代特征。计算机技 术、通信技术和现代信息技术的迅速发展,使建设高校排课系统,不仅是时代发展 的要求,而且是发展教育事业、提高高校教学管理水平和办学效益的需要。高校排 课系统是一个复杂的系统,包括方方面面。排课调课是高校教务管理的一项日常工 作。由于我国高校的基础建设相对落后,加之近年来大规模的扩招,因而师资和教 室资源紧张的问题非常普遍。这项工作靠手工完成一般需要耗费大量的时间和精力, 且多易出错。同时手工操作也容易不充分利用资源满足经常变化的需求。如利用计 算机进行自动排课,不但能使教务人员从繁杂的排课任务中解脱出来,大大提高教 务管理工作效率,而且能改善教学管理质量,合
11、理高效地利用有限的资源,对推动 教学的发展起到非常重要的作用。另外,解决排课问题对解决其他多约束、大规模 的时间表问题也具有重要的指导意义。 第一章 高校排课系统 综述 1.1 课题背景 本部分主要介绍与课题相关的内容,简单描述一下目前排课系统的发展 历史及趋势 ,主要使用的排课算法,然后引出本系统开发时在算法上所具有的 一些特点。接下来着重介绍了开发本系统使用的工具delphi 的一些特性,以 及它在数据库开发方面具有的强大功能 。 .1 发展历史发展历史 传统的人工进行排课,最令人担心的问题就是出现教室资源冲突或教 师资源冲突的情况,而且工作繁琐,工作量巨大,尤其是在给大学
12、校园进行排 课时出现的问题更多。市场流行的排课系统很多,比如:相似排课,智能排 课系统,正信华课程安排管理系统 等等,这些排课软件在解决排课问题时大多 数采用的算法都是回溯算法,排课的效果也都很好。利用回溯算法解决问题的 思路是先选择某一可能的线索进行试探,每一步试探都有多种方式,将每一方 式都一一试探,如有问题就返回纠正,反复进行这种试探再返回纠正,直到得 出全部符合条件的答案或是问题无解为止。这种解决问题的方法就是回溯法。 回溯算法对空间的消耗较少,当其与 分支定界法一起使用时,对于所求解在解 答树中层次较深的问题有较好的效果。但应避免在后继节点可能与前继节点相 同的问题中使用,以免产生循
13、环。回溯算法是所有搜索算法中最为基本的一种 算法,其采用了一种 “走不通就掉头 ”思想作为其控制结构,可用于找解或所 有解以及最优解。 .2 发展趋势发展趋势 计算机软件技术应用于学校的课程安排是发展的必然。充分发挥计算机的优 势,将大量复杂的判断与运算交给计算机来做,是真正意义上的人脑的“减 负” 。教师设置好学校基本情况及排课要求,让计算机排出课程表,适度调课后 的课表就能满意地应用于新的学期。随着计算机软件技术的不断发展,排课效 率高、出错概率低的排课算法也必将会逐渐趋向成熟,功能更加完善的排课系 统也将应运而生。 1.2 毕业设计实现系统的特点 .1 数
14、据管理特点数据管理特点 系统采用半智能化的数据录入功能,工作人员只要对一些基本信息的录入, 系统就会对一些相关联的信息进行自动生成,这样大大的减轻了管理人员的工 作量,以及对数据的冗余性也有一定的改善。对工作效率有一定的提高。 .2 算法特点算法特点 高校排课系统与目前流行的排课系统不同之处在于排课算法的设计上。 本系统采用 简单的回溯算法,虽然它在实际使用中可能不如已有的各种排课软 件,但它是应用程序开发和排课算法设计 的一次尝试,并且它在排课的效果和 效率方面有一定的突破。它在算法上具有如下特点: 1)算法以班级为主线检索 ,再根据每一个班级检索每个班级所有的待排课 程。这
15、样处理不会有排课丢失的现象。 2)检索出要排的课程以后选择授课教师,选择教室,判断教师,班级,教 室是否有空 ,判断教室人数是否满足。检索合班否,看是否满足要求。不满足 做一个回溯算法。满足,排课然后 再检索下一条记录。如此直到结束为止。 3)写入数据库,建立视图,设计查询算法,输出课表。 第二章 开发工具简介 2.1 delphi7.0 简介 delphi 实际上是 pascal 语言的一种版本,但它与传统的pascal 语言有 天壤之别。一个 delphi 程序首先是应用程序框架,而这一框架正是应用程序的 “骨架” 。在“骨架”上即使没有附着任何东西,仍可以严格地按照设计运行。 设计者的工
16、作只是在 “骨架”中加入程序。缺省的应用程序是一个空白的窗体 (form),运行它,结果得到一个空白的窗口。这个窗口具有windows 窗口的 全部性质:可以被放大缩小、移动、最大最小化等,但设计者却没有编写一行 程序。因此,可以说应用程序框架通过提供所有应用程序共有的东西,为用户 应用程序的开发打下了良好的基础。 delphi 已经为设计者做好了一切基础工 作程序框架就是一个已经完成的可运行应用程序,只是不处理任何事情。 设计者需要做的,只是在程序中加入完成所需功能的代码而已。 在空白窗口的背后,应用程序的框架正在等待用户的输入。由于设计者并未告 诉它接收到用户输入后作何反应,窗口除了响应
17、windows 的基本操作(移动、缩放 等)外,它只是接受用户的输入,然后再忽略。delphi 把 windows 编程的回调、句 柄处理等繁复过程都放在一个不可见的 romulam 覆盖物下面,这样设计者可以不为 它们所困扰,轻松从容地对可视部件进行编程。 开发软件的难易程度,第一决定要素在于开发工具的选择,它是帮助用户实现 其理念的工具,也就是构建在基础理念上的上层建筑。一款优秀的、体贴的、以人 为本的开发工具的标准应符合以下四点: 1)能够将要解决的问题简化,并以某种理念快速实现。 2)不隐藏任何用户想要知道的细节。 3)可以忽略用户所不想知道的细节。 4)主动去适应不同层次的开发程序员
18、。 那么,有符合以上四点的开发工具吗?答案是:有,那就是 delphi。俗话说: “真正的程序员用 c 开发,聪明的程序员用 delphi 开发”它将一切化繁为简,却 从不阻止用户寻求真实。用户可以在它构造的简化了的 vcl 虚拟世界中完成任务; 也可以钻进 vcl 的世界以探寻它和现实世界(即 windows 平台的真实接口)的映射关 系,学习它的 framework 的设计;还可以扩展那个虚拟的 vcl 世界以适应自己的需 要。 它还有一些更引人注目的优点: 1)方便功能强大的可视化开发环境的性能。delphi 的窗体设计器的与众不同之 处在于,delphi 是建立在一个真正面向对象的框架
19、结构基础之上的。这样,你对基 类所做的改变都将会传递给所有的派生类。这里涉及的一项关键技术就是 vfi(visual form inheritance),即可视化窗体继承。vfi 技术使你能够动态地继 承当前项目或对象库中的任何其他窗体。一旦基窗体发生改变,派生的窗体会立即 予以更新。 2)编译器的速度和已编译代码的效率。也许 pascal 编译器最著名的特点就是 速度快,而 delphi 正是建立在这种编译器的基础之上的。事实上,它可能是针对 windows 的最快的高级语言本地代码编译器。 3)编程语言的功能及其复杂性。delphi 具有强大的功能并且简单易学,对于 我们这种没有开发经验的
20、开发者用来开发程序是非常适合的,能够非常迅速的看见 成效,也能够树立开发出一个完整程序的信心。 4)数据库结构的灵活性和可扩展性。可以毫不夸张的说,delphi 和数据库的 联系是非常紧密并且开发数据库方面的系统是具有巨大的优势。delphi 保留了我们 认为是所有工具中最灵活的数据库结构。对大多数基于本地、客户/服务器和 odbc 数据库平台的应用程序来说,bde 的功能都非常强大。如果你对此不满意,可以避 开使用 bde 以支持新的本地 ado 组件。 5)框架对设计和使用模式的扩充。这是一项经常被其他软件设计工具忽略了 的重要功能。vcl 是 delphi 最重要的组成部分。在设计时操纵
21、组件、创建组件、使 用 oo(面向对象)技术继承其他组件的行为,这些能力都是决定 delphi 效率的关键 因素。在许多场合,编写 vcl 组件都采用固定的 oo 设计方法。相比之下,其他基 于组件的框架经常过于死板或过于复杂。比如 activex 控件具有和 vcl 控件相同的 设计期性能,但却不能被继承以创建一个具有其他不同行为的新类。传统的类框架, 如 owl 和 mfc,需要你有大量的内部结构知识,而且如果没有 rad 工具的设计期支 持,其功能将会受到抑制。 本系统用的前台开发语言是 delphi7.0。delphi7.0 是我接触的第一个快速、 可视化的 ide,采用基于控件的开发
22、框架结构,提供了 100 多个可供使用的控件, 利用这些控件,开发人员可以快速构造出各式各样的应用系统。正是因为其功能强 大、使用方便,delphi 已成为我开发系统的最爱。另外,delphi 强大的数据库开 发能力也是我选择它的一个主要理由,该数据库语言所固有的最标准化程序设计风 格和可视化设计方法使得设计工作具有极高的效率。 2.2 sql server 2000 简介 图 2-1 显示了数据库系统的主要组件。数据库由 dbms(database management system 数据库管理系统)处理,dbms 则由开发人员和用户通过应用程序直接或间 接地使用。它主要包括四个要素:用户数
23、据、元数据、索引和应用元数据。 图 2-1 数据库组件 目前,大多数数据库把用户数据表示为关系。现在把关系看作数据表。表的列 包含域或属性,表的行包含对应业务环境中的实体的记录。并非所有的关系都同样 符合要求,有些关系比其它关系更结构化一些。为了对比结构差的关系和结构好的 关系之间的差别,以本文所设计的课表管理系统中的课程和任课教员关系为例来说 明,假若设计关系 r1(teachername,coursename, teacherothers ) ;这个 关系的问题出在它有关于两个不同主题的数据,就是课程和教员。用这种方式构成 的关系在进行修改时,会出现问题。因为一个教员可能教授多门课程,如果
24、某个教 员的 teacherothers 出现变更,它所教授的课程记录(可能多个)也就必须变化, 这是不好的。因此数据用两个关系表示更好。现在如果某一个教员改变了它的 teacherothers,只有关系的对应行需要改变。当然,要想产生一个显示课程名及 数据库数据库 用户数据 元数据 索引 应用元数据 数据库包 括 数数 据据 库库 引引 擎擎 设计工具设计工具 表生成工具 窗体生成工具 查询生成工具 报表生成工具 过程语言编译器 执行时间执行时间 窗体处理器 查询处理器 报表书写器 过程语言执行时 间 开发人员 应用程序 用户 应用程序 其任课教员地址的报表,就需要将这两个表的行结合起来。结
25、果表明,将关系分别 存储,在生成报表的时候将它们结合起来,比把它们存储在一个合成的表中更好。 r2(coursename,) 。 r3(teachername, teacherothers,) 。 数据库是自描述的,这就意味着它自身包含了它的结构的描述,这种结构的描 述称作元数据。因为 dbms 产品是用来存储和操纵表的,所以大多数产品把元数据 以表的形式存储,有时称作系统表。这些系统表存储了数据库中表的情况,指出每 一个表中有多少列,哪一列是关键字,每一列的数据类型的描述,它也存储索引、 关键字、规则和数据库结构的其他部分。在表中存储元数据不仅对 dbms 是有效的, 对用户也是方便的,因为
26、他们可以使用与查询用户数据同样的查询工具来查询元数 据。 第三种类型的数据改进了数据库的性能和可访问性,这种数据经常称作开销数 据,尽管有时也采用其他类型的数据结构,如链表,但它主要包括索引。索引可以 用来排序和快速访问数据。 存储在数据库中的第四种数据是应用元数据,它用来存储用户窗体、报表、查 询和其他形式的查询组件。并非所有的 dbms 都支持应用组件,支持组件的 dbms 也 不一定把全部组件的结构作为应用元数据存储在数据库中。然而,大多数现代的 dbms 产品存储这种数据作为数据库的一部分。一般来说,数据库开发人员和用户都 不直接访问应用元数据,相反,他们通过 dbms 中的工具来处理
27、这些数据。 sql server 2000 是 microsoft 公司推出的基于 client/server 模式的新一代 大型关系数据库管理系统。它功能强大,操作简便,广泛应用于数据库后台系统。 sql server 2000 代表着下一代 microsoft.net enterprise servers(企业分布式 服务器)数据库的发展趋势。它在电子商务、数据仓库和数据库解决方案等应用中 起着重要的核心作用。 sql server 2000 的主要特点如下: 1)真正的客户机/服务器体系结构。 2)图形化用户界面,使系统管理和数据库管理更加直观、简单。 3)丰富的编程接口工具,为用户进行
28、程序设计提供了更大的选择余地。 4)sql server 与 windows 操作系统完全集成,利用了其许多功能,如发送和 接受消息,管理登录安全性等。sql server 也可以很好地与 microsoft backoffice 产品集成。 5)具有很好的伸缩性,可跨越从运行 windows 95/98/xp 的膝上型电脑到运行 windows 2000 的大型多处理器等多种平台使用。 6)对 web 技术的支持,使用户能够很容易地将数据库中的数据发布到 web 页 面上。 7)sql server 提供数据仓库功能,这个功能只在 oracle 和其他更昂贵的 dbms 中才有。 2.3 m
29、icrosoft visio 简介 visio 是当今最优秀的绘图软件之一,它将强大的功能和易用性完美结合,可 广泛应用于电子、机械、通信、建筑、软件设计和企业管理等众多领域。专业制作 流程图、网络拓扑图、室内布置图、规划图等图纸的软件。对我们设计过程有很大 的帮助。 visio 提供了快速创建和共享具有专业外观的图表所需的工具。熟悉的 microsoft office 环境使 visio 很容易学习和使用。有了 visio,无需专业绘图 技术就可以创建具有专业外观的图表。通过将预定义的 smartshapes 符号从模具 拖到绘图页中,即可快速和容易地组装图表。内置的边框、背景和颜色方案可以
30、帮 助您将专业外观添加到图表中。通过将图表复制到 office 文档中或者另存为详细 的 web 页,就能轻松实现图表共享。 visio 有三个主要作用: 1)补充 microsoft office 业务专业人员可以创建信息丰富的图表,以便补 充 和扩展他们用 office 程序所做的工作。 2)简化技术设计、部署和维护,技术专业人员可以用图表记录创意、信息和 系 统,以便简化 it 部署、扩展开发工具的使用、甚至记录设备布局和工程计划。 3)支持开发自定义的可视解决方案 visio 使用户能够创建自定义的形状和模 具来支持组织标准,还可以用来创建范围广泛的自定义可视解决方案。 2.42.4
31、powerdesigner 简介 powerdesigner 系列产品提供了一个完整的建模解决方案,业务或系统分析人 员,设计人员,数据库管理员 dba 和开发人员可以对其裁剪以满足他们的特定的需 要;而其模块化的结构为购买和扩展提供了极大的灵活性,从而使开发单位可以根 据其项目的规模和范围来使用他们所需要的工具。powerdesigner 灵活的分析和设 计特性允许使用一种结构化的方法有效地创建数据库或数据仓库,而不要求严格遵 循一个特定的方法学。powerdesigner 提供了直观的符号表示使数据库的创建更加 容易,并使项目组内的交流和通讯标准化,同时能更加简单地向非技术人员展示数 据库
32、和应用的设计。 powerdesigner 不仅加速了开发的过程,也向最终用户提供了管理和访问项目 信息的一个有效结构。它允许设计人员不仅创建和管理数据的结构,而且允许开发 和利用数据的结构,针对领先的开发工具环境快速地生成应用对象和数据敏感的组 件。开发人员可以使用同样的物理数据模型查看数据库的结构和整理文档,以及生 成应用对象和在开发过程中使用的组件。应用对象生成有助于在整个开发生命周期 提供更多的控制和更高的生产率。 powerdesigner 是一个功能强大而使用简单工具集,提供了一个复杂的交互环 境,支持开发生命周期的所有阶段,从处理流程建模到对象和组件的生成。 powerdesig
33、ner 产生的模型和应用可以不断地增长,适应并随着你的组织的变 化而变化。 powerdesigner 包含六个紧密集成的模块,允许个人和开发组的成员以合算的 方式最好地满足他们的需要。这六个模块是: powerdesigner processanalyst,用于数据发现。 powerdesigner dataarchitect,用于双层,交互式的数据库设计和构造。 powerdesigner appmodeler,用于物理建模和应用对象及数据敏感组件的生成。 powerdesigner metaworks,用于高级的团队开发,信息的共享和模型的管理。 powerdesigner wareho
34、usearchitect,用于数据仓库的设计和实现。 powerdesigner viewer,用于以只读的、图形化方式访问整个企业的模型信息。 第三章 概要设计 3.1 需求分析 排课是学校管理中一个比较重要也比较复杂的问题,教师,课程,教室,学生, 时间分配,这一系列的问题环绕着排课人员。比如说教室容量的限制、教室分配限 制等等问题,使得排课人员很难在同时兼顾多重条件限制下,排出满意度高的课表。 如何很好的解决这个复杂的问题呢?随着计算机时代的发展,排课也进入了一个智 能的时代。如何用计算机算法和软件实现一个操作简便、灵活、实用、安全的高校 排课管理系统成为一个时代发展的需要! 3.1.1
35、3.1.1 界面及环境需求界面及环境需求 环境需求为支持 windows 操作系统,系统的操作用户主要应用 windows 操作系 统,而界面需求为采用 gui 方式。 .2 功能需求功能需求 系统的主要功能为: 教师信息管理: 对教师信息有增加,删除,修改查询等功能。 课程信息管理: . 对课程信息有增加,删除,修改查询等功能。 教室信息管理: 对教室信息有增加,删除,修改查询等功能。 班级信息管理: 对班级信息有增加,删除,修改查询等功能。 教师课程信息管理: 对教师所授课程的关系的增加与删除功能。 班级课程信息管理: 对班级所学课程的关系的增加与删除等功能。 教师授课信息
36、管理: 对教师所带课程以及所学班级的关系的一个增加删除修改等功能。 排课: 实现自动排课。 教师课表输出: 输出所选择的教师的课表。 班级课表输出: 输出所选择的班级的课表。 帮助 : 提供一些文档类型的帮助信息。 3.2 模块功能设计 通过对需求的分析,本系统主要的功能模块极其子模块设计如图 3-1。 高高校校排排课课系系统统 排排课课实实现现模模块块 教教师师课课表表输输出出模模块块 信信息息录录入入模模块块 班班级级课课表表输输出出 相相关关帮帮助助模模块块 教教师师信信息息管管理 理 班班级级信信息息管管理理 课课程程信信息息管管理理 教教室室信信息息管管理理 教教师师课课程程信信息息
37、管管理理 班班级级课课程程信信息息管管理理 教教师师授授课课信信息息管管理理 图 3-1 模块功能图 本设计的主要模块包括信息录入模块,排课实现模块,教师课表输出模块,班 级课表输出模块,以及相关信息帮助模块。其中信息录入模块又分为七个子模块, 分别对各个信息的管理。包括教师信息管理,班级信息管理,课程信息管理,教室 信息管理,教师课程信息管理,班级课程信息管理,教师授课信息管理。 各模块的主要功能为: 1)教师信息管理: 针对教师姓名,教师编号,教师简介的添加,修改查询,删除等来实现教师信 息的维护。 2)班级信息管理: 针对班级名称,班级编号,班级人数,班级简介的添加,删除修改,查询等来
38、实现对班级信息的维护。 3)课程信息管理: 针对课程名称,课程编号,课时数,课程简介的添加,删除,修改,查询等来 实现对课程信息的维护。 4)教室信息管理: 针对教室名称,座位数,教室编号,教室简介的添加,删除,修改,查询等来 实现对教室信息的维护。 5)教师课程信息管理: 实现教师和所授课程的对应关系。 6)班级课程信息管理: 实现班级和所学课程的对应关系。 7)教师授课信息管理: 对教师,课程,班级的一一对应的一个添加,删除等功能来实现这些关系的实 现与管理。 8)排课: 实现程序主要功能排课。 9)教师课表输出: 选择要查询的教师姓名然后输出该教师的课程表。 10)班级课表输出: 选择要
39、查询的班级输出相应的班级课程表。 3.3 排课算法设计 高校排课系统采用了多种不同的排课思想,其中关联规则需求矩阵法和回溯算 法的思想,基于 c/s 的开放式结构,以此为基础,对该领域进行归纳,并梳理其理 论逻辑,期望本文能为人们进一步研究这一课题提供一些有益的视角。排课调课是 高校教务管理的一项日常工作,因其费时费力,手工完成多易出错,所以利用计算 机进行自动排课的想法自然而生。国外从 20 世纪 50 年代就有人研究排课问题,直 到 20 世纪 90 年代关于课表问题的研究仍然十分活跃。所用方法有整数规划、图论、 分支定界技术及模拟退化法等。国内从 20 世纪 80 年代初期开始排课问题的
40、研究, 从模拟手工排课到构建专家系统都有尝试。此文就是通过对多篇文献资料的参考, 综述智能排课在高校教育中的发展及应用。 .1 系统总体目标系统总体目标 排课管理的主要任务是把各系或各授课部门的课程申请进行汇总, 然后根据教 学计划或教学环节制订全校各班级的课表。为了使课表的编排准确、合理、快速、 高效, 充分利用学校资源。 本系统应该具备以下功能 : 1)根据教学计划和开课任务书实现自动排课 , 按不同方式输出排课结果。 2)同一门课程可以安排在同一个教室 , 也可以有所流动。 3)对于某门课 , 第一次授课的时间段确定后 , 当安排后面的授课时 , 必 须考查时间段的有效性
41、。即同一门课的两次授课时间必须隔开。比如, 一周 的两次授课 , 第一次排在周一的 1, 2 节这个时段 , 第二次授课 , 排在周一 的任何时段和周二的任何时段都太近 , 排在星期五又太远 , 在星期三或星期 四的某个时间则比较理想。 4)应避免各种冲突 : 教室不冲突 , 同一教室同一时间不能安排两门课程 ,人数不能超过教室的 最大容量。 学生不冲突 , 同一班级学生不能在同一时间上两门或两门以上课程。 课程不冲突 , 同一班级同一课程不能同一时间在不同地点上课。 教师不冲突 , 同一教师不能同一时间在不同地点上课。 .2 排课算法设计及描述排课算法设计及描述 针对系统设计
42、的总体目标,排课算法要满足相应的约束条件,且要达到一定的 效率,算法流程图如图 3-2。 开开始始 选选择择班班级级课课程程 first to last do 判判断断是是否否已已排排 是是 选选出出所所对对应应的的教教师师 否否 判判断断是是否否合合班班 计计算算人人数数 计计算算人人数数 选选择择教教室室选选择择教教室室 判判断断教教师师班班级级空空否否判判断断教教师师班班级级空空否否 排排合合班班课课排排课课 判判断断循循环环结结束束 结结束束 是是 否否 否否 否否 是是是是 是是 否否 图 3-2 算法设计流程图 1)排课以班级为主线选出班级课程表中所有的记录,根据班级课程表中的每
43、一条记录做一个循环,判定每个班级所对应的课程是否已排。是:返回选择下一条 记录。否:进行下一步。 2)根据班级课程表中的 id 到教师授课表中选择所对应的教师。 3)按策略选择一个教室的时间段,根据教室的时间段判断教师,班级是否有 空。否:返回上一层重新选择教室,直到满足条件为止。是:进行下一步。 4)判断是否合班上课。合:判断人数合大于不大于教室座位数。大于:返回 3 重新选择教室重新判断。不大于:进行下一步 5。不合:判断人数是否大于教室 座位数大于:大于:返回 3 重新选择教室重新判断。不大于:跳到 6。 5)对合班的排课,同时把选中的班级以及合班的班级同时进行排课及写入数 据库。返回循
44、环开始。 6)不合班,对选中的班级进行排课,写入数据库,返回循环开始。 7)循环结束,结束本次排课。 第四章 数据库设计 4.1 实体关系模型 实体-关系模型(entity-relationship module,简称 e-r 模型)是数据库结构 设计常用的方法,e-r 图中的矩形表示实体,菱形表示实体间的联系,椭圆表示实 体属性,联系的类型可用 1:1 或 m:n 来表示。 自动排课系统的数据库设计主要是老师、班级、课程、教室的信息管理,其 e- r 图如图 4-1。 课程班级 教师教室 开设 上课 担任 听 课 授课 m n 课程名 编号 课时 班级编号 班级名称 班级人数 教师编号 教师
45、姓名 教室编号 教室坐位数 教室名称 m n m n mn m n 4-1 实体关系模型图 4.2 数据库设计 对数据表的设计主要考虑到数据的存储以及表与表之间的关系,比如说对教师 表和教师课程表以及课程表之间的关系,教师表中包括教师 id,教师姓名,教师其 他的一些信息。教师课程表中包括教师 id 课程 id。课程表中包括课程 id,课程名 称,课时数,以及课程简介。其中关系是教师课程表中的教师 id 关联教师表中的 id,教师课程表中的课程 id 关联课程表中的课程 id。这样可以减少一些重复的信 息存储,有效降低数据冗余。不过有时候也会增加一些数据冗余,这是考虑程序员 在使用方便的情况下
46、做的一些必要的数据冗余。 根据 e-r 图设计数据库关系如图 4-2。 fk_teacherc_reference_teacheri fk_teacherc_reference_coursein fk_classcou_reference_coursein fk_classcou_reference_classinf fk_roomtime_reference_classroo fk_teacherc_reference_roomtime fk_teacherc_reference_teacherc fk_teacherc_reference_classcou 上 上 上 上 上 上 上 上
47、上 上 id 上 上 上 上 id 上 上 上 上 int int int 上 上 上 上 上 上 上 id 上 上 上 上 上 上 上 上 上 上 int char(10) int varchar(128) 上 上 上 上 上 id 上 上 上 上 上 上 上 上 上 int char(10) int varchar(128) 上 上 上 上 上 上 上 上 id 上 上 上 上 上 上 上 int char(10) int varchar(128) 上 上 上 上 上 上 上 上 上 上 上 上 id 上 上 id 上 上 上 上 上 上 上 上 int int int int int 上
48、 上 上 上 上 上 上 上 上 上 上 上 上 上 上 上 id 上 上 上 上 id 上 上 上 上 上 id 上 上 上 上 上 上 上 id 上 上 上 上 上 上 上 上 id int int int int int int 上 上 上 上 上 上 上 上 上 id 上 上 上 上 上 id int int 上 上 上 上 上 上 上 id 上 上 上 上 上 上 int int char(10) varchar(128) 4-2 数据库关系图 具体数据表设计如下: 1)教师信息表 教师信息表存放教师相关信息,因为毕业设计主要关注排课算法的实现,因此 教师信息表中的字段并不丰富,例如
49、可以再增加联系电话,家庭地址等必要字段, 这也是毕业设计后续需要完善的地方,具体的表字段如表 4-1。 表 4-1 教师信息表 名称名称代码代码数据类型数据类型是否主键是否主键是否必须是否必须 教师内部 id teacherinfoidinttruetrue 工号 teachernumberintfalsetrue 姓名 teachernamecharfalsetrue 备注 teacherothersvarcharfalsefalse 2)班级信息表 班级信息表主要包括班级 id,班级名称,班级人数等信息。主要是对班级信息 的存储。具体的表字段如表 4-2。 表 4-2 班级信息表 名称名称
50、代码代码数据类型数据类型是否主键是否主键是否必须是否必须 班级内部 idclassinfoidinttruetrue 班级名称classnamecharfalsetrue 班级人数classnumberintfalsetrue 备注classothersvarcharfalsefalse 3)课程信息表 课程信息表包括课程 id,课程名称,课时数,课程简介,主要是对课程信息的 存储。具体表字段如表 4-3。 表 4-3 课程信息表 名称名称代码代码数据类型数据类型是否主键是否主键是否必须是否必须 课程表内部 idcourseinfoidinttruetrue 课程名coursenamechar
51、falsetrue 课时coursetimesintfalsetrue 备注courseothersvarcharfalsefalse 4)教室信息表 教室信息表包括教室 id,教室名称,座位数,教室简介,主要是对教室信息的 存储。具体表字段如表 4-4。 表 4-4 教室信息表 名称名称代码代码数据类型数据类型是否主键是否主键是否必须是否必须 教室内部 idclassroominfoidinttruetrue 教室名称classroomnamecharfalsetrue 座位数classroomnumberintfalsetrue 备注classroomothersvarcharfalsef
52、alse 5)教室时段表 教室时段表是对教室各个时段的信息存储。包括教室时段表内部 id,教室内部 id,周次,课次,是否已排,对这样信息的处理主要是为了方便排课的时候使用。 具体表字段设计如表 4-5。 表 4-5 教室时段表 名称名称代码代码数据类型数据类型是否主键是否主键是否必须是否必须 教室时段表内部 idroomtimeinfoidinttruetrue 教室内部 idclassroominfoidintfalsetrue 周次zhouciintfalsetrue 课次keciintfalse true 是否已排isarrangeintfalsetrue 6)教师课程表 教师课程表是
53、对教师与课程关系的一个存储。包括教师 id,课程 id。表字段 设计如表 4-6。 表 4-6 教师课程表 名称名称代码代码数据类型数据类型是否主键是否主键是否必须是否必须 教师内部 idteacherinfoidinttruetrue 课程表内部 idcourseinfoidinttruetrue 7)班级课程表 班级课程表是对班级与课程关系的一个存储。包括班级 id,课程 id。表字段 设计如表 4-7。 表 4-7 教师课程表 名称名称代码代码数据类型数据类型是否主键是否主键是否必须是否必须 课程表内部 idcourseinfoidinttruetrue 班级内部 idclassinfo
54、idintfalsetrue 是否已排isarrangeintfalsetrue 8)教师上课单元表 教师上课单元表是对教师,所授课程,所学班级的一个信息存储。部分信息需 要手动输入部分信息是由排课的时候生成的。主要表字段有教师上课单元表内部 id,教师内部 id,课程表内部 id,教室时段表内部 id,合班代码,班级内部 id。 表字段设计如表 4-8。 表 4-8 教师上课单元表 名称名称代码代码数据类数据类 型型 是否主键是否主键是否必须是否必须 教师上课单元表内部 idteachercourseclassinfointtruetrue 教师内部 idteacherinfoidintfa
55、lsetrue 课程表内部 idcourseinfoidintfalsetrue 教室时段表内部 idroomtimeinfoidintfalsefalse 合班代码togetherflagintfalsetrue 班级内部 idclassinfoidintfalsetrue 4.3 视图设计 因为在算法中多次用到对表字段的联合查询,为了方便算法的使用所以联合教 师授课表与教室时段表设计了视图 teachertime。设计过程如图 4-3。 图 4-3 视图 teachertime 视图 teachertime 的具体字段如表 4-9。 表 4-9 视图 teachertime 具体字段 名称
56、名称代码代码属于表属于表输出输出 教师表内部编号tacherinfoidteachercourseclassinf o true 课程内部编号courseinfoidteachercourseclassinf o true 班级表内部编号classroominfoidteachercourseclassinf o true 合班标志togetherflagteachercourseclassinf o true 教室时段表内部编号roomtimeinfoidteachercourseclassinf o true 是否已排isarrange roomtimeinfotrue 周次zhoucir
57、oomtimeinfotrue 课次keci roomtimeinfotrue 教室表内部编号classroominfoidroomtimeinfotrue 由于在课表输出的时候要联合很多表查询,为了方便输出课表输出方便程序员 的使用设计视图 kebiao 设计过程如图 4-4。 图 4-4 视图 kebiao 视图 kebiao 的具体字段如表 4-10。 表 4-10 视图 kebiao 具体字段 名称名称代码代码属于表属于表输出输出 周次zhouciroomtimeinfotrue 课次keciroomtimeinfotrue 教室名classroomnameclassroominfot
58、rue 课程名coursename courseinfotrue 教师名teachernameteacherinfotrue 教师表内部编号tacherinfoid teachercourseclassinf o true 课程表内部编号courseinfoidteachercourseclassinf o true 教室时段表内部编号roomtimeinfoidteachercourseclassinf o true 教室内部编号classroominfoidclassroominfotrue 4.4 数据库的连接 delphi 中连接数据库的组件为 adoconnection 组件,将 a
59、doconnection 连接 sql server 数据库。如连接主界面窗体和数据库,具体步骤如下: 1)在主界面窗体中添加一个名为 adoconnection 的 adoconnection1 组件,双 击 adoconnection1,选择 connectionstring 属性,进行数据库的连接,出现如图 4-5 所示的“zhuye. adoconnection1.connectionstring”对话框。 图 4-5 “zhuye. adoconnection1.connectionstring”对话框 2)在图 4-5 的对话框中选择“使用连接字符串”单选框 ,然后单击“构建” 按
60、钮,进入图 4-6 所示的“数据库属性设置”对话框。 图 4-6“数据库属性设置”对话框 3)选择“microsoft ole db provider for sql server” ,单击“下一步” ,出现 4-7 所示的“数据库属性设置”对话框。 图 4-7“数据库属性设置”对话框 4)在“选择或输入服务器名称”中选择自己的 sql 数据库的服务器名称,再 选择登录服务器信息,然后在“在服务器上选择数据库”下拉框中选择自己所建的 数据库名,单击“测试连接”按钮。 5)如果出现如图 4-8 所示的“microsoft 数据链接”对话框,则表示数据库 连接成功。 图 4-8“microsoft
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水资源调度优化-洞察分析
- 妇产科护理学产程图解课件
- 柚皮苷提取技术创新-洞察分析
- 信息安全政策经济-洞察分析
- 社保整改报告范文
- 护士长护理工作亮点汇报
- 新型材料在炼油设备中的应用案例-洞察分析
- 叶绿体基因组变异分析-洞察分析
- 数字营销合伙人合同协议书
- 商业广场人行道彩色混凝土施工方案
- 2024年度风力发电项目设计施工承包合同2篇
- 量子计算与区块链
- 食品质量安全法律法规培训
- 国开2024年秋《休闲农业概论》形考任务1-4答案
- 2024年教师资格考试高级中学面试生物试题与参考答案
- 年终总结数据对比分析图表
- 2024-2025学年统编版初二上学期期末历史试卷及答案指导
- 一对一教学管理制度
- 工业固体废弃物的资源化处理
- 一年级数学计算题专项练习1000题集锦
- 2024年2024年离婚协议书模板电子版
评论
0/150
提交评论