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 = 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
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100