毕业设计(论文)-智能排课系统设计与实现.doc_第1页
毕业设计(论文)-智能排课系统设计与实现.doc_第2页
毕业设计(论文)-智能排课系统设计与实现.doc_第3页
毕业设计(论文)-智能排课系统设计与实现.doc_第4页
毕业设计(论文)-智能排课系统设计与实现.doc_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北方民族大学学士学位论文论文题目智能排课系统设计与实现系(部)名称:计算机科学与工程学院学生姓名:专业:学号:指导教师姓名:任荣论文提交时间:2012-4-23论文答辩时间:2012-4-28学位授予时间:北方民族大学教务处制智能排课系统的设计与实现II智能排课系统设计与实现智能排课系统设计与实现摘要排课,是给学校各专业的教学计划中设置的课程安排合适的时间和地点,也就是给每个班的课程安排时间和地点。排课工作在教学管理中很重要也很繁琐,计算机智能排课系统,可以降低排课人员的工作量,减少排课中的人为因素1-2。但排课问题属于NP问题,即无法直接得到答案,只能通过猜测获取可能结果。通常NP问题虽无答案,却有算法,算法不能直接告诉答案,但可以用来判断可能的结果是否正确可行。因此,要做好排课工作,提高排课效率,实现智能排课是必不可少的。本文在查阅大量相关文献的基础上,对高校的排课问题进行了分析,设计和实现了该功能,此系统主要被分为三个部分:界面的设计、排课算法的设计、以及报表的自动生成。本系统是采用MicrosoftVisualStudio2005作为前台开发工具,SQLServer2005作为后台数据库平台的管理系统。关键词:关键词:智能排课、贪心、分治、VisualStudio2005、SQLServer2005。智能排课系统的设计与实现IIITheDesignandImplementationofIntelligenceCurriculumSystemAbstractCoursestimetablingistoarrangetheappropriatetimeandtheplacetothecurriculuminschooleachspecializedplanofinstructionorisforeachclassscurriculumarrangementEachsemestercoursestimetablingworkisintheteachingsupervisoryworkkeypointandthedifficultyAuto-coursetimetablingcanhelpreduceworkingpressureandman-madeinterruptionCoursestimetablingbelongingtotheNPquestion,isunabletogivethedirectanswerbutapossibleresultthroughguessAlthoughthequestiondoesnothavetheanswer,hasthealgorithmactually,thealgorithmusuallycannottelltheanswerbutCantellwhetherthesomepossibilityistrueoffalseTherefore,itisessentialtoimplementationofIntelligencecurriculumsystemItmayhelptoenhancethetimetablingefficiency,promoteteachingmanagementlevelenhancementThisarticleintheconsultmassivecorrelation1iteraturefoundationhascarriedontheanalysistocoursestimetabling,Designandimplementthefunctionthissystemismainlydividedintothreeparts:interfacedesigncurriculumdesignandreportsoftheautomaticgeneration.ThissystemisusedasaMicrosoftVisualStudio2005developmenttoolsSQLServer2000astheback-enddatabasemanagementsystemplat.KeywordsThedesignandimplementationofIntelligencecurriculumsystemGreedyPartitionVisua1Studio2005SQLServer2005智能排课系统的设计与实现IV目录摘要.IIABSTRACT.III1绪论.11.1系统开发背景.11.2系统开发环境及方法.11.2.1.开发环境.11.2.2开发方法.32可行性分析.42.1技术可行性.42.2经济可行性.42.3操作可行性.52.4法律可行性.53系统需求分析.63.1系统功能需求.63.2系统非功能需求.63.2.1排课中的基本原则.63.2.2排课的基本要求.74总体设计.84.1系统总体构架.84.2系统功能结构.84.3排课算法.94.3.1目前常用算法.94.3.2排课问题描述.104.3.3排课问题的数学表示.114.3.4排课问题的优先级问题.11智能排课系统的设计与实现V4.3.5算法思想.124.3.6算法分析.135数据库设计.145.1系统数据表.145.2UML建模图.145.3数据字典.155.4数据库关系图.186详细设计.196.1数据库访问模块.196.2条件设置模块.226.3教学计划模块.256.4排课模块.266.5课程表查询模块.44结束语.46致谢.47参考文献.48智能排课系统的设计与实现11绪论1.1系统开发背景在高校各项教学管理工作中,排课一直是最基本的、最重要的工作,其实质就是给教学计划中设置的课程安排合适的时问和地点,保证整个教学工作能够顺利地进行;同时,排课工作也是一项很复杂的工作,排课是一个NP问题,就是始终找不到一个最优的方法能够解决的问题,因为这个问题涉及了多种因素进行组合规划,有教师、学生的因素,也有教室的因素。尤其在目前各高校规模不断扩大,教学资源面临紧张,教师总数不足的前提下,排课工作问题更为凸出。随着计算机技术的飞速发展,特别是计算机的应用已普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,利用计算机实现高校排课系统势在必行。对于各大高校来说,利用计算机支持学校管理员排课,是适应现代学校的制度要求、推动学校管理走向科学化、系统化、规范化的必要条件,从而达到提高校管理效率的目的。给同学和老师带来方便。1.2系统开发环境及方法.2.1.开发环境在计算机硬件和软件快速发展的今天,计算机硬件和软件已经远远满足本管理系统的要求。在数据库编程工具方面,各种可视化编程方法的出现,一改过去程序设计的概念和方法,用户用鼠标就可以快速、简捷地创建应用程序,极大地提高了编程效率。选用MicrosoftVisualStudio2005中文版数据库开发的应用程序可以独立运行于windows平台,而且SQLServer2005产生的数据库适用范围广,因此本系统采用MicrosoftVisualStudio2005中文版来完成高校排课系统的设计。VisualStudio是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。2005年,微软发布了VisualStudio2005。.NET字眼从各种语言的智能排课系统的设计与实现2名字中被抹去,但是这个版本的VisualStudio仍然还是面向.NET框架的(版本2.0)。它同时也能开发跨平台的应用程序,如开发使用微软操作系统的手机的程序等。总体来说是一个非常庞大的软件,甚至包含代码测试功能。这个版本的VisualStudio包含有众多版本,分别面向不同的开发角色。同时还永久提供免费的VisualStudioExpress版本。使用VisualStudio2005专业开发人员能够:(1)使用改进后的可视化设计工具、编程语言和代码编辑器,享受高效率的开发环境;(2)在统一的开发环境中,开发并调试多层次的服务器应用程序;(3)使用集成的可视化数据库设计和报告工具,创建SQLServer2005解决方案;(4)使用VisualStudioSDK创建可以扩展VisualStudioIDE的工具6-8。VB2005是visualStudio2005中最重要的组件之一,是新一代的VB,但它并不是VB.NET2003的简单升级,从开发界面到控件,VB2005与VB.NET2003之间还是有比较大的区别6。新一版SQLServer的设计目标正是帮助企业单位应对上述挑战。作为Microsoft公司的下一代数据管理与分析软件,SQLServer2005有助于简化企业数据与分析应用的创建、部署和管理,并在解决方案伸缩性、可用性和安全性方面实现重大改进。基于SQLServer2000技术优势构建的SQLServer2005将提供集成化信息管理解决方案,可帮助任何规模的组织机构:(1)创建并部署更具伸缩性、可靠性和安全性的企业级应用。(2)降低数据库应用创建、部署与管理的复杂程度,进而实现IT效率最大化。(3)凭借可供创建更具安全保障之数据库应用的丰富、灵活、现代化开发环境增强开发人员工作效能。(4)跨越多种平台、应用和设备实现数据共享,进而简化内部系统与外部系统连接。(5)实现功能强劲的集成化商务智能解决方案,从而在整个企业范围内推进科学决策,提高工作效率。(6)在不必牺牲性能表现、可用性或伸缩性的前提下控制成本费用水平9-10。智能排课系统的设计与实现31.2.2开发方法以各高校的排课需求为应用背景,开发一个典型的高校智能排课系统。考虑实际情况,本系统将采用结构化生命周期法进行系统分析和设计,并采用原型法进行系统实施。图1-1原型法生命周期图原型法的基本思想是在投入大量的人力,物力之前,在限定的时间内,用最经济的方法开发出一个可实际运行的系统模型,用户在运行使用整个原型的基础上,通过对其评价,提出改进意见,对原型进行修改,统一使用,评价过程反复进行,使原型逐步完善,直到完全满足用户的需求为止。这样能有效避免盲目开发问题,同时能充分的发挥原型法的优势,能顺利实现系统的实施4-5。2可行性分析2.1技术可行性该系统对软、硬件系统要求较低,所需硬件设备,市场上销售且价格较低,甚至可以使用原有的设备。软件上,操作系统采用Windows系列操作系统、Microsoft智能排课系统的设计与实现4VisualStudio2005作为前台开发工具,它具有的“编辑后继续运行(editandcontinue)”的特性,超越了旧的编辑编译测试模式。它还引入了面向对象的程序设计思想和“控件”概念,使得大量已经编好的VisualBasic程序可以直接拿来使用。同时,VisualBasic又是最容易学习与应用的程序语言之一。它的功能非常强大,已成为一种专业化的开发语言和环境。采用SQLServer2005作为后台数据库平台的管理系统,它在电子商务、数据仓库和数据库解决方案等应用中起着核心作用,可为企业的数据管理提供强大的支持,对数据库中的数据提供有效的管理,并采用有效的措施实现数据的完整性、数据的安全性以及数据的可靠易用性等等。这些软件在高校排课系统开发中已被大量应用,技术上都比较成熟。因此在技术上是可行的。2.2经济可行性当今学校内部没有完善的高校排课系统,管理水平差,学校课程不能得到合理分配。迫切需要提高现代化管理水平、管理质量和管理高校课程。高校排课系统的初步现代化的开发和使用,能够大大提高学校管理者的工作效率,节省成本提高经济效益。它把从事教务管理的人员从繁重的手工操作中解脱出来,用更多精力从事创造性的管理活动和其它重要的活动中去,从而达到节省人力、物力,财力的目标;它能使决策、计划和其它管理活动更加科学、精确、灵活。因此,开发一个专门针对高校排课系统,在经济上也是可行的。2.3操作可行性本系统灵活方便,快捷迅速,适应处理多项数据。采用友好、直观的视窗界面,鼠标、键盘两种操作方式任意选择,方便快捷。界面统一规范,提示信息功能完整,稍一接触就可以上手进行所有操作。2.4法律可行性本系统纯为个人设计,在开发过程中没有涉及合同、责任、版权等与国家相关法律规定相抵触的方面。因此,本系统在法律上是可行的。智能排课系统的设计与实现53系统需求分析3.1系统功能需求智能排课系统需要实现对学校教师、教室、班级、及课程的信息管理,对高校排课,都有智能的管理,主要实现如下的一些功能:班级各种信息的输入,包括班级号,班级名称,年级,班级人数,是否合班。教师各种信息的输入,包括教师号,教师姓名,职称,联系方式。学校课程的增加,删除,修改。学校课程计划的制定。学校的自定义排课,根据需要,人工排课。学校的智能排课,根据需要,随机智能排课。有一些相关的提示。课表查课界面,根据不同条件,查看课程安排。3.2系统非功能需求3.2.1排课中的基本原则在课程的编排中应遵循一定的规则只有按照基本规则来进行课程的编排才能够减少冲突的发生这些基本规则主要有以下几条:1)同一班级的学生在同一时间(某些特定的选修课时间除外)不能安排两门课程2)同一教师在同一时间不能安排两门课程3)同一教室在同一时间不能安排两门课程4)同一时间安排的课程总数不能大于所能提供的教室总数5)某一课程参加学习的总人数不应大于所安排教室的座位数6)所提供教室的属性与课程所需教室的属性一致智能排课系统的设计与实现6在时间、教师、班级、教室、课程这五维关系中时间、教师、班级三者之间存在着紧密关系。相对而言教室与它们关系就不那么密切。3.2.2排课的基本要求课程的安排不是任意的为了达到最好的教学效果应遵循一定的要求。这些要求主要有:1)要尽量为所排课程安排上该类课效果最好的时间2)课程在一周上多次时要有一定的间隔性3)公共课等涉及面广、学时多的课程应优先处理4)对同一教师同一上课对象应尽量选择相对固定的几个教室5)对同一个班级的课程应选择相对固定的教室6)连着的课的教室选择不应相隔太远7)同一天有几门课时尽量把课分散8)优先满足一些特殊要求(比如有些教室喜欢上上午的课,可以优先满足)智能排课系统的设计与实现74总体设计4.1系统总体构架本系统采用客户服务器(ClientServer)模式。又叫主从式架构,简称CS结构,是一种网络架构,它把客户端(Client)(通常是一个采用图形用户界面的程序)与服务器(Server)区分开来。每一个客户端软件的实例都可以向一个服务器或应用程序服务器发出请求。图4-1系统体系结构图CS的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销对应的优点就是客户端响应速度快。4.2系统功能结构高校排课系统可以用于支持各高校完成高校排课的难题,有如下几个个方面的目标:支持各高校输入班级信息;支持各高校输入教师信息,班级教师的增删改等方面。支持输入教室,还有自定义排课和智能排课以及课表查询。系统分为四大模块:条件设置、课程计划、排课管理、课表查询、系统管理。.智能排课系统的设计与实现8智能排课系统设置课程计划排课管理课表查询系统管理课程管理教室课表教师课表班级课表智能排课手工排课计划管理教师管理新建计划教室管理班级管理图4-2功能模块图具体设计目标如下:(1)界面友好,操作简单,帮您轻松上手。(2)系统具有灵活、严格的权限设定功能,采用非常周密有效的权限设置,确保高校各类资料的可靠性和保密性,防止错误和违规操作。系统管理:可修改管理员权限及密码。(3)高校排课系统,资料详细周到,同窗多页的界面方式让你轻松完成所有工作。(4)友善的登录界面,包括学生登录,教师登录,和管理员登陆,根据身份不同,进入的界面也4.3排课算法4.3.1目前常用算法目前,解决排课问题常用的方法有:着色算法11,通过研究时间资源库的形成策略,分析基于时间资源的排课算法12。基于分层分治、贪心算法的排课系统的设计与实现13,基于图论方法的自动优化排课模型研究14,基于资源受限的非线性约束多目标排课模型及算法15,整数规划解决排课问题16,基于遗传禁忌算法结合解决排课问题17等。这些方法虽然提高了搜索效率,但由于高校普遍存在课程量大,教室、教师资源紧张,排课约束条件多且条件经常变化等问题,排课算法的应用仍然受到很大限智能排课系统的设计与实现9制19。4.3.2排课问题描述排课问题的约束条件排课即要满足一定的硬约束条件来协调处理教师、教室、学生、时间之间的多维冲突,同时还要尽可能满足一些软约束条件,从而使排出的课表更加合理,满足人性化需求。硬约束条件要求系统必须满足的条件,而软约束条件是在满足硬约束条件以后要考虑的约束条件,软约束条件不要求系统必须满足,但满足这些条件能得到较优解。常用的硬约束条件有:(1)所有的课程都必须被安排;(2)除合班课外,同一时间,一个教室只能被一个班级占用;(3)除选修课外,同一时间,一个班级只能安排一门课程;(4)同一时间,一个教师只能在一个教室上课;(5)同一个教师所上的不同课程不能发生在同一时间;(6)两门课程不能在同一个时间安排在同一个教室;(7)教室的类型必须与课程要求一致;(8)教室的最大容纳人数必须大于等于在该教室上课的学生人数等;(9)不同课程时间段不同,如体育课只能在白天且不安排在第一节,选修课不能安排在早上等。常用的软约束条件有:(1)同一门课程的上课时间尽量间隔均匀。例如某课程周学时为4学时,以2学时为一个教学单位,需安排两次。两次的安排时间尽量间隔一天或者一天以上;(2)每个学生的课程均匀的分布在工作日中;(3)学生的上课时间要尽量选择在较好的上课时间段;(4)对班级、教室、教师的单双周上课时间点尽量匹配,以节约教学资源;4.3.3排课问题的数学表示如果用C表示课程、S表示班级、N表示时间、R表示教室,T表示教师,排课问题的目标就是找出满足约束条件的(C,S,N,R,T)组合。并且,这五种元素之间存智能排课系统的设计与实现10在一定的对应关系:C与S之间的对应关系,即每个班级有其特定要上的课程;C与T之间的对应关系,即每门课程有一定的任课教师;(N,R)与(S,C,T)之间的对应关系,即每个教室在某一时间段只能有一个班级上一门课程。排课问题的实质就是对于给定的一组(S,C,T)要分配其一个满足上课条件的时空片(N,R)。即找到(N,R)与(S,C,T)之间的一一对应关系。4.3.4排课问题的优先级问题排课中有很多等待分配时空片的(S,C,T),如何安排它们的分配次序,不仅关系到算法的性能、安排的合理性,更关系到最终能否求出可行解。因此,分配次序的好坏也是每个算法中要仔细处理的问题。在本文的算法中,是对每一组(S,C,T)设定优先级,然后按照优先级的高低次序分配时空片。设定(S,C,T)优先级要考虑的因素有:(S,C,T)中课程C的类别,对于不同类别的课程,给它们设定相应的优先值,本算法中针对课程类别的优先级设定如下:专业基础课、公共基础课、专业限选课、专业选修课、公选课优先级别依次降低,其中专业基础课级别最高,公选课级别最低;(S,C,T)中课程C在一周内要上的次数。即一门课程周学时越多,优先级越高;(S,C,T)中班级S所需要上的课程总数的大小。即学生每周要上的课程总数越多,优先级越高;(S,C,T)中学生S中的人数的大小。最后根据各个因素的重要性不同,给每个因素设置一定的权重系数p0、p1、p2、p3,最后求四种因素的带权累加和,即得到一个(S,C,T)的优先级,每次按照(S,C,T)的优先级的降序次序来分配时空片。4.3.5算法思想该算法在选择每一组教学任务(S,C,T)时是按贪心策略来选择,即按(S,C,T)优先级的降序次序选择优先级最高的教学任务。接下来在进行时空片分配过程中智能排课系统的设计与实现11采用分治的策略,在分配过程中分为三个层次:1)即先分配要上课的星期数(星期数是指星期一到星期五的任意一天),2)再分配其该天的上课时间段(在本文中某天的上课时间段分为5个时间段,上午1、2节为第1个时间段,上午3、4节为第2个时间段,下午1、2节为第3个时间段,下午3、4节为第4个时间段,晚上1、2节或者1、2、3节为第5个时间段),3)最后分配上课的教室。同时在每一阶段的分配过程中,都要对资源总数和使用状况作统计和记录,从而防止不计后果的资源滥用。算法主要步骤如下:Step1:初始化。Step1.1:初始化,将所有教室按类型划分,并在每一类型中按教室容量统计可用教室资源的数目。例如,可将教室划分为:普通教室、多媒体教室、语音室、物理实验室、机房等。然后按教室可容纳人数分为0-60人、60-120人、120-140人这4个不同等级。然后统计记录每一类型不同容量范围的可用教室资源数目。Step1.2:预排序,将待排的所有课程先按周学时降序排列,然后再将待排的所有课程先按所需教室类型升序排列,再按所需教室容量降序分配,即先为上课人数多的课程分配教室,防止较小的班级占用大教室,最后再将所有需要使用同一类型和容量教室的课程按优先级降序排序。Step2:分配上课的星期数。按照排序后的次序,再参照剩余的可用资源记录来分配每组(S,C,T)在一周内要上课的星期数。同时参考总课表,使得班级和教师的上课时间在一周内尽可能均匀分布。Step3:分配某天内上课的时间段。Step3.1对每种类型和大小的教室资源按其在一周内的某一天的5个时段的分配情况作统计。Step3.2在分配时间段的时候,从第一个时段到第5个时段依次查看是否还有剩余资源,若有,则为其分配相应的是时间段,否则看能否将某个已被占用的时间段调整后再为其分配。分配的过程中要参照总课表,防止时间冲突。Step3.3若有不能分配的,查找与其相关的已经分配了时间段的课程,并看看能否重新为它分配时间段,从而将原来的时间段让给不能成功找到时间段的那个课程使用。Step4:分配上课的教室:根据每一课程要求的上课时间和教室类型及大小为其分配教室。对于每个已经分配了星期数和时间段的课程,一般来说,都是找得到可用教智能排课系统的设计与实现12室的,因为在前两个分配阶段中,是严格按照资源剩余状况来进行分配的。同时在分配上课所用的教室时,也考虑到单双周情况,以便充分利用教室资源。4.3.6算法分析基于分治贪心相结合的排课算法主要分为3个阶段:即分配上课星期数、分配上课时间段、分配上课的教室。这里对算法的时间复杂度进行分析。第一阶段:分配上课星期数,为每一门课程分配上课星期数的运算次数主要与课程数目有关;第二阶段:分配上课的时段,为一次课分配上课时段所进行判断的次数最坏为5次,分配上课时段的运算次数主要和每周上的总课程次数有关。第三阶段:根据上课星期数和上课时段分配教室;因此该算法主要和问题的规模有关,即与要排课的课目数、课程的周学时数及教室数目有关。和基于贪心策略、基于随机分配时间片的排课算法进行比较,该算法的运行时间介于二者之间,效率略低于基于贪心策略的排课算法,比基于随机分配时间片的排课算法效率要高。但该算法在成功排课的数量上,性能比基于贪心策略的算法会略好。因为分治与贪心相结合的算法中是当有满足条件的资源时,便一定会为其分配。而贪心策略中,可能虽然存在可用资源时仍会遗漏可行解。5数据库设计55.1系统数据表根据系统需求分析,以及考虑到数据表之间的关联性,系统需要建立7个表,2个视图,其用途说明如下表4.1所示。表5-1系统数据表数据表名称数据表描述Class保存班级基本信息Hb保存组成各合班的班级号智能排课系统的设计与实现13Teacher记录教师信息Classroom记录教室信息Course保存课程信息Lesson_plans保存教学计划R_L存储总课表表5-2系统视图数据表名称数据表描述Lp_view保存需要排课的信息,利于排课RL_view保存教室安排信息,利于查询班级时间及教室时间5.2UML建模图下图主要是对应实体关系图,经过分析了各实体及其属性,用MicrosoftOfficeVisio2007画出下图。智能排课系统的设计与实现14教师PK教教师师id教师姓名职称年龄已上过课程所属部门教室PK教教室室ID容量类别班级PK班班级级ID专业年级人数课程PK课课程程ID课程名课程计划PK课课程程计计划划id课课程程id班级id教教师师id周节次总课时课程性质课程计划列1排课权重R_TPKkc_id星星期期节节次次教教室室id是否可用课程计划id单双周合班PPKK合合班班号号PPKK分分班班号号图5-1UML建模图5.3数据字典下列表5.2到表5.8给出7个数据表:班级信息表、合班表、教室信息表、教师信息表、课程信息表、教学计划表、总课表的具体描述,包括数据描述、数据名称、数据类型等。表5-3Course-班级信息表字段名称字段名称说明说明数据类型数据类型长度长度主主外键外键约束约束备注备注Class_id班级编号Char10主键Class_name班级名Char20非空智能排课系统的设计与实现15Department专业Char20grade年级Char10number人数Int非空Hb是否合班int非空默认0(否)表5-4hb-合班表字段名称字段名称说明说明数据类型数据类型长度长度主主外键外键约束约束备注备注Hb_id合班号Char10主键Class_id小班号Char10外键非空表5-5classroom-教室信息表字段名称字段名称说明说明数据类型数据类型长度长度主主外键外键约束约束备注备注Cr_id教室编号Char10主键Capacity教室容量IntCategory教室类别Char10非空表5-6Teacher-教师信息表字段名称字段名称说明说明数据类型数据类型长度长度主主外键外键约束约束备注备注T_id教师编号Char10主键T_name教室姓名Char10非空profession职称Char10age年龄IntDepartment所属学院Char10表5-7Course-课程信息表字段名称字段名称说明说明数据类型数据类型长度长度主主外键外键约束约束备注备注C_id课程号Char10主键C_name课程名Char20非空智能排课系统的设计与实现16表5-8lesson_plans-教学计划表字段名称字段名称说明说明数据类型数据类型长度长度主主外键外键约束约束备注备注Lesson_id课程计划号Char10主键C_id课程号Char10外键非空参照course表中的c_idClass_id班级号Char10外键非空参照class表中class_idT_id教师编号Char10外键非空参照Teacher表中t_idC_nature课程性质Char10W_jieci周节次Int非空Z_jieci总节次IntPaike是否排课Int默认为0(未排课)Category教室性质Char10Qz权重Int自动计算表5-9R_L-总课表字段名称字段名称说明说明数据类型数据类型长度长度主主外外键键约束约束备注备注Kc_id排课标号自动编号主键Week星期Char10非空Jieci节次Char10非空Cr_id教室编号Char10外键非空参照classroom表Lesson_id教学计划号Char10外键非空参照lesson_plans表Available时间可用Int非空Dsz单双周标记Char10智能排课系统的设计与实现175.4数据库关系图图5-2系统数据库关系图智能排课系统的设计与实现186详细设计6.1数据库访问模块该模块中包含数据库连接、查询、插入、和更新。本系统将数据库操作做成一个公共模块,实现代码的重用。建立数据库连接对象PublicobjSqlConnectionAsSqlConnection=NewSqlConnection(datasource=(local)initialcatalog=智能排课&integratedsecurity=SSPIuserid=sapassword=123)数据查询方法,返回dataset类型。PublicFunctionGetDataFromDB(ByValsqlstrAsString)AsDataSetobjDataSet=NewDataSet()objDataSet.Clear()TryobjSqlConnection.Open()objDataAdpter=NewSqlDataAdapter(sqlstrobjSqlConnection)objDataAdpter.Fill(objDataSet)objSqlConnection.Close()CatchexAsExceptionMsgBox(错误号:&Err.Number&错误描述:&Err.Description)EndTryReturnobjDataSetobjDataSet=NothingEndFunction数据更新方法,返回boolean型PublicFunctionUpdateData(ByValsqlstrAsString)AsBooleanDimobjCommandAsSqlCommand=NewSqlCommand()Try智能排课系统的设计与实现19objSqlConnection.Open()objCommand.Connection=objSqlConnectionobjCommand.CommandText=sqlstrobjCommand.CommandType=CommandType.TextobjCommand.cuteNonQuery()objSqlConnection.Close()CatchexAsExceptionMsgBox(错误号:&Err.Number&错误描述:&Err.Description)ReturnFalseEndTryReturnTrueEndFunction数据插入方法,返回boolean型PublicFunctionInsertData(ByValsqlstrAsString)AsBooleanDimobjCommandAsSqlCommand=NewSqlCommand()TryobjSqlConnection.Open()objCommand.Connection=objSqlConnectionobjCommand.CommandText=sqlstrobjCommand.CommandType=CommandType.TextobjCommand.cuteNonQuery()objSqlConnection.Close()CatchexAsExceptionMsgBox(错误号:&Err.Number&错误描述:&Err.Description)ReturnFalseEndTryReturnTrueEndFunction数据删除方法,返回boolean型PublicFunctionDeleteData(ByValsqlstrAsString)AsBoolean智能排课系统的设计与实现20DimobjCommandAsSqlCommand=NewSqlCommand()TryobjSqlConnection.Open()objCommand.Connection=objSqlConnectionobjCommand.CommandText=sqlstrobjCommand.CommandType=CommandType.TextobjCommand.cuteNonQuery()objSqlConnection.Close()CatchexAsExceptionMsgBox(错误号:&Err.Number&错误描述:&Err.Description)ReturnFalseEndTryReturnTrueEndFunction智能排课系统的设计与实现216.2条件设置模块图6-1班级信息管理运行界面智能排课系统的设计与实现22图6-2插入班级信息运行界面添加合班的代码:PrivateSubButton1_Click(ByValsenderAsSystem.ObjectByValeAsSystem.EventArgs)HandlesButton1.ClickDiminumberAsIntegerDimgradeAsStringDimmydsAsDataSetnumber=0grade=nullsqlstr=insertintoclass(class_idclass_namedepartmenthb)values(&TextBox1.Text&TextBox2.Text&TextBox3.Text&1)InsertData(sqlstr)Fori=0ToListBox1.Items.Count-1sqlstr=selectfromclasswhereclass_name=&ListBox1.Items.Item(i)&智能排课系统的设计与实现23myds=GetDataFromDB(sqlstr)number=myds.Tables(0).Rows(0)(number)+numbergrade=myds.Tables(0).Rows(0)(grade)sqlstr=insertintohb(hb_idclass_id)values(&TextBox1.Text&myds.Tables(0).Rows(0)(class_id)&)InsertData(sqlstr)Nextsqlstr=updateclasssetgrade=&grade&number=&number&whereclass_id=&TextBox1.Text&UpdateData(sqlstr)MessageBox.Show(插入合班成功)bj_.智能排课DataSet._Class.Clear()bj_.ClassTableAdapter.Fill(bj_.智能排课DataSet._Class)Me.Close()EndSub删除班级程序代码:PrivateSubButton5_Click(ByValsenderAsSystem.ObjectByValeAsSystem.EventArgs)HandlesButton5.ClickDimdeleteAsString=DataGridView1.SelectedCells(0).Value.ToStringDimhbAsInteger=DataGridView1.SelectedCells(4).Valuesqlstr=selectfromlesson_planswhereclass_id=&delete&IfGetDataFromDB(sqlstr).Tables(0).Rows.Count0ThenMessageBox.Show(该班已安排课程,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论