毕业设计(论文)Delphi7.0高校排课系统的设计与实现.doc

上传人:仙人指路1688 文档编号:3976555 上传时间:2023-03-30 格式:DOC 页数:58 大小:886KB
返回 下载 相关 举报
毕业设计(论文)Delphi7.0高校排课系统的设计与实现.doc_第1页
第1页 / 共58页
毕业设计(论文)Delphi7.0高校排课系统的设计与实现.doc_第2页
第2页 / 共58页
毕业设计(论文)Delphi7.0高校排课系统的设计与实现.doc_第3页
第3页 / 共58页
毕业设计(论文)Delphi7.0高校排课系统的设计与实现.doc_第4页
第4页 / 共58页
毕业设计(论文)Delphi7.0高校排课系统的设计与实现.doc_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《毕业设计(论文)Delphi7.0高校排课系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)Delphi7.0高校排课系统的设计与实现.doc(58页珍藏版)》请在三一办公上搜索。

1、 南 京 工 程 学 院毕业设计说明书(论文)作 者: 学 号: 院 系: 计 算 机 工 程 学 院 专 业: 计算机科学与技术 题 目: 高校排课系统的设计与实现 指导者: 副教授 助教 (姓 名) (专业技术职务)评阅者: (姓 名) (专业技术职务) 2008 年 6 月 南 京毕 业 论 文 中 文 摘 要排课问题的研究主要是解决各种教学资源如教室、老师的合理有效利用等问题,避免老师、班级在上课时间、地点上的冲突,使排课时间分配均匀。一般而言,在算法设计中为排课操作设置了不同的优先级,逐级排课,有效地降低了排课时间冲突的概率,提高了排课的成功率。论文详细介绍了排课算法的设计和实现、数

2、据库的设计和实现,以及数据输入、信息查询和教师、班级课表输出等功能的设计与实现。在时间选择的灵活性、排课优先级等方面提出了自己的见解并进行了编程实现,毕业设计所实现的排课系统只是一种尝试,还有很多不完善的地方,需待日后改进。关键字 排课 高校 算法设计 Delphi7.0 毕业设计说明书(论文)外文摘要Title Design and Realization of Course Arranging System for University AbstractThe study of arranging schedule problem is largely to solve the prope

3、r 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, different priorities are assigned to the operation of the arranging schedule,

4、 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 introduces the design and implement of arranging schedule algorithm、the design and i

5、mplement 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 of arranging schedule, etc, and finally realizes them in program .The reali

6、zation 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.Keywords Course Arranging, University Algorithm Design , Delphi7.0目 录前 言1第一章 高校排课系统综述21.1课题背景21.2毕业设计实现系统的特点3第二章 开发工具简介42.1 Delphi7.0 简介42.2 SQL Server 2000简介62.3 Mi

7、crosoft Visio简介82.4 PowerDesigner简介8第三章 概要设计103.1 需求分析103.2模块功能设计113.3 排课算法设计12第四章 数据库设计164.1实体关系模型164.2 数据库设计17第五章 详细设计与实现255.1系统主界面255.2信息录入功能255.3 排课功能315.4课表输出功能325.5帮助功能32第六章 结论346.1 测试结果346.2 成果与特色356.3展望与心得36参考文献37致谢38附录391排课算法代码实现392. 英文资料及翻译43前 言全球性的网络化、信息化进程正改变着人们的生活方式,Internet技术应用飞速增长给人们生

8、活工作的各个层面带来了深刻的影响,办公自动化系统作为Internet的重要应用,也已不可避免的成为各行各业的迫切需要。传统的办公模式主要以纸介质为主,在信息革命的浪潮中,显然已经远远不能满足高效率、快节奏的现代工作和生活的需要。如何实现信息处理的自动化和办公的无纸化逐步得到了人们的重视。办公自动化的发展实际上取决于办公活动的需求和实现这种需求的可能性。展望未来,全世界都将进入可持续发展的办公自动化时期。教育行业也迎来了一次全新的办公自动化的改革,教育办公化和办公化教育是当代和未来教育的世界性发展趋势。近年来,大学的学习方式也在不断的更新,许多大学的不断发展,采用学分制的管理系统。而随着高校新生

9、的扩招力度加大,各高校都面临着教室资源紧张的问题,原来每个班有一个固定教室的模式已不存在,甚至原来一个系专用的教学楼都要考虑参加全校的教室资源统一调整,对高校教务处来说确实是一个艰巨的任务。知识经济时代已向我们走来,信息化已经成为社会发展的时代特征。计算机技术、通信技术和现代信息技术的迅速发展,使建设高校排课系统,不仅是时代发展的要求,而且是发展教育事业、提高高校教学管理水平和办学效益的需要。高校排课系统是一个复杂的系统,包括方方面面。排课调课是高校教务管理的一项日常工作。由于我国高校的基础建设相对落后,加之近年来大规模的扩招,因而师资和教室资源紧张的问题非常普遍。这项工作靠手工完成一般需要耗

10、费大量的时间和精力,且多易出错。同时手工操作也容易不充分利用资源满足经常变化的需求。如利用计算机进行自动排课,不但能使教务人员从繁杂的排课任务中解脱出来,大大提高教务管理工作效率,而且能改善教学管理质量,合理高效地利用有限的资源,对推动教学的发展起到非常重要的作用。另外,解决排课问题对解决其他多约束、大规模的时间表问题也具有重要的指导意义。第一章 高校排课系统综述1.1 课题背景本部分主要介绍与课题相关的内容,简单描述一下目前排课系统的发展历史及趋势,主要使用的排课算法,然后引出本系统开发时在算法上所具有的一些特点。接下来着重介绍了开发本系统使用的工具Delphi的一些特性,以及它在数据库开发

11、方面具有的强大功能。1.1.1 发展历史传统的人工进行排课,最令人担心的问题就是出现教室资源冲突或教师资源冲突的情况,而且工作繁琐,工作量巨大,尤其是在给大学校园进行排课时出现的问题更多。市场流行的排课系统很多,比如:相似排课,智能排课系统,正信华课程安排管理系统等等,这些排课软件在解决排课问题时大多数采用的算法都是回溯算法,排课的效果也都很好。利用回溯算法解决问题的思路是先选择某一可能的线索进行试探,每一步试探都有多种方式,将每一方式都一一试探,如有问题就返回纠正,反复进行这种试探再返回纠正,直到得出全部符合条件的答案或是问题无解为止。这种解决问题的方法就是回溯法。回溯算法对空间的消耗较少,

12、当其与分支定界法一起使用时,对于所求解在解答树中层次较深的问题有较好的效果。但应避免在后继节点可能与前继节点相同的问题中使用,以免产生循环。回溯算法是所有搜索算法中最为基本的一种算法,其采用了一种“走不通就掉头”思想作为其控制结构,可用于找解或所有解以及最优解。1.1.2 发展趋势计算机软件技术应用于学校的课程安排是发展的必然。充分发挥计算机的优势,将大量复杂的判断与运算交给计算机来做,是真正意义上的人脑的“减负”。教师设置好学校基本情况及排课要求,让计算机排出课程表,适度调课后的课表就能满意地应用于新的学期。随着计算机软件技术的不断发展,排课效率高、出错概率低的排课算法也必将会逐渐趋向成熟,

13、功能更加完善的排课系统也将应运而生。1.2 毕业设计实现系统的特点1.2.1 数据管理特点系统采用半智能化的数据录入功能,工作人员只要对一些基本信息的录入,系统就会对一些相关联的信息进行自动生成,这样大大的减轻了管理人员的工作量,以及对数据的冗余性也有一定的改善。对工作效率有一定的提高。1.2.2 算法特点高校排课系统与目前流行的排课系统不同之处在于排课算法的设计上。本系统采用简单的回溯算法,虽然它在实际使用中可能不如已有的各种排课软件,但它是应用程序开发和排课算法设计的一次尝试,并且它在排课的效果和效率方面有一定的突破。它在算法上具有如下特点:1)算法以班级为主线检索,再根据每一个班级检索每

14、个班级所有的待排课程。这样处理不会有排课丢失的现象。2)检索出要排的课程以后选择授课教师,选择教室,判断教师,班级,教室是否有空,判断教室人数是否满足。检索合班否,看是否满足要求。不满足做一个回溯算法。满足,排课然后再检索下一条记录。如此直到结束为止。3)写入数据库,建立视图,设计查询算法,输出课表。第二章 开发工具简介2.1 Delphi7.0 简介Delphi实际上是Pascal语言的一种版本,但它与传统的Pascal语言有天壤之别。一个Delphi程序首先是应用程序框架,而这一框架正是应用程序的“骨架”。在“骨架”上即使没有附着任何东西,仍可以严格地按照设计运行。设计者的工作只是在“骨架

15、”中加入程序。缺省的应用程序是一个空白的窗体(Form),运行它,结果得到一个空白的窗口。这个窗口具有Windows窗口的全部性质:可以被放大缩小、移动、最大最小化等,但设计者却没有编写一行程序。因此,可以说应用程序框架通过提供所有应用程序共有的东西,为用户应用程序的开发打下了良好的基础。Delphi已经为设计者做好了一切基础工作程序框架就是一个已经完成的可运行应用程序,只是不处理任何事情。设计者需要做的,只是在程序中加入完成所需功能的代码而已。在空白窗口的背后,应用程序的框架正在等待用户的输入。由于设计者并未告诉它接收到用户输入后作何反应,窗口除了响应Windows的基本操作(移动、缩放等)

16、外,它只是接受用户的输入,然后再忽略。Delphi把Windows编程的回调、句柄处理等繁复过程都放在一个不可见的Romulam覆盖物下面,这样设计者可以不为它们所困扰,轻松从容地对可视部件进行编程。开发软件的难易程度,第一决定要素在于开发工具的选择,它是帮助用户实现其理念的工具,也就是构建在基础理念上的上层建筑。一款优秀的、体贴的、以人为本的开发工具的标准应符合以下四点:1)能够将要解决的问题简化,并以某种理念快速实现。2)不隐藏任何用户想要知道的细节。3)可以忽略用户所不想知道的细节。4)主动去适应不同层次的开发程序员。那么,有符合以上四点的开发工具吗?答案是:有,那就是Delphi。俗话

17、说:“真正的程序员用C开发,聪明的程序员用Delphi开发”它将一切化繁为简,却从不阻止用户寻求真实。用户可以在它构造的简化了的VCL虚拟世界中完成任务;也可以钻进VCL的世界以探寻它和现实世界(即Windows平台的真实接口)的映射关系,学习它的Framework的设计;还可以扩展那个虚拟的VCL世界以适应自己的需要。 它还有一些更引人注目的优点:1)方便功能强大的可视化开发环境的性能。Delphi的窗体设计器的与众不同之处在于,Delphi是建立在一个真正面向对象的框架结构基础之上的。这样,你对基类所做的改变都将会传递给所有的派生类。这里涉及的一项关键技术就是VFI(visual form

18、 inheritance),即可视化窗体继承。VFI技术使你能够动态地继承当前项目或对象库中的任何其他窗体。一旦基窗体发生改变,派生的窗体会立即予以更新。 2)编译器的速度和已编译代码的效率。也许Pascal编译器最著名的特点就是速度快,而Delphi正是建立在这种编译器的基础之上的。事实上,它可能是针对Windows的最快的高级语言本地代码编译器。 3)编程语言的功能及其复杂性。Delphi具有强大的功能并且简单易学,对于我们这种没有开发经验的开发者用来开发程序是非常适合的,能够非常迅速的看见成效,也能够树立开发出一个完整程序的信心。4)数据库结构的灵活性和可扩展性。可以毫不夸张的说,Del

19、phi和数据库的联系是非常紧密并且开发数据库方面的系统是具有巨大的优势。Delphi保留了我们认为是所有工具中最灵活的数据库结构。对大多数基于本地、客户/服务器和ODBC数据库平台的应用程序来说,BDE的功能都非常强大。如果你对此不满意,可以避开使用BDE以支持新的本地ADO组件。5)框架对设计和使用模式的扩充。这是一项经常被其他软件设计工具忽略了的重要功能。VCL是Delphi最重要的组成部分。在设计时操纵组件、创建组件、使用OO(面向对象)技术继承其他组件的行为,这些能力都是决定Delphi效率的关键因素。在许多场合,编写VCL组件都采用固定的OO设计方法。相比之下,其他基于组件的框架经常

20、过于死板或过于复杂。比如ActiveX控件具有和VCL控件相同的设计期性能,但却不能被继承以创建一个具有其他不同行为的新类。传统的类框架,如OWL和MFC,需要你有大量的内部结构知识,而且如果没有RAD工具的设计期支持,其功能将会受到抑制。 本系统用的前台开发语言是Delphi7.0。Delphi7.0是我接触的第一个快速、可视化的IDE,采用基于控件的开发框架结构,提供了100多个可供使用的控件,利用这些控件,开发人员可以快速构造出各式各样的应用系统。正是因为其功能强大、使用方便,Delphi已成为我开发系统的最爱。另外,Delphi强大的数据库开发能力也是我选择它的一个主要理由,该数据库语

21、言所固有的最标准化程序设计风格和可视化设计方法使得设计工作具有极高的效率。2.2 SQL Server 2000简介图2-1显示了数据库系统的主要组件。数据库由DBMS(DataBase Management System数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。数据库用户数据元数据索引应用元数据数据库包括数据库引擎设计工具表生成工具窗体生成工具查询生成工具报表生成工具过程语言编译器执行时间窗体处理器查询处理器报表书写器过程语言执行时间开发人员应用程序用户应用程序图2-1 数据库组件目前,大多数数据库把

22、用户数据表示为关系。现在把关系看作数据表。表的列包含域或属性,表的行包含对应业务环境中的实体的记录。并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。为了对比结构差的关系和结构好的关系之间的差别,以本文所设计的课表管理系统中的课程和任课教员关系为例来说明,假若设计关系R1(TeacherName,CourseName, TeacherOthers );这个关系的问题出在它有关于两个不同主题的数据,就是课程和教员。用这种方式构成的关系在进行修改时,会出现问题。因为一个教员可能教授多门课程,如果某个教员的TeacherOthers出现变更,它所教授的课程记录(可能多个)也就必须变化,这

23、是不好的。因此数据用两个关系表示更好。现在如果某一个教员改变了它的TeacherOthers,只有关系的对应行需要改变。当然,要想产生一个显示课程名及其任课教员地址的报表,就需要将这两个表的行结合起来。结果表明,将关系分别存储,在生成报表的时候将它们结合起来,比把它们存储在一个合成的表中更好。R2(CourseName,)。R3(TeacherName, TeacherOthers,)。数据库是自描述的,这就意味着它自身包含了它的结构的描述,这种结构的描述称作元数据。因为DBMS产品是用来存储和操纵表的,所以大多数产品把元数据以表的形式存储,有时称作系统表。这些系统表存储了数据库中表的情况,指

24、出每一个表中有多少列,哪一列是关键字,每一列的数据类型的描述,它也存储索引、关键字、规则和数据库结构的其他部分。在表中存储元数据不仅对DBMS是有效的,对用户也是方便的,因为他们可以使用与查询用户数据同样的查询工具来查询元数据。第三种类型的数据改进了数据库的性能和可访问性,这种数据经常称作开销数据,尽管有时也采用其他类型的数据结构,如链表,但它主要包括索引。索引可以用来排序和快速访问数据。存储在数据库中的第四种数据是应用元数据,它用来存储用户窗体、报表、查询和其他形式的查询组件。并非所有的DBMS都支持应用组件,支持组件的DBMS也不一定把全部组件的结构作为应用元数据存储在数据库中。然而,大多

25、数现代的DBMS产品存储这种数据作为数据库的一部分。一般来说,数据库开发人员和用户都不直接访问应用元数据,相反,他们通过DBMS中的工具来处理这些数据。SQL Server 2000 是Microsoft公司推出的基于Client/Server模式的新一代大型关系数据库管理系统。它功能强大,操作简便,广泛应用于数据库后台系统。SQL Server 2000代表着下一代Microsoft.NET Enterprise Servers(企业分布式服务器)数据库的发展趋势。它在电子商务、数据仓库和数据库解决方案等应用中起着重要的核心作用。SQL Server 2000的主要特点如下:1)真正的客户机

26、/服务器体系结构。2)图形化用户界面,使系统管理和数据库管理更加直观、简单。3)丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。4)SQL Server与Windows操作系统完全集成,利用了其许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。5)具有很好的伸缩性,可跨越从运行Windows 95/98/XP的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用。6)对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。7)SQL Server提供数据仓库功能,这个功

27、能只在Oracle和其他更昂贵的DBMS中才有。2.3 Microsoft Visio简介Visio是当今最优秀的绘图软件之一,它将强大的功能和易用性完美结合,可广泛应用于电子、机械、通信、建筑、软件设计和企业管理等众多领域。专业制作流程图、网络拓扑图、室内布置图、规划图等图纸的软件。对我们设计过程有很大的帮助。Visio 提供了快速创建和共享具有专业外观的图表所需的工具。熟悉的 Microsoft Office 环境使 Visio 很容易学习和使用。有了 Visio,无需专业绘图技术就可以创建具有专业外观的图表。通过将预定义的 SmartShapes 符号从模具拖到绘图页中,即可快速和容易地

28、组装图表。内置的边框、背景和颜色方案可以帮助您将专业外观添加到图表中。通过将图表复制到 Office 文档中或者另存为详细的 Web 页,就能轻松实现图表共享。Visio 有三个主要作用:1)补充 Microsoft Office 业务专业人员可以创建信息丰富的图表,以便补充和扩展他们用 Office 程序所做的工作。2)简化技术设计、部署和维护,技术专业人员可以用图表记录创意、信息和系统,以便简化 IT 部署、扩展开发工具的使用、甚至记录设备布局和工程计划。3)支持开发自定义的可视解决方案 Visio 使用户能够创建自定义的形状和模具来支持组织标准,还可以用来创建范围广泛的自定义可视解决方案

29、。2.4 PowerDesigner简介PowerDesigner系列产品提供了一个完整的建模解决方案,业务或系统分析人员,设计人员,数据库管理员DBA和开发人员可以对其裁剪以满足他们的特定的需要;而其模块化的结构为购买和扩展提供了极大的灵活性,从而使开发单位可以根据其项目的规模和范围来使用他们所需要的工具。PowerDesigner灵活的分析和设计特性允许使用一种结构化的方法有效地创建数据库或数据仓库,而不要求严格遵循一个特定的方法学。PowerDesigner提供了直观的符号表示使数据库的创建更加容易,并使项目组内的交流和通讯标准化,同时能更加简单地向非技术人员展示数据库和应用的设计。 P

30、owerDesigner不仅加速了开发的过程,也向最终用户提供了管理和访问项目信息的一个有效结构。它允许设计人员不仅创建和管理数据的结构,而且允许开发和利用数据的结构,针对领先的开发工具环境快速地生成应用对象和数据敏感的组件。开发人员可以使用同样的物理数据模型查看数据库的结构和整理文档,以及生成应用对象和在开发过程中使用的组件。应用对象生成有助于在整个开发生命周期提供更多的控制和更高的生产率。 PowerDesigner是一个功能强大而使用简单工具集,提供了一个复杂的交互环境,支持开发生命周期的所有阶段,从处理流程建模到对象和组件的生成。PowerDesigner产生的模型和应用可以不断地增长

31、,适应并随着你的组织的变化而变化。PowerDesigner包含六个紧密集成的模块,允许个人和开发组的成员以合算的方式最好地满足他们的需要。这六个模块是:PowerDesigner ProcessAnalyst,用于数据发现。 PowerDesigner DataArchitect,用于双层,交互式的数据库设计和构造。PowerDesigner AppModeler,用于物理建模和应用对象及数据敏感组件的生成。 PowerDesigner MetaWorks,用于高级的团队开发,信息的共享和模型的管理。PowerDesigner WarehouseArchitect,用于数据仓库的设计和实现。

32、PowerDesigner Viewer,用于以只读的、图形化方式访问整个企业的模型信息。第三章 概要设计3.1 需求分析排课是学校管理中一个比较重要也比较复杂的问题,教师,课程,教室,学生,时间分配,这一系列的问题环绕着排课人员。比如说教室容量的限制、教室分配限制等等问题,使得排课人员很难在同时兼顾多重条件限制下,排出满意度高的课表。如何很好的解决这个复杂的问题呢?随着计算机时代的发展,排课也进入了一个智能的时代。如何用计算机算法和软件实现一个操作简便、灵活、实用、安全的高校排课管理系统成为一个时代发展的需要!3.1.1 界面及环境需求环境需求为支持Windows操作系统,系统的操作用户主要

33、应用windows操作系统,而界面需求为采用GUI方式。3.1.2 功能需求 系统的主要功能为:l 教师信息管理:对教师信息有增加,删除,修改查询等功能。l 课程信息管理:. 对课程信息有增加,删除,修改查询等功能。l 教室信息管理:对教室信息有增加,删除,修改查询等功能。l 班级信息管理:对班级信息有增加,删除,修改查询等功能。l 教师课程信息管理:对教师所授课程的关系的增加与删除功能。l 班级课程信息管理:对班级所学课程的关系的增加与删除等功能。l 教师授课信息管理:对教师所带课程以及所学班级的关系的一个增加删除修改等功能。l 排课:实现自动排课。l 教师课表输出:输出所选择的教师的课表。

34、l 班级课表输出:输出所选择的班级的课表。l 帮助 : 提供一些文档类型的帮助信息。3.2 模块功能设计 通过对需求的分析,本系统主要的功能模块极其子模块设计如图3-1。 图3-1模块功能图本设计的主要模块包括信息录入模块,排课实现模块,教师课表输出模块,班级课表输出模块,以及相关信息帮助模块。其中信息录入模块又分为七个子模块,分别对各个信息的管理。包括教师信息管理,班级信息管理,课程信息管理,教室信息管理,教师课程信息管理,班级课程信息管理,教师授课信息管理。 各模块的主要功能为:1)教师信息管理:针对教师姓名,教师编号,教师简介的添加,修改查询,删除等来实现教师信息的维护。2)班级信息管理

35、:针对班级名称,班级编号,班级人数,班级简介的添加,删除修改,查询等来实现对班级信息的维护。3)课程信息管理:针对课程名称,课程编号,课时数,课程简介的添加,删除,修改,查询等来实现对课程信息的维护。4)教室信息管理:针对教室名称,座位数,教室编号,教室简介的添加,删除,修改,查询等来实现对教室信息的维护。5)教师课程信息管理:实现教师和所授课程的对应关系。6)班级课程信息管理:实现班级和所学课程的对应关系。7)教师授课信息管理:对教师,课程,班级的一一对应的一个添加,删除等功能来实现这些关系的实现与管理。8)排课:实现程序主要功能排课。9)教师课表输出:选择要查询的教师姓名然后输出该教师的课

36、程表。10)班级课表输出:选择要查询的班级输出相应的班级课程表。3.3 排课算法设计高校排课系统采用了多种不同的排课思想,其中关联规则需求矩阵法和回溯算法的思想,基于c/s的开放式结构,以此为基础,对该领域进行归纳,并梳理其理论逻辑,期望本文能为人们进一步研究这一课题提供一些有益的视角。排课调课是高校教务管理的一项日常工作,因其费时费力,手工完成多易出错,所以利用计算机进行自动排课的想法自然而生。国外从20世纪50年代就有人研究排课问题,直到20世纪90年代关于课表问题的研究仍然十分活跃。所用方法有整数规划、图论、分支定界技术及模拟退化法等。国内从20世纪80年代初期开始排课问题的研究,从模拟

37、手工排课到构建专家系统都有尝试。此文就是通过对多篇文献资料的参考,综述智能排课在高校教育中的发展及应用。3.3.1 系统总体目标排课管理的主要任务是把各系或各授课部门的课程申请进行汇总, 然后根据教学计划或教学环节制订全校各班级的课表。为了使课表的编排准确、合理、快速、高效, 充分利用学校资源。本系统应该具备以下功能:1)根据教学计划和开课任务书实现自动排课, 按不同方式输出排课结果。2)同一门课程可以安排在同一个教室, 也可以有所流动。3)对于某门课, 第一次授课的时间段确定后, 当安排后面的授课时, 必须考查时间段的有效性。即同一门课的两次授课时间必须隔开。比如, 一周的两次授课, 第一次

38、排在周一的1, 2 节这个时段, 第二次授课, 排在周一的任何时段和周二的任何时段都太近, 排在星期五又太远, 在星期三或星期四的某个时间则比较理想。4)应避免各种冲突:教室不冲突, 同一教室同一时间不能安排两门课程,人数不能超过教室的最大容量。学生不冲突, 同一班级学生不能在同一时间上两门或两门以上课程。课程不冲突, 同一班级同一课程不能同一时间在不同地点上课。教师不冲突, 同一教师不能同一时间在不同地点上课。3.3.2 排课算法设计及描述针对系统设计的总体目标,排课算法要满足相应的约束条件,且要达到一定的效率,算法流程图如图3-2。图3-2 算法设计流程图1)排课以班级为主线选出班级课程表

39、中所有的记录,根据班级课程表中的每一条记录做一个循环,判定每个班级所对应的课程是否已排。是:返回选择下一条记录。否:进行下一步。2)根据班级课程表中的ID到教师授课表中选择所对应的教师。3)按策略选择一个教室的时间段,根据教室的时间段判断教师,班级是否有空。否:返回上一层重新选择教室,直到满足条件为止。是:进行下一步。4)判断是否合班上课。合:判断人数合大于不大于教室座位数。大于:返回3重新选择教室重新判断。不大于:进行下一步5。不合:判断人数是否大于教室座位数大于:大于:返回3重新选择教室重新判断。不大于:跳到6。5)对合班的排课,同时把选中的班级以及合班的班级同时进行排课及写入数据库。返回

40、循环开始。6)不合班,对选中的班级进行排课,写入数据库,返回循环开始。7)循环结束,结束本次排课。 第四章 数据库设计4.1 实体关系模型实体-关系模型(Entity-Relationship Module,简称E-R模型)是数据库结构设计常用的方法,E-R图中的矩形表示实体,菱形表示实体间的联系,椭圆表示实体属性,联系的类型可用1:1或M:N来表示。 自动排课系统的数据库设计主要是老师、班级、课程、教室的信息管理,其E-R图如图4-1。4-1 实体关系模型图4.2 数据库设计对数据表的设计主要考虑到数据的存储以及表与表之间的关系,比如说对教师表和教师课程表以及课程表之间的关系,教师表中包括教

41、师ID,教师姓名,教师其他的一些信息。教师课程表中包括教师ID课程ID。课程表中包括课程ID,课程名称,课时数,以及课程简介。其中关系是教师课程表中的教师ID关联教师表中的ID,教师课程表中的课程ID关联课程表中的课程ID。这样可以减少一些重复的信息存储,有效降低数据冗余。不过有时候也会增加一些数据冗余,这是考虑程序员在使用方便的情况下做的一些必要的数据冗余。根据E-R图设计数据库关系如图 4-2。4-2 数据库关系图具体数据表设计如下:1)教师信息表 教师信息表存放教师相关信息,因为毕业设计主要关注排课算法的实现,因此教师信息表中的字段并不丰富,例如可以再增加联系电话,家庭地址等必要字段,这

42、也是毕业设计后续需要完善的地方,具体的表字段如表4-1。表 4-1 教师信息表名称代码数据类型是否主键是否必须教师内部IDTeacherinfoIdIntTRUETRUE工号TeacherNumberIntFALSETRUE姓名TeacherNameCharFALSETRUE备注TeacherOthersVarcharFALSEFALSE2)班级信息表班级信息表主要包括班级ID,班级名称,班级人数等信息。主要是对班级信息的存储。具体的表字段如表4-2。表4-2 班级信息表名称代码数据类型是否主键是否必须班级内部idClassInfoIdintTRUETRUE班级名称ClassNamecharF

43、ALSETRUE班级人数ClassNumberintFALSETRUE备注ClassothersvarcharFALSEFALSE3)课程信息表课程信息表包括课程ID,课程名称,课时数,课程简介,主要是对课程信息的存储。具体表字段如表4-3。表4-3 课程信息表名称代码数据类型是否主键是否必须课程表内部idCourseInfoIdintTRUETRUE课程名CourseNamecharFALSETRUE课时coursetimesintFALSETRUE备注CourseothersvarcharFALSEFALSE4)教室信息表教室信息表包括教室ID,教室名称,座位数,教室简介,主要是对教室信息

44、的存储。具体表字段如表4-4。表4-4 教室信息表名称代码数据类型是否主键是否必须教室内部idClassroomInfoIdintTRUETRUE教室名称ClassroomNamecharFALSETRUE座位数ClassroomNumberintFALSETRUE备注ClassroomOthersvarcharFALSEFALSE5)教室时段表教室时段表是对教室各个时段的信息存储。包括教室时段表内部id,教室内部id,周次,课次,是否已排,对这样信息的处理主要是为了方便排课的时候使用。具体表字段设计如表4-5。表4-5 教室时段表名称代码数据类型是否主键是否必须教室时段表内部idroomti

45、meInfoIdintTRUETRUE教室内部idClassroomInfoIdintFALSETRUE周次zhouciintFALSETRUE课次keciintFALSE TRUE是否已排IsArrangeintFALSETRUE6)教师课程表 教师课程表是对教师与课程关系的一个存储。包括教师ID,课程ID。表字段设计如表4-6。表4-6 教师课程表名称代码数据类型是否主键是否必须教师内部IDTeacherinfoIdIntTRUETRUE课程表内部idCourseInfoIdIntTRUETRUE7)班级课程表班级课程表是对班级与课程关系的一个存储。包括班级ID,课程ID。表字段设计如表4-7。表4-7 教师课程表名称代码数据类型是否主键是否必须课程表内部idCourseInfoIdIntTRUETRUE班级内部idClassInfoIdintFALSETRUE是否已排IsArrangeintFALSETRUE8)教师上课单元表教师上课单元表是对教师,所授课

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号