毕业设计论文基于BS模式的课表生成系统

上传人:仙*** 文档编号:142146869 上传时间:2022-08-24 格式:DOC 页数:39 大小:814.50KB
收藏 版权申诉 举报 下载
毕业设计论文基于BS模式的课表生成系统_第1页
第1页 / 共39页
毕业设计论文基于BS模式的课表生成系统_第2页
第2页 / 共39页
毕业设计论文基于BS模式的课表生成系统_第3页
第3页 / 共39页
资源描述:

《毕业设计论文基于BS模式的课表生成系统》由会员分享,可在线阅读,更多相关《毕业设计论文基于BS模式的课表生成系统(39页珍藏版)》请在装配图网上搜索。

1、本科毕业论文(设计)论文(设计)题目:基于B/S模式的课表生成系统学 院: 专 业: 班 级: 学 号: 学生姓名: 指导教师: 年 月 日贵州大学本科毕业论文(设计)诚信责任书本人郑重声明:本人所呈交的毕业论文(设计),是在导师的指导下独立进行研究所完成。毕业论文(设计)中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。特此声明。论文(设计)作者签名: 日 期: 目 录摘要IIIAbstractIV第1章 序 言11.1 课题背景及意义11.2 国内外现状11.3 研究内容21.4 论文内容2第2章 系统可行性分析42.1 技术的可行性42.2 经济可行性52.3 操作可行

2、性52.4 调度可行性62.5 硬件配置6第3章 系统分析73.1 需求分析73.1.1 系统需求功能概括73.1.2 系统操作设计内容73.2 功能分析83.2.1 高校部门管理功能83.2.2 高校资源管理功能83.2.3 高校排课管理功能83.2.4 退出8第4章 系统总体设计94.1 实体E-R图94.2 系统结构图10第5章 系统详细设计与实现115.1 系统部署115.1.1 服务器部署115.1.2 数据库部署125.2 界面设计与功能125.3 用户登陆部分135.4 部门管理模块145.4.1 学院管理145.4.2 专业管理165.4.3 班级管理175.5 资源管理模块1

3、95.5.1 教学楼管理195.5.2 教室管理215.5.3 科目管理225.5.4 教师管理235.6 排课管理模块255.6.1 学校预排管理255.6.2 自动排课26第6章 总结31参考文献32致 谢33基于B/S模式的课表生成系统摘要科学技术日新月异,信息化时代的来临,以计算机为基础的信息科学在经济和社会生活各个领域得到了极为广泛的应用,尤其在信息管理方面,计算机已是必不可少的管理工具。对于高校课表生成系统来说,其工作流程具有繁杂性、多样化、管理复杂、收缴费用与设备维护繁琐等特性。计算机与传统手工排课相比,已经完全能够胜任后者的工作,而且更加准确、方便、快捷、高效、清晰和安全,它完

4、全可以克服原有的不足之处。这将给课表的查询和管理带来很大的方便,从而更高的提升课程管理工作的效率,这也是高校课程、课表管理正规化、现代化的重要标志。因此,开发一套高效率、无差错的课表生成系统软件十分必要。本系统的主要目的是要手动、自动相结合,安全、快捷的保存数据信息。本系统具有仅管理员式的权限,兼有查询、录入、修改、删除,以及对课表查询、下载等功能,能够使高校教务部门对本校的资源等情况提供透明化、直观的了解和操作。关键词:课表生成,排课,教务管理Based onB/Smode curriculumschedule systemAbstractComputer-based information

5、 science in all areas of economic and social life has been widely used, especially in information management, computer management tools are essential. Curriculumschedule system for the university, its work process has the complexity, diversity, management of complex, tedious collection of fees and e

6、quipment maintenance and other features.Compared with the traditional hand-arranging the computer has been fully qualified for the latters work, and more accurate, convenient, fast, efficient, clear and safe, it can overcome the existing deficiencies.This will schedule the query and manage a great d

7、eal of convenience to a higher management efficiency upgrading courses, which is the university curriculum, curriculum management standardization, an important symbol of modernization. Therefore, developing an efficient, error-free curriculumschedule system software is necessary.The main purpose of

8、the system to manual and automatic combination of safe, efficient preservation of data.The system administrator has the only type of authority, both queries, input, modify, delete, and query on the schedule, downloads and other features to make our universities the resources of academic departments,

9、 etc. to provide transparent, intuitive understanding and action.Keywords: Curriculumschedule, Arranging, Educational administration 第1章 序 言1.1 课题背景及意义管理信息系统(MIS,Management Information System),是一个由人、计算机等组成的能进行信息的收集、传送、储存、维护和使用的系统,能够实测企业的各种运行情况,并利用过去的历史数据预测未来,从企业全局的角度出发辅助企业进行决策,利用信息控制企业的行为,帮助企业实现其规划目

10、标。这里给出的定义强调了管理信息系统的功能和性质,也强调了管理信息系统中的计算机对企业管理而言只是一种工具。管理信息系统是信息系统的重要分支之一,经过30多年的发展,已经成为一个具有自身概念、理论、结构、体系和开发方法的覆盖多学科的新学科。5排课系统正是为了减轻教务人员的工作量,实现教务工作自动化,解决排课这一老大难问题的教务教学管理软件。尤其针对高校的排课一直都没有很好的解决方法,但是此问题又是每个学校在每个学期都会碰到的必要行政作业。本文在相关理论的指导下,在分析以往一些排课软件的基础上,提出一个高校通用排课系统的设计方法,并对一些具体的问题给出相应解决方案。但是,由于技术、经验的有限和数

11、据量过大,目前我们很难做出一个满足所有需要的排课系统。因为它不仅要考虑到教室冲突问题和教师冲突问题,还要考虑到分段课和资源利用问题;在本系统中,我们在架构的选择和模块的划分上经过精心调整,在菜单的设计上也体现了人性化的操作。该设计贴近用户需求,功能完整,架构合理,并用大量的框图模型体现了系统的规划。1.2 国内外现状排课是高校教学管理中一项重要而复杂的工作,其实质就是为学校所设置的课程安排一组适当的教学时间和空间,从而使整个教学能够有计划有秩序的进行。由于具有规模大,约束复杂及本质不断变化等特点,使得课表问题成为令人感兴趣的课题之一。20世纪50年代末,国外就有人开始研究课表编排问题。1962

12、年,Cotlieb就曾提出一个课表问题的数学模型,并用匈牙利算法解决了三维线形运输问题。近40年来,人们对课表的计算机解决法做了很多尝试。其中,课表编排的整数规划模型将问题归结为一组01变量的解,但是其计算量非常大。此外,有些文献试图从图论的角度来求解课表编排问题,但是图的染色体问题也是NP完全问题,只有在极为简单的情况下才可以将课表编排转化为二部图匹配问题。进入20实际90年代以后,国外对课表问题的研究仍然十分活跃。比较有代表性的有印度的Vastapur大学管理学院Arabinda Tripathy,加拿大的Montreal大学的Jean Aubin和Jacques Ferland等。在国内

13、,对课表问题的研究开始于20实际80年代初期,具有代表性的有:南京工学院的UTSS(A University Timetable Scheduling System)系统,清华大学的TISER(Timetable Scheduler)系统,大连理工大学的智能教学组织管理和课程调度系统等。这些课表编排系统往往依赖于各个学校的教学体制,不宜进行大量推广。101.3 研究内容随着现在很多大学的合并以及执行规模的逐年扩大,原有的教务管理系统不能很好的满足各样教务管理工作。而排课管理系统是教务管理的一个很重要的模块,本人在了解和学习各高校在此课题的开发和使用的前提下,结合自身的能力,也对排课系统做了一些

14、研究,主要工作如下:1、对排课系统进行需求分析及算法设计。2、在实用性及操作界面方面的分析与设计。3、系统架构的实现。1.4 论文内容本论文首先对部分高校的排课系统进行了需求分析和算法设计,然后在J2EE架构模式下进行设计与实现,以下是论文的主要内容:第一章:序言介绍了本课题的研究背景、意义及该课题国内外研究的现状,同时介绍了作者的主要工作及论文组织结构的安排。第二章:系统可行性分析首先对系统采用的相关技术和开发工具进行了介绍。然后对系统在操作、调度以及硬件配置方面进行了可行性分析。第三章:系统分析本章主要对系统功能模块的组成和各功能模块进行详细的需求分析和功能分析。第四章:系统总体设计显示系

15、统部分E-R图和系统结构图。第五章:系统详细设计主要用图片和文字的形式来描述整个系统的实现及操作,重要部分并加以代码描述。第六章:总结本章对系统从需求分到到算法设计及实现进行总结,同时也指出本论文存在的不足和需要继续完善的地方。第2章 系统可行性分析可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。2.1 技术的可行性课表生成系统采用了当前的主流计算

16、结构模式进行开发,前台开发工具选用MyEclipse 6.5。MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。是一种可视化的、面向对象的Windows开发语言,MyEclipse具有易用、通用和开发效率高的特点。后台的数据库开发工具选用了MySQL 5.1,它能够处理大量数据,同时保持数据完整性并提供许多高级管理和数据分配功能。这两种开发工具功能强大,有较好的接口,作为本系统开发工具是可行的。(1) MyEclipse 6.5的简介MyEclipse企业级工作平台(M

17、yEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。4所以我选择MyEclipse 6.5作为我这套系统的开发环境。(2)面向对象编程的概念面向对象的程序设计(Object-Oriented Programming,简记为OOP)是Visual

18、 Basic6.0诞生的基础。OOP立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进Windows编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。而Visual Basic6.0是完全面向对象的,这就使得Visual Basic6.0成为一种触手可及的促进软件重用的开发工

19、具,从而具有强大的吸引力。(3) MySQL简介MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。72.2 经济可行性随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。21世纪是一个充满竞争和挑战的世纪。在这

20、个世纪中,高效化、系统化、规范化、自动化已成为现代企业的代名词。做为我国培养高等人才的大学在当今智能化的发展的驱动下,在当今信息时代的推动下,拥有自己的一套特色的课表生成系统是非常必要的,与高校内繁多的资源设施相比较,传统手工式的管理方式已经无法适合当今庞大的数据处理和精确的运算需求,所以一套精美完善的课表生成系统是提高工作效率节省人力物力的有效解决方案。传统的管理方式,对有关管理人员要求数量多,耗资高,错误率高,教室、教师、学生的流动也是一个很难生成正确课表的原因。一套完善的课表生成系统可持续使用并能随着时代和工作的需求不断更新,一次投入终身受用,按长期的使用计算,开发系统的造价平均到每年与

21、传统式的管理方式的年耗资本相对比,性价比是可行的。开发这套系统的经济可行性是很高的。2.3 操作可行性对于这套课表生成系统而言,在投入使用前,会由开发并能熟练操作本系统的工程人员对用户群进行专业系统的培训。培训内容应包括,熟练掌握系统的各个功能和简单的系统维护,在开发设计程序的过程中直观的界面和控件的文字解释完全能使得用户充分理解起功能和意义,在计算机普及的今天,用户对本系统的操作完全可以看做是一种简单的,配合形式的手工操作,因为本系统最适合用于微型机,可以说几乎任何人都可以使用和管理。所以本系统的操作是完全可行的。2.4 调度可行性调度可行性指的是建议的计算机系统能否在规定的期限内交付给用户

22、。由于合同的规定,能否预期的交付涉及到开发人员的信誉等等。所以开发期限的选定也是非常重要的因素,根据高校课程管理的日常的正常的业务运作规律和工作性质,可以看出这些内容是我们平时常见的工作,所以开发人员在开发起来比较容易入手,所以可以判断开发本系统的周期比较短,开发中的不可预见问题会比较容易解决,在开发小组的分析后应该容易做出相对准确的,误差微小的开发期限,应该可以在规定时间内,快速的、完整的交付给用户使用。22.5 硬件配置(1) 硬件设备及操作系统服务器:Pentium4以上配置的高性能PC机,内存应在256M以上,硬盘在40G以上。确认该计算机已经安装服务器软件Tomcat以及数据库软件M

23、ySQL。操作系统:Windows 9x/Me、Windows 2000、Windows XP、Windows NT,分辨率:1024*768。客户端:Pentium233(或与此相当的CPU)以上配置的PC机,内存应在32M以上,硬盘在1G以上。Windows 9x以上操作系统。确认已安装浏览器软件。(2) 开发平台前台开发工具:MyEclipse 6.5前台开发工具:MyEclipse 6.5后台数据库:MySQL 5.1第3章 系统分析3.1 需求分析3.1.1 系统需求功能概括经过调研与可行性分析,出于高校对生成课表的考虑,设计了这套课表生成系统,本系统主要考虑到高校课程管理的普遍要求

24、,课表生成系统主要包括:(1) 数据管理子系统功能:对高校所有资源(如教师、学生、教室、课程)的录入和增、删、改、查询等功能实现,在基于这些高校的资源的前提下对高校进行管理。(2) 排课管理子系统功能:对高校排课的管理,包括对班级课表及预排的设计和打印、对教师教学表的查看及打印,对教室使用情况的查看及打印。这样就可以便于高校对资源及课程进行全面的了解和管理了。3.1.2 系统操作设计内容根据以上的操作需要研究设计内容如下:(1) 模块功能的研究设计:尽量采用高校管理部门中现有的软硬件环境以及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。系统应完全符合高校有

25、关部门管理员对排课管理的规定,满足对教师、学生、教室信息及课程信息等工作需要,并达到操作过程中的直观、方便、实用、安全等要求。通过调研情况进行需求分析,进行模块的划分和功能的界定,并对各个模块的具体管理流程进行控制和编码实现。(2) 良好的数据系统设计:该课表生成系统应充分具备数据库的维护功能,可以及时根据用户的需求对数据库中的信息进行添加、删除、修改等操作。(3) 完备的信息查询统计:为满足管理和决策工作的需要,在查询基础上应具备一定的统计功能。(4) 后期维护:所开发的课表生成系统应采用模块化程序设计方法,收到既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护的效果。

26、以上是对本信息管理系统进行的基本的需求分析,也就是本系统所要实现的基本功能。但是,这并不是整个系统的全部需求,对系统不断出现的新需求,需要系统在日后的使用中通过系统的更新与维护来实现。这样,才能使系统得到不断的完善,功能更加强大,与用户的交互性更强。3.2 功能分析3.2.1 高校部门管理功能(1) 学院信息的查询、录入、修改、删除,包括学院名称、学院信息。(2) 专业信息的查询、录入、修改、删除,包括专业名称、所属学院信息。以及该专业所学习的科目的查询、录入、修改、删除操作。(3) 班级信息的查询、录入、修改、删除,包括班级名称、班级人数、班级入学日期、所属专业信息。3.2.2 高校资源管理

27、功能(1) 教学楼信息的查询、录入、修改、删除,包括教学楼名称、所属校区以及教室安排等信息。(2) 教室信息的查询、录入、修改、删除,包括教室名称、教室座位数、所属教学楼。(3) 科目信息的查询、录入、修改、删除,包括科目代号、科目名称、学分信息。(4) 教师信息的查询、录入、修改、删除,包括教师代号、教师姓名、所属学院和教师教学表信息。3.2.3 高校排课管理功能(1) 首先对选定的班级手动进行学校预排,将班级与所学课程以及教师关联起来。(2) 对已经学校预排好的的班级进行自动排课,系统随机分配时间及教室。3.2.4 退出退出课表生成系统。第4章 系统总体设计4.1 实体E-R图课表生成系统

28、部分实体E-R图如下所示1:图4.1 课表生成系统ER图4.2 系统结构图课表生成系统结构图如下所示1:课表生成系统部门管理资源管理排课管理退出系统学院管理专业管理班级管理教学楼信息教室信息科目信息学校预排自动排课教师处理图4.2 课表生成系统结构图第5章 系统详细设计与实现5.1 系统部署5.1.1 服务器部署本系统有服务器端采用服务器软件Tomcat开发,因此在学校服务器端部署时,则首先要安装Tomcat软件。Tomcat采用安装版或绿色版均可,并将此项目完整的放入Tomcat安装目录里面的webapps文件夹下面,如图所示:图5.1.1.1 系统服务器端部署系统的基本构架为J2EE开发,

29、该框架用Java语言编写,因为在服务器端需安装JDK,以支持系统的运行。安装好JDK之后,同时也要设置好Java环境变量,以便系统运行。新建环境变量,比如取变量名为JAVA_HOME,变量值则是JDK安装目录下jkd的安装路径:图5.1.1.2 Java环境变量设置1新建完Java环境变量后,将%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin添加到默认系统变量Path中,与已有环境变量用“:”分隔:图5.1.1.3 Java环境变量设置25.1.2 数据库部署本系统在数据库端采用数据库软件MySQL开发,因为在学校服务器端也要安装MySQL软件。系统在连接数据库时默认密码

30、是root,因为在安装MySQL时可以将密码设置为root。或者打开系统中src目录下面的jdbc.properties文件,将jdbc.password=后面连接上MySQL的密码:图5.1.2.1 数据库密码设置5.2 界面设计与功能经过以上的分析及建模,已经完成了数据库的后台工作。下面要完成的是人机交互的界面。本系统分为以下三部分:(1) 用户登陆。(2) 系统主体平台。(3) 通过主体平台调用的功能模块。接下来即对各部分作详细介绍。5.3 用户登陆部分启动系统程序后,首先进入系统登陆界面,在登陆进入主体平台的时候,系统会要求用户输入用户名及密码作为验证信息,为了防止非用户在使用,输入正

31、常信息后便可以使用本系统。界面截图如下:图5.3.1 登陆页面本模块主要代码如下:/设置两个参数来接收前台传递过来的管理员用户名和管理员密码private String username;private String password;private IAdminService adminService;public String login() /判断数据库中是否存在该用户名和密码,返回布尔值boolean ifExist= this.adminService.ifExistAdmin(username, password);if (ifExist) /输入的用户名和密码正确Admin ad

32、min = new Admin();admin.setAdminname(username);admin.setAdminpassword(password);HttpSession session=ServletActionContext.getRequest().getSession();session.setAttribute(admin,admin);/将管理员信息放在一个Session对象中log.info(ifExist= +ifExist);return success;/跳转到主页面 else /输入的用户名和密码错误HttpServletRequest request = S

33、ervletActionContext.getRequest();request.setAttribute(error, 用户名或密码错误,请重新输入!);/返回错误信息return reLogin;/仍然会跳转到登陆页面5.4 部门管理模块部门管理功能主要是对高校中学院、专业、班级的信息进行管理(增加、删除、修改、查询),这些操作必须保存后才能生效。当记录较多,通过简单的查询可以方便的找的目标记录,查询结果用表格方式显示。表格显示结果的同时,如果还出现多条记录,可以根据某个字段对记录进行查询或者进行翻页,这样可以给用户带来更大的方便和提高查找效率。5.4.1 学院管理查看所有学院信息:图5.

34、4.1.1 学院信息列表本模块主要代码如下:/设置从数据库中的哪一条记录开始截取private Integer START = 0;/设置每页显示的个数private Integer SIZE = 10;/显示学院列表public String showAcademy() initStartAndSize();/得到学院列表commonPage = monService.getCommonPage(academy, this.getStart(), this.getSize();log.info(academy个数: + commonPage.getResultList().size();/返

35、回学院显示页面return success;public Page getCommonPage(String type, int start, int size) Page page = null;String hql = ;String countHql =;/根据Action中传递过来的显示类型来选择从数据库中读取哪个表if (academy.equals(type) /选择academy(学院)表中的数据,并按照academyid进行倒序排列hql = from Academy a order by a.academyid desc;countHql = select count(*)

36、from Academy a; else if (system.equals(type) hql = from System s order by s.systemid desc;countHql = select count(*) from System s; else if (theclass.equals(type) hql = from Theclass tc order by tc.classid desc;countHql = select count(*) from Theclass tc; else if (teachingBuilding.equals(type) hql =

37、 from TeachingBuilding tb order by tb.teachingBuildingId desc;countHql = select count(*) from TeachingBuilding tb; page = monDAO.getPageObjectsByHql(hql, countHql, start, size);return page;public Page getPageObjectsByHql(String hql, String countHql, int start, int size) Query query = getSession().cr

38、eateQuery(hql);/设置从哪里开始取数据query.setFirstResult(start);/设置一次取数据的数量query.setMaxResults(size);List result = query.list();int total = this.getPageCountByHql(countHql);Page resultPage = new Page(result, start, size, total);return resultPage;如果学院信息的记录超过10条,系统会自动为其分页,这一功能对整个系统中信息的显示全部有效。添加一条学院记录:图5.4.1.2 添

39、加学院信息添加学院信息中的“所属校区”功能采用下拉框的形式显示,下拉框中的信息是贵大默认的三个校区,选择其中一下即可完成。5.4.2 专业管理查看所有专业信息:图5.4.2.1 专业信息列表添加一条专业信息:图5.4.2.2 添加专业信息这里的“所属学院”信息是来自于前面学院管理中所填写的学院信息。若所填写的专业没有发现其对应的学院存在,在学院管理中添加一条记录即可。5.4.3 班级管理查看所有班级信息:图5.4.3.1 班级信息列表由于高校中的班级众多,所以本系统提供两种方式来查找某一班级,如图: 图5.4.3.2 按不同方式查询班级此处查询方式的关键代码如下所示:/显示班级列表public

40、 String showTheclass() initStartAndSize();HttpServletRequest request = ServletActionContext.getRequest();String searchType = request.getParameter(searchType);String classInfo = request.getParameter(classInfo);searchType = EncodingUtil.toCharacter(searchType);classInfo = EncodingUtil.toCharacter(clas

41、sInfo);/判断searchType是否为null,如果不为null,说明前台是在使用模糊或者精确查询,则去去跳转到不同的方法中if (searchType = null | .equals(searchType) | .equals(classInfo.trim() commonPage = monService.getCommonPage(theclass, this.getStart(), this.getSize(); else /根据searchType的不同,来判断是使用哪种查询方式commonPage = monService.getCommonPage(theclass,

42、searchType, classInfo.trim(), this.getStart(), this.getSize();return success;public Page getCommonPage(String type, String searchType, String searchInfo, Integer start,Integer size) Page page = null;String hql = ;String countHql = ;if (theclass.equals(type) /如果是按班级名称查询(支持模糊查询)if (searchByName.equals

43、(searchType) hql = from Theclass tc where tc.classname like % + searchInfo + % order by tc.classid desc;/如果是按年级查询(只能是全名称查询) else if (searchByYear.equals(searchType) hql = from Theclass tc where tc.year = + searchInfo + order by tc.classid desc;/如果是按专业名查询(支持模糊查询) else if (searchBySysName.equals(searc

44、hType) hql = from Theclass tc where tc.system.systemname like % + searchInfo + % order by tc.classid desc;countHql = select count(*) from Teacher t;page = monDAO.getPageObjectsByHql(hql, countHql, start, size);return page;添加一条班级信息:图5.4.3.3 添加班级信息5.5 资源管理模块资源管理功能主要是对高校中教学楼、教室、科目、教师管理(增加、删除、修改、查询),这些操

45、作必须保存后才能生效。当记录较多,通过简单的查询可以方便的找的目标记录,查询结果已表格方式显示。表格显示结果的同时,如果还出现多条记录,可以根据某个字段对记录进行查询或者进行翻页,这样可以给用户带来更大的方便和提高查找效率。5.5.1 教学楼管理查看所有教学楼信息:图5.5.1.1 教学楼信息列表添加一条教学楼信息:图5.5.1.2 添加教学楼信息为了让教学楼管理员方便对教学楼中教室的管理,同时也为学生提供教室自习的方便,本系统特地提供“查看教室安排”功能,点击“查看教室安排”一栏中对应教室的“查看”图片,则会看到该教学楼中任一教室的使用情况:可以选择该教学楼中的任一教室:图5.5.1.3 选

46、择教室进行查看可以选择最近四年中的任一学期进行查看:图5.5.1.4 选择学期进行查看点击“查看”按钮就可以看到某一教室在某一学期的使用情况:图5.5.1.5 选择学期进行查看5.5.2 教室管理查看所有教室信息:图5.5.2.1 教室信息列表添加一条教室信息:图5.5.2.2 添加教室信息5.5.3 科目管理查看所有的科目信息:图5.5.3.1 科目信息列表由于高校所学科目数量大,故对科目名提供模糊查询和精确查询两种功能:模糊查询:图5.5.3.2 科目模糊查询精确查询:图5.5.3.3 科目精确查询添加一条科目信息:图5.5.3.4 添加科目信息5.5.4 教师管理查看所有的教师信息:图5

47、.5.4.1 教师信息列表添加一条教师信息:图5.5.4.2 添加教师信息查看该教师所教科目,并提供方便的增加和删除科目的功能。删除一条科目后,意味着该教师将不会再教授此课目。图5.5.4.3 教师所教授科目列表教师授课离不开教学表,系统为每一位教师提供了教学表查看功能,并提供下载,这样可以很容易将下载的文档的分发给每一个教师:图5.5.4.4 教师教学表 5.6 排课管理模块排课管理模块是本系统的主要模块,用来进行手工学校预排以及自动排课。5.6.1 学校预排管理点击手动排课后,系统会首先让用户选择一条班级信息用于预排:图5.6.1.1 学校预排班级列表每个班级都是4年制,共8学期,所以可以

48、分别对该班级的每一个学期进行学校预排:图5.6.1.2 学校预排详情学校预排的主要功能是将手动的将课程、教师与某一班级联系起来,用来为后面的自动排课做准备。5.6.2 自动排课点击自动排课后,系统会首先让用户选择一条班级信息用于自动排课:图5.6.2.1 自动排课班级列表选中某一条记录后可以对其进行自动预排。选择一个学期:图5.6.2.2 学期选择如果该学期已经有课表,则下面类似课程表的表格中会显示课表;如果该学期还没课表,则点击“生成课表”按钮后,在该生成的课程表中,可以清楚的看到该班级在一周内的课程安排:图5.6.2.3 课表查看此处自动生成课表的关键代码如下所示:HttpServletR

49、equest request = ServletActionContext.getRequest();/要进行自动排课的班级idtheclassId = request.getParameter(theclassId);/得到当前要排课的学期termterm = request.getParameter(term);/首先删除排课表中该班级在此学期的所有排课信息this.autoMgrService.removeCourseScheduleByPropertys(theclassId, term);/得到当前的年份Integer year = Integer.valueOf(new Simpl

50、eDateFormat(yyyy).format(new Date();/根据当前年份以及要进行自动排课的学期,得到前4学年在此学期的全部排课信息List csListTmp = this.getFourYearsCourseSchedule(term, year);for (CourseSchedule courseSchedule : csListTmp) csList.add(courseSchedule);/按所选学期得到学校在该学期预排的TeachingPlan的List集合MapString, List tpMap = this.teachingPlanService.getTea

51、chingPlanMap(theclassId);List tpList = tpMap.get(term+ Integer.valueOf(term) + PlanList);List csListNew = new ArrayList();/将tpList中教学计划里面凡是4个学分的课程分解成两个2学分的课程for (int i=0; itpList.size(); i+) TeachingPlan teachingPlan = (TeachingPlan) tpList.get(i);String courseCredit = teachingPlan.getCourse().getCo

52、urseCredit();if (4.equals(courseCredit) Course course = teachingPlan.getCourse();course.setCourseCredit(2);teachingPlan.setCourse(course);tpList.remove(i);tpList.add(teachingPlan);tpList.add(teachingPlan);for (int i=0; itpList.size(); i+) TeachingPlan teachingPlan = (TeachingPlan) tpList.get(i);/根据班

53、级随机在本校区得到一个教学楼TeachingBuilding tb = this.autoMgrService.getRandomTeachingBuilding(theclassId);/根据教学楼随机分配该教学楼的一个教室Classroom classroom = this.autoMgrService.getRandomClassroomByTeachingBuilding(tb);/随机在1,5之间得到一个天数int dayTime = this.autoMgrService.getRandomDayTime();/随机在1天的1,8之间得到一个上课的时间int lessonTime

54、= this.autoMgrService.getRandomLessonTime();String courseCredit = teachingPlan.getCourse().getCourseCredit();String strTemp = null;/根据科目学分的不同,返回包含不同数值的数组,以便下一步分配时间if (2.equals(courseCredit) strTemp = this.autoMgrService.whichIsHave(String.valueOf(lessonTime); else if (3.equals(courseCredit) strTemp

55、= this.autoMgrService.whichIsHaveThis(String.valueOf(lessonTime);/根据班级id,时间所在在数组strTemp,日期dayTime,教室classroom去判断该条数组可否存入数据库中,返回布尔值boolean ifAllow = this.autoMgrService.ifAllowTimeAndClassroom(theclassId, strTemp, dayTime, classroom, csList);/如果允许存入,刚将可以存入的数据放入集合csListNew中if (ifAllow) MapString, List

56、 csMap = this.autoMgrService.ifAllow(teachingPlan, dayTime, lessonTime, classroom, csList);csList = csMap.get(csListReturn);csListNew = this.autoMgrService.transferList(csListNew, csMap.get(csListNew); else /如果不允许存入,刚退回后重新生成随机数据后再去判断i-;/将新的排课信息存入数据库中this.autoMgrService.addCourseScheduleList(csListNe

57、w); /根据班级id、学期,得到自动排课后的信息用于展现tbMap = this.manualMgrService.getCourseScheduleMap(theclassId, term);theclassTimeTableInfo = this.autoMgrService.getTheClassTimeTableInfo(theclassId);return SUCCESS;在上图课程表中,可以看出该班级在某一天的某一节所上的课程、任课老师、教学楼、教室信息。同时该课表可提供下载功能,可以更方便的将该课程表分放给班级。图5.6.2.4 课表下载图5.6.2.5 课表Excel展现至此

58、,自动排课功能完成!第6章 总结至此,课表生成系统设计与实现顺利完成。在几天的试运行的过程中,在连接数据库时一度出现过错误,经过调试改正后错误已经更正,此系统可以按着设计思想和需求功能正常运行。由于高校排课系统本身涉及的数据多,算法复杂,并且个人能力有限,所以本系统仅考虑到贵大所需要的生成课表的基本和主要的几项功能,一个完好的课表生成系统还需要更多更复杂的功能要求。比如系统可供多所高校共同使用、在排课时提供更大的灵活性,可以使用导入文件进行手动排课等等。由于开发周期短和开发人员等局限性,不能将本套系统尽善尽美。希望在以后能够对此类的课表生成系统做更深一步的调研,在原由系统的基础上不断添加新功能

59、。最终能够开发出一套完善的课表生成系统。本系统在开发过程中,在固定的课程管理要求的模式下还添加了一些人性化的,个人的构思和创意。本套课表生成系统符合基本需求功能,易于操作,应该可以在简单化模式下的高校内应用,存在要改进的地方在以后会进一步完善。希望本系统能够给高校教务管理部门带来方便。参考文献1XXX.基于B/S模式的排课数据库设计D.贵阳:贵州大学,2011.2张海藩.软件工程导论(第四版)M.北京:清华大学出版社,2003年.140-141.3吕勇全,陈寅,邬家炜,庄伟杰.基于回答集程序的排课系统设计与实现J.计算机技术与发展J,2010年第20卷第6期,228-232,2010.4胡启敏,薛锦云,钟林辉.基于Spring框架的轻量级J2EE架构与应用J.计算机工程与应用,2008,44(5):115-117.5陈立岩.基于J2EE平台的B/S系统性能优化设计研究J.计算机技术与发展,2008,18(6):122-124.6唐汉明.深入浅出MySQL数据库开发、优化与管理维护M.人民邮电出版社,2008年4月.7王珊,陈红.数据库系统原理教程M.北京:清华大学出版社,2001年.112-120.8周傲英.数据库

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