基于BS模式的实验室排课系统的设计与开发毕业设计论文

上传人:无*** 文档编号:149181493 上传时间:2022-09-06 格式:DOC 页数:51 大小:758.68KB
收藏 版权申诉 举报 下载
基于BS模式的实验室排课系统的设计与开发毕业设计论文_第1页
第1页 / 共51页
基于BS模式的实验室排课系统的设计与开发毕业设计论文_第2页
第2页 / 共51页
基于BS模式的实验室排课系统的设计与开发毕业设计论文_第3页
第3页 / 共51页
资源描述:

《基于BS模式的实验室排课系统的设计与开发毕业设计论文》由会员分享,可在线阅读,更多相关《基于BS模式的实验室排课系统的设计与开发毕业设计论文(51页珍藏版)》请在装配图网上搜索。

1、江西理工大学应用科学学院毕业设计论文 题 目: 基于BS模式的实验室排课系统的设计与开发 作 者: 系 : 信息工程 专 业: 计算机科学与技术 班 级: 学 号: 指导老师: 评阅老师: 2012 年 5 月 基于BS模式的实验室排课系统的设计与开发摘 要在当今信息技术迅猛发展,知识更替日新月异的时代,信息技术为企业的发展提供了机遇,也带来了挑战。使用传统人工的方式管理排课存在着许多缺点,而使用计算机对人事信息进行管理,有着手工管理所无法比拟的优点,这些优点能够极大地提高人事信息管理的效率,也是企业走向科学化、正规化管理,与世界接轨的重要条件。 随着计算机技术的发展及素质教育在学校不断的深化

2、学校对学生的实践能力也越来越重视,所以学校各个班级的实验课课时也越来越多以往在实验室管理中,都只能通过人工的方式编排。但是,伴随着各类学科范围的不断扩大,各个院系的实验学科科目逐渐增多,排课工作显得相当复杂,这就促使我们必须采用一些辅助的手段来辅助。因此,实验室排课系统就成了需要。本实验室实验教学排课系统就是在这种需求下的产物。实验室排课及教学系统设计与实现,针对实验室排课及教学系统设计与实现的复杂程序,经过详细的系统调查,开发出的操作简单、实用的一个实验室排课及教学系统设计与实现。本系统主要有添加,删除学生,教师,自定义排课等基础功能。从软件工程的角度进行了科学而严谨的阐述。本系统采用基于B

3、/S架构进行设计,前端采用Microsoft Internet Explorer浏览器进行访问,后台采用Tomcat+JSP开发Web应用程序,数据库使用SQL Sever 2008。关键词:实验室;排课;B/S模式;JSPBased on the model of the BS laboratory arrangement system design and development AbstractIn todays information technology rapid development, the era of knowledge replacement rapidly, and

4、information technology for development of enterprise provide opportunities, but also brings challenges. Using traditional artificial waymanagement curriculum has many shortcomings, and use the computer to manage personnel information, has the advantages of crafts incomparable, these advantages can g

5、reatly improve the efficiency of personnel information management, but also to scientific and standardization management enterprise, connecting with the world the important condition. With the development of computer technology and quality education in schools to deepen constantly school students pr

6、actical ability also pay more and more attention to, so the school each class experiment class more and more ever, in laboratory management in only by artificial means arrangement. But, with all kinds of its range is expanding constantly, each department of the experimental subject subjects increase

7、s gradually, curriculum arrangement work pretty complex, this has prompted we must adopt a few auxiliary means to help. Therefore, laboratory arrangement system became needs. The lab experiment teaching arrangement system in which it is the product of the demand. Laboratory curriculum and teaching s

8、ystem design and realization, in view of the laboratory curriculum and teaching system design and realization of complex procedures, after a detailed investigation, developed the system of the operation is simple, practical a laboratory curriculum and teaching system design and realization. This sys

9、tem mainly have add, delete student, teacher. Custom curriculum and other basic functions. From a perspective of software engineering scientific and strict elaboration. This system based on B/S structure design, front-end using Microsoft Internet Explorer browser visit by Tomcat + JSP development ba

10、ckground, Web applications use SQL database Sever 2008. Keywords:Laboratory;arranging;B / S mode;JSP目录摘 要IAbstractII第1章 绪论11.1 论文的背景和意义11.2 论文应解决的主要问题11.3 国内外的研究发展情况1第2章 系统需求分析32.1 项目背景32.2 排课系统软件结构分析32.3 软件开发及运行环境分32.4 市场需求分析42.5 可行性分析4第3章 概要设计83.1 系统运行总体流程83.2 目标系统体系结构93.3 排课的主要思想及代码113.4 排课解决办法14

11、第4章 数据库设计154.1 数据库的基本概念154.2数据设计分析164.3数据库逻辑设计18第5章 详细设计215.1 登录窗口设计215.2 学生查课页面255.3 教师查课页面275.4 管理员界面275.5 学生管理界面285.6 课表管理查询界面305.7排课管理界面315.8管理员管理界面335.9排课界面365.10资源管理器界面图39第6章 系统测试406.1 软件测试基础理论406.2 系统转换与实现406.3 系统的优点及技术特征406.4 系统的不足及改进方案416.5 系统的运行与维护41总 结43谢 辞44参考文献4543江西理工大学应用科学学院毕业设计第1章 绪论

12、1.1 论文的背景和意义随着我校全面推行完全学分制,学生实验的安排有了根本性的改变。如何加强实验管理是目前面临的一个重要课题。而实验排课又是其中的重要环节,如何合理安排教学资源,提高实验设备的利用率,充分发挥教师的作用是实验管理的重要任务。但是实验排课又是一项十分复杂的工作,以往手工排课的方式已很难满足现在的需要,而实验排课系统的主要目的就是利用计算机技术进行实验课程的排课工作,将教学管理人员从繁重复杂的排课工作中解放出来。同时,利用排课软件进行排课比手工排课更加方便快捷,能够减少排课过程中所出现的错误,更具有准确性,能够有效的进行实验排课,也大大减轻教务人员的工作量,实现教务工作自动化。1.

13、2 论文应解决的主要问题(1)实验排课、教师排课管理等功能设计,要求同一时间,同一地点不能有一门以上的课程,同一班级,同一地点不能上一门以上的课程;(2)要求和实验管理系统其它模块构成一个完整的应用系统。1.3 国内外的研究发展情况排课是学校教学管理中一项重要而复杂的基本工作,其实质就是为学校所设置的课程安排一组适当的教学时间与空间,从而使整个教学能够有计划有秩序地进行,由于排课约束条件复杂以及内容不断变化等特点,使得排课问题成为令人感兴趣的课题之一。20世纪50年代末60年代初,国外就有人开始对课程表问题进行了研究。在1975年以前的一段时间里,人们主要从构造算法模型入手,研究其解决方法,目

14、的是找到一个解决问题的有效算法。1962年,Gotlieb提出了一个构造课程表的数学模型,接着人们对这个模型算法、解的存在性等问题做了许多探索,并提出过一些新的算法模型,但始终未能找出一个有效算法。1975年,Even等人在美国STAMJ,COMPUT上发表的“On the complexity of timetable and multicommodity flow problem”证明了课表问题是一个多项式复杂程度的非确定性问题。它的论述确立了课表编排问题的学术地位,把人们对计算机编排课表的复杂性的认识提高到了理论的高度。这类问题的求解是典型的时间表与多物流问题的求解。用计算机解决这个问题

15、,从数学角度建立模型,到研究设计一种计算机算法都未能获得满意结果。因此,人们寻求有效算法的探索告一段落,而将更多的精力转移到如何借助计算机这一现代化工具来实现自动编排实际课程表这个问题上。 近40年来,人们对课表问题的计算机解决方法做了许多尝试。其中,课表编排整数规划模型将问题归结为一组0-1变量的解,但是其计算量非常大。解决0-1线性优化问题的分支定界技术却只适用于规模较小的课表编排,Mihoc和Balas将课表公式化为一个优化问题,Krawczk则提出一种线性编程的方法。Junginger将课表问题简化为三维运输问题,而Tripathy则把课表问题视作整数线性编程问题并提出了大学课表的数学

16、模型。 此外,有些文献试图从图论的角度来求解课表问题,但是图的染色体问题也是多项式复杂程度的非确定性问题,只有在极为简单的情况下才可以将课表编排转化为二部图匹配问题。这样的数学模型与实际相差太远,所以对于大多数学校的课表编排问题来说没有实用的价值。进入20世纪90年代以后,国外对课表问题的研究仍十分活跃。比较有代表性的有印度的Uastapu大学管理学院的Arabinda Tripathy、加拿大Montreal大学的Jean Aubin和Jacques Ferland等。目前,解决排课问题的方法有:模拟手工排课法、图论法、拉格朗日松弛法、二次分配法等多种方法。由于课表约束复杂,用数学方法进行问

17、题描述时往往导致问题规模剧烈增大,这已经成为应用数学编程解决排课问题的巨大障碍。国外的研究表明,解决大规模课表编排问题单纯靠数学方法是行不通的,而利用运筹学中分层规划的思想将问题分解,将是一个有希望得到成功的办法。在国内,对课表问题的研究始于20世纪80年代初期,具有代表性的有:南京工学院的UTSS(A University Timetable Scheduling System)系统,清华大学的TISER(Timetable Scheduler)系统,大连理工大学的智能教学组织管理与课程调度系统等。这些系统大都是模拟手工排课过程,以“班”为单位,运用启发式函数来进行编排的。这些课表编排系统往

18、往依赖于各个学校的教学体制,不宜进行大量的推广。正如华东交通大学的郑晓芳教授在排课管理系统的设计一文中所述:“通过实践我们发现不同的学校,管理政策不同,教务管理软件很难实现真正意义上的通用,各高校应针对自己的情况开发出适合自己的应用软件” 。可见,排课系统再怎样完善也很难满足各个学校不同的教学体制的要求。第2章 系统需求分析2.1 项目背景本学生实验排课管理系统是面向高校内部管理人员使用,不对其他人员使用。本系统致力于改善高校排课中出现的问题,避免出现教室资源冲突或教师资源冲突的情况,减少排课中出现的错误,提高排课的工作效率。2.2 排课系统软件结构分析本软件系统采用B/S结构,即Browse

19、r/Server(浏览器/服务器)结构。它是随着Internet技术的兴起,对C/S结构的一种变化和改进。主要利用了不断成熟的WWW浏览器技术,结合多种Script语言,JSP语言,是一种全新的软件系统构造技术。 在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的执行等工作全部由Web Server完成。随着Windows将浏览器技术植入操作系统内部,这种结构已成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应

20、用程序是一个非常大的进步,B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。2.3 软件开发及运行环境分 可选择系统开发语言:JAVA、C语言、VB语言 可选择系统开发工具: Microsoft SQL Server ,JSP,Access,ASP 可选择系统开发环境: Window XP,Window 2000 可选择系统运行环境: Window XP,Window 2000 本系统采用JSP+Tomcat1+ Microsoft SQL Server20082.4 市场需求分析现在从实际使用情况来看,国内外研制开发的这些软件系统在实用性上仍不尽如人意。一方面原因

21、是作为一个很复杂的系统,排课要想面面俱到是一件很困难的事;另一方面每个学校由于其各自的特殊性,自动排课软件很难普遍使用,特别是在排课的过程中一个很小的变动,会引起全部排课情况的大调整,这意味着全校课程大变动。所以,现在的排课系统应该根据所要排课的学校的实际情况来进行设计,才能满足不同的需要。2.5 可行性分析2.5.1 技术可行性设计一个实验室排课系统,仅需要一台普通计算机即可,对机器本身没有太高的要求,一般当前学校或个人PC机就可以满足要求。对于软件技术要求,数据库可以有很多选择,如Microsoft Office Access、Oracle、SQL Server等,都可以用于数据库的创建。

22、对于排课系统中最困难的排课算法问题,现今有许多的算法可以借鉴,如贪婪算法2、遗传算法、专家系统算法、模拟退火算法等。对于程序设计语言的选择,选择JAVA、C、VB语言来编写排课算法都可以。本系统采用JAVA语言来进行编写,Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。具体来说,它具有如下特性:简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。下面我们将重点介绍Java3语言的面向对象、平台无关、分布式、多线程、可靠和安全等特性。特点一:面向对象 面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互

23、作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语

24、言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。 多态性就是多种表现形式,具体来说,可以用“一个对外接口,多个内在实现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。运算符重载(operatoroverload)一直被认为是一种优秀的多态机制体现,但由于考虑到它会使程序变得难以理解,所以Ja

25、va最后还是把它取消了。 继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子实体,如:卡车、公共汽车等。这些子实体都具有汽车的特性,因此,汽车是它们的“父亲”,而这些子实体则是汽车的“孩子”。Java提供给用户一系列类(class),Java的类有层次结构,子类可以继承父类的属性和方法。与另外一些面向对象编程语言不同,Java只支持单一继承。特点二:平台无关性 Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C+具有一定程度的源代码

26、级平台无关,表明用C或C+写的应用程序不用修改只需重新编译就可以在不同平台上运行。Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。另外,Java芯片的出现也会使Java更容易嵌入到家用电器中。)JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为

27、JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的(过程如图1所示)。另外,Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java的平台无关性。 Java的平台无关性具有深远意义。首先,它使得编程人员所梦寐以求的事情(开发一次软件在任意平台上运行)变成事实,这将大大加快和促进软件产品的开发。其次Java的平台无关性正好迎合了“网络计算机”思想。如果大量常用的应用软件(如字处理软件等)都用Java重新编写,并且放在某个Internet服务器上,那么具有NC的用户将不需要占用大量空间安装软件,他们只

28、需要一个Java解释器,每当需要使用某种应用软件时,下载该软件的字节代码即可,运行结果也可以发回服务器。目前,已有数家公司开始使用这种新型的计算模式构筑自己的企业信息系统。特点三:分步式 分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。 Java支持WWW客户机/服务器计算模式,因此,它支持这两种分布性。对于前者,Java提供了一个叫作URL的对象,利用这个对象,你可以打开并访问具有相同URL地址上的对象,访问方式与访问本地文件系统相同。对于后者,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,

29、提高系统执行效率。 Java提供了一整套网络类库4,开发人员可以利用类库进行网络程序设计,方便得实现Java的分布式特性。特点四:可靠性和安全性 Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。Java虽然源于C+,但它消除了许多C+不可靠因素,可以防止许多编程错误。首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常

30、处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。 由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。上述几种机制结合起来,使得Java成为安全的编程语言。特点五:多线

31、程 线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执行的单位。C和C+采用单线程体系结构,而Java却提供了多线程支持。Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。Java提供了一个类Thread,由它负责启动运行,终止线程,并可检查线程状态。Java的线程还包括一组同步原语。这些原语负责对线程实行并发控制。利用Java的多线程编程接口,开发人员可以方便得写出支持多线程的应用程序,提高程序执行效率。必须注意地是,J

32、ava的多线程支持在一定程度上受运行时支持平台的限制。例如,如果操作系统本身不支持多线程,Java的多线程特性可能就表现不出来。 Microsoft SQL Server 20085 提供了不断扩展的数据库,其中包含了优化性能、向上扩展个别服务器及向外扩展极大型数据库所需的工具和功能。重大的新功能是使用资源调控器取得资源分配的控制权;使用 Performance Studio 针对企业中的 SQL Server 2008 实例进行故障排除、微调和监视;在 SQL Server Analysis Services 6中使用扩展性和性能增强功能来建立高性能的分析解决方案;使用 SQL Server

33、 Reporting Services 中重新经过工程处理的报表引擎,充分利用其即时的报表处理和更好的性能;在 SQL Server Integration Services 中使用可扩展的查找任务来提升抽取、转换和加载 (ETL) 的性能;2.5.2 经济可行性在高等院校中,培养学生的主要途径是教学。在教学活动中,有一系列管理工作。其中,教学计划的实施是一个重要环节。每学期管理人员都要整理教学计划,根据教学计划下达教学任务书,然后根据教学任务书编排课程表。在这些教学调度工作中,既有大量繁琐的数据整理工作,更有严谨思维的脑力劳动。此外,还要填写大量的表格。因此工作非常繁重。加之教学的改革,招生

34、人数的增加及教室设备的不足,不但增加了工作的难度,而且要求管理工作更加快速、准确。为此,人们自然希望用先进的管理手段完成这些工作。随着计算机技术的普及,办公室自动化的先进管理手段被引进到教学调度工作中。计算机排课与人工排课有一定区别。人的思维可以是收敛的,也可以是发散的。因而排课表时非常灵活,随机性很强,没有严格的工作步骤,随情况而变,觉得怎么合理怎么做。但计算机就不同,它并不具备人的大脑那样的发散思维能力。它的“大脑”里的一切信息都是由“数据”组成。每步工作是由人把人的思维抽象成计算机的语言,通过程序进行控制。所以用计算机进行排课最大的要领就是要掌握系统软件的设计思想,各种数据间的关系及工作

35、先后顺序等,就是要掌握各种课程的要求如何通过数据传输给计算机,让它领会人的意图,达到预期的目的。分析了这些因素后,我们认为有必要通过计算机开发排课系统,来满足现今实验室排课的问题。这样,能为学校节省大量的人力物力,带来很多便利。2.5.3 操作可行性本系统灵活方便,快捷迅速,适应处理多项数据。采用友好、直观的视窗界面,鼠标、键盘两种操作方式任意选择,方便快捷。界面统一规范,提示信息功能完整,稍一接触就可以上手进行所有操作。2.5.4法律可行性本系统纯为个人设计,在开发过程中没有涉及合同、责任、版权等与国家相关法律规定相抵触的方面。因此,本系统在法律上是可行的。第3章 概要设计概要设计的目的是通

36、过本系统软件,能帮助人事管理人员利用计算机,快速方便的对所属公司的信息管理,近行维护、输入、输出、查找的所需操作,使散乱的人事数据能够具体化,直观化、合理化。概要设计的任务是根据需求分析得到的物理模型确定一个合理的软件系统的体系结构,作为系统的详细设计的基础和准备。具体内容见以下几方面:3.1 系统运行总体流程根据功能的不同可以将本系统划分为三个主模块,九个子模块: 实验室排课系统用户登录子系统学生选课子系统排课管理子系统学生教师查询课程信息查询课程管理员选课和退课课表查询选课确认进入排课系统图3.1实验室排课及教学系统设计与实现运行总体流程图3.1.1用户登录子系统操作对象:学生、教师、管理

37、员。用户登录子系统功能:用户登录时,首先要选择自己登录的类型,才能实现自己所需求的服务功能。即用不同身份登录系统会拥有不同的权限。用户登录操作流程:首先用户应先输入账号(学号、教师号、管理员号)和密码,再选择登录的类型,如果相应的账号和密码正确,则顺利进入系统,如果账号或密码不正确,则提示用户登录失败。3.1.2、学生选课子系统操作对象:学生。学生选课子系统功能:学生可以查询课表、查询课程详细信息(课程,教师)、选课和退课等操作。学生选课操作流程:学生登录验证成功后,进入学生选课子系统,点击相应的课程号就可以直接选课。如果输入课程号或教师号,可以进行可选课程查询,同时,自己的选课表会显示出来,

38、在选课版面还可以进行密码修改,退出系统。除此之外,学生还可以进入课表查询、课程查询和选课查询版面进行相应操作。3.1.3、排课管理子系统操作对象:管理员。课程管理子系统功能:管理员可以进入排课系统,还可以进行课表查询、课程查询、选课查询,但不具有学生拥有的选课功能。管理员操作流程:管理员登录验证成功,进入系统,即可以进行相应的操作,如进入排课系统,可以进行排课、发布选课信息、对学生的选课信息进行确认。排课系统编码与实现系统运行流程图描绘了物理系统的总体运行情况。浏览此图可对整个实验室排课系统设计与实现的功能有一个快速、清晰的认识。3.2 目标系统体系结构3.2.1 实验室排课及教学系统设计与实

39、现软件结构图实验室排课子系统教师信息管理课程信息管理信息维护教室信息管理课程安排排课管理信息维护信息维护课程安排排课排课结果信息录入信息录入信息录入图3.2实验室排课及教学系统设计与实现功能结构图 首先,产生的时间是在教师和所有上课的班级共同的空闲时间集合中产生,并且尽量保证时间选择上的均匀性,防止一周几次课集中于某一段时间。 其次,对教师的选择,一方面考虑到教师的时间限制(由教师确定一学期中第几周,每周哪天哪节课没空),另一方面,对教师设置排课级别,随着排课时间的增多,级别值就增大,从而再次被选择排课的几率就减小(此时要求同一门课程有多个教师讲授)。 最后,教室也设置了排课级别,同教师类似,

40、这样便可以保证教室资源会得到合理而均匀有效地利用。图3.3 登陆权限结构图3.2.2 基础数据模块结构图 图3.4基础数据结构图3.2.3信息维护模块结构图 图3.5信息维护结构图3.2.4 查询浏览模块结构图图3.6查询浏览结构图3.3 排课的主要思想及代码排课时,首先初始化实验室信息链表和教师信息链表,然后由教师信息链表开始循环求解,找到某课程的教师和实验室信息,循环判断教师可用的时间,将教师可用时间与实验室安排做比较,最后再和实验室可用时间比较,看教师是否能在这时间上课,能则把得出的结果添加进入课表。排课的主要代码如下:public void doGet(HttpServletReque

41、st request, HttpServletResponse response)throws ServletException, IOExceptionValidate v = new Validate();String zhuanye = request.getParameter(zhuanye);String nianji = null;if (request.getParameter(nianji) != null& !request.getParameter(nianji).equals()nianji = v.getUnicode(request.getParameter(nian

42、ji);AptitudePaikeBean ab = new AptitudePaikeBean();ArrayList kecheng = ab.getKecheng(zhuanye, nianji);ArrayList banji = ab.getBanji(zhuanye, nianji);ArrayList jiaoshi = ab.getJiaoshi();ArrayList laoshi = ab.getLaoshi();String begin = null;String end = null;int beginInt = new int3;int endInt = new in

43、t3;int xy = new int56;for (int i = 0; i kecheng.size(); i+)boolean bool = true;int flag = 0;int a = 0;/ 总共的教学周int b = 0;/ 每周的课时数ArrayList al = (ArrayList) kecheng.get(i);begin = al.get(6).toString().split(-);end = al.get(7).toString().split(-);for (int j = 0; j begin.length; j+)beginIntj = Integer.p

44、arseInt(beginj);endIntj = Integer.parseInt(endj);Calendar c = Calendar.getInstance();c.set(beginInt0, beginInt1 - 1, beginInt2);c.add(Calendar.DATE, -1);while (bool)c.add(Calendar.DATE, 1);flag+;if (c.get(Calendar.MONTH) + 1 = endInt1& c.get(Calendar.DATE) = endInt2)bool = false;if (flag % 5 = 0)a =

45、 flag / 5;elsea = flag / 5 + 1;if (Integer.parseInt(al.get(3).toString() % a = 0)b = Integer.parseInt(al.get(3).toString() / a;elseb = Integer.parseInt(al.get(3).toString() / a + 1;for (int n = 0; n 6; n+)for (int w = 0; w 5; w+)if (xywn = 0)xywn = Integer.parseInt(al.get(0).toString();elsecontinue;

46、b-;if (b = 0)break;if (b = 0)break;ArrayList paike = new ArrayList();for (int i = 0; i banji.size(); i+)ArrayList all = new ArrayList();ArrayList allRow = new ArrayList();ArrayList banjiRow = (ArrayList) banji.get(i);int flag = 0;for (int x = 0; x 5; x+)for (int y = 0; y 6; y+)if (xyxy + 1 != 0)flag

47、 = xyxy;xyxy = xyxy + 1;xyxy + 1 = flag;elsebreak;for (int x = 0; x 5; x+)ArrayList allCol = new ArrayList();for (int y = 0; y 6; y+)allCol.add( + xyxy);allRow.add(allCol);all.add(allRow);all.add(banjiRow);paike.add(all);request.setAttribute(zhuanyeid, zhuanye);request.setAttribute(nianji, nianji);r

48、equest.setAttribute(paike, paike);request.setAttribute(kecheng, kecheng);RequestDispatcher rd = request.getRequestDispatcher(jsp/paike/aptitudepaike.jsp);rd.forward(request, response);3.4 排课解决办法在排课算法中,因为教师可以上课时间由其系统确定,实验室可以用时间也于其它系统确定,那么我们只需要将老师和实验室对应确定下来就可以了,在排课过程中,我们为了解决冲突,每当确定教师一门课的上课时间后,就从数据库中将实

49、验和教师的当前时间做出标记,再排就是未排的课程。这样教师的一个时间或者实验室的一个时间就只可能出现一讲课,即解决了排课冲突。第4章 数据库设计4.1 数据库的基本概念4.1.1 概念模型概念模型是在现实世界中对客观事物及其联系的一种抽象描述。涉及到下面几个术语:(1)实体:我们把客观存在并且可以相互区别的事物称为实体。实体可以是实际事物,也可以是抽象事件。如一个职工、一场比赛等。(2)实体集:同一类实体的集合称为实体集。如全体职工。注意区分型与值的概念。如每个职工是职工实体“型”的一个具体“值”。属性:描述实体的特性称为属性。如职工的职工号,姓名,性别,出生日期,职称等关键字,如果某个属性或属

50、性组合的值能唯一地标识出实体集中的每一个实体,可以选作关键字。用作标识的关键字,也称为码。如“职工号”就可作为关键字。4.1.2 ER模型ER模型(实体联系模型)简称ER图7。它是描述概念世界,建立概念模型的实用工具。ER图包括三个要素:(1)实体(型)用矩形框表示,框内标注实体名称。(2)属性用椭圆形表示,并用连线与实体连接起来。(3)实体之间的联系用菱形框表示,框内标注联系名称,并用连线将菱形框分别与有关实体相连,并在连线上注明联系类型。联系归结为三种类型:一对一联系(1:1)设A、B为两个实体集。若A中的每个实体至多和B中的一个实体有联系,反过来,B中的每个实体至多和A中的一个实体有联系

51、,称A对B或B对A是1:1联系。注意,1:1联系不一定都是一一对应的关系。可能存在着无对应。如一个公司只有一个总经理,一个总经理不能同时在其它公司再兼任总经理,某公司的总经理也可能暂缺。一对多联系(1:n)如果A实体集中的每个实体可以和B中的几个实体有联系,而B中的每个实体至我和A中的一个实体有联系,那么A对B属于1:n联系。如一个部门有多名职工,而一名职工只在一个部门就职,部门与职工属于一对多的联系。多对多联系(m:n)若实体集A中的每个实体可与和B中的多个实体有联系,反过来,B中的每个实体也可以与A中的多个实体有联系,称A对B或B对A是m:n联系。如一个学生可以选修多门课程,一门课程由多个

52、学生选修,学生和课程间存在多对多的联系。必须强调指出,有时联系也有属性,这类属性不属于任一实体只能属于联系。4.1.3数据模型简介数据模型由三部分组成,即模型结构、数据操作和完整性规则。这里主要介绍模型结构。DBMS所支持的数据模型分为四种:层次模型、网状模型、关系模型、面向对象模型。其中第四种数据模型目前并未成熟,因此传统的说法有前三种数据模型。(1)基本层次联系层次模型和网状模型有共同点,可以把它们统称为格式化模型。基本层次联系就是包括两结点和一边的基本单元,两个实体间的有向边代表的基本层次联系表示一对多的联系。通常把表示1的实体放在上方,称为父结点,把表示N的实体放在下面,称为子结点。(

53、2)层次数据模型用村形结构表示实体及其之间的联系的模型称为层次模型。该模型的实际存储数据由链接指针来体现联系。特点:有且仅有一个结点无父结点,此结点即为根结点;其它结点有且仅有一个父结点。适合用表示一对多的联系。(3)网状模型用网状结构表示实体及其之间的联系的模型称为网状模型。允许结点有多于一个的父结点,可以有一个以上的结点无父结点。适合用于表示多对多的联系。层次模型和网状模型从本质上都是一样的。存在的缺陷:难以实现系统扩充,插入或删除数据时,涉及到大量链接指针的调整。4.2数据设计分析学生实验排课系统的设计离不开数据库的设计,而数据库的逻辑设计是整个数据库应用系统开发过程的一个重要环节,下面

54、是本系统数据库的E-R图:学生表课程时间教师表课程班级教室学号开始时间班级号教室号容纳人数人数结束时间间课程号课程名姓名教师号姓名教室名课程号年级系别课程名教学周课时排课属于讲授安排课程图4-1 总的E_R图对应关系:学生与班级: n:1 教师与课程: n:1班级与课程: n:m班级与课程时间:n:m课程与课程时间:n:m课程时间与教室:n:m 4.3数据库逻辑设计1)逻辑设计是把概念设计得到的概念数据库模式变为逻辑数据模式。用到的术语有:函数依赖、范式、关系分解。数据库的逻辑设计即是表结构和表关系的设计,这里同时给出表中的样例数据。 表4-1 教师基本信息表(laoshi)列名数据类型长度主

55、键否描述laoshiidint是教师工号xingmngvarchar20姓名kechengidint课程代号2)实验课程基本信息表实验课程基本信息表(kecheng)是用来记录学生实验的课程的基本信息情况的表,表Course的结构如表4-2所示:表4-2实验课程基本信息表(kecheng)列名数据类型长度主键否描述kechengidint是课程编号kechengmingvarchar50课程名称jiaoxuezhouvarchar10教学周keshivarchar10课时zhuangtaivarchar2状态zhuanyeidint专业idnianjivarchar50年级3)实验室基本信息表

56、实验室基本信息表(jiaoshi)是用来记录学校实验室的基本信息情况的表,表Lab的结构如表4-3所示:表4-3实验室基本信息表(jiaoshi)列名数据类型长度主键否描述jiaoshiidInt8是实验室编号jiaoshivarchar20教室renshuvarchar10人数4)用户登录信息表用户登录信息表是用来记录学生、教师、设备管理员等人员登陆学生实验管理系统的基本情况表,表login的结构如表4-4所示:表4-4 用户登录信息表(login) 列名 数据类型 长度 主键否 描述username varchar20登陆帐号mima Varchar10登陆密码quanxian Varch

57、ar2权限5)实验室上课时间信息表实验室上课时间信息表是用来记录学生各门课程的上课的时间、上课的人数等信息的表,表kechengtime的结构如表4-5所示:表4-5 实验室上课时间信息表(kechengtime)列名数据类型长度主键否描述kechengidint是课程编号begintimevarchar30课程开始时间endtimevarchar30课程结束时间6)学生信息表学生信息表是用来记录学生的情况信息,表xuesheng的结构如表4-6所示:表4-6 学生信息表(xuesheng)列名数据类型长度主键否描述xueshengidint是学生编号xingmingvarchar20姓名ba

58、njiidint班级编号7) 学生课程信息表学生课程信息表是用来记录学生的上课时间安排等情况信息,表xueshengkecheng的结构如表4-7所示:表4-7 学生课程表(xueshengkecheng)列名数据类型长度主键否描述Xueshengkechengidint是学生课程编号xueshengidint学生编号kechengidInt课程编号xuefenint学分feiyongInt费用8)专业信息表专业信息表是用来记录专业的基本信息情况的表,表如下所示表4-8 专业信息表(zhuanye)列名数据类型长度主键否描述zhuanyeidInt是专业编号zhuanyevarchar50专业9)选课信息表选课信息表是用来记录学生选课的基本信息情况的表表4-9选课信息表(xuanke)列名数

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!