• 1.06 MB
  • 2022-04-22 11:15:43 发布

基于BS的自动排课系统毕业设计正文.doc

  • 36页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'济南大学毕业设计摘要随着社会的发展,在现在的社会,信息的各种操作都需要通过计算机软件来完成。当今,素质化教育也在校园内不断地得到深化。自动排课模式也在许多的学校内开始遍布了,而传统的教学模式渐渐被取代了。自动化排课系统,可以满足学校教务处对于排课管理的需求,减少教务人员工作量的同时降低排课中的并发和错选等问题。学生通过网页可以随时随地进行选课,节约了大量统计时间;教务人员通过设置排课规则快速的完成课程的安排,易于调整修改;教师可以快速方便的安排课程信息。该系统采用数据集中管理、统计分布式管理。自动排课系统的系统设计是基于JSP技术的,它具有灵活的一体化发展战略,圆满完成了整个系统的全面设计。自动排课系统,采用一个简单的界面,操作方便,灵活,实用,有效的简化了自动排课管理系统的过程,大大提高了自动排课系统的效率,使之更加系统化体系化、标准化、自动化,具有优良的可用性、可靠性和安全性。该系统采用标准的MVC三层架构,包括表示层、控制层和业务层三个部分,降低了系统开发的复杂性。这个项目具体是运用了JSP,提高系统的运行性和安全性,并且方便了后期的维护和操作。系统主要实现了教师列表、班级列表、学生列表、教师列表、课程列表、排课列表、管理员列表等功能模块,具有良好的实用性。关键词:自动排课;B/S模式;MVC;JSP-- 济南大学毕业设计AbstractWiththedevelopmentofsociety,intheinformationsociety,informationacquisition,processing,communicationanddecision-makingneedsofhigh-qualitycomputersoftware.Today,thequalityofeducationareconstantlydeepenedcampus.SmartSchedulingmodelisalsoinmanyschoolsthroughoutthebeginning,whilethetraditionalteachingmodelwasgraduallyreplaced.IntelligentSchedulingSystem,arrangingtomeettheneedsoftheschoolmanagementforAcademicAffairs,reducingtheworkloadofacademicstaffwhilereducingconcurrencyandarrangingthewrongchoiceandotherissues.Studentenrollmentatanytimeviathewebcansavealotofstatisticaltime;rapidcompletionoftheacademicstaffbyorganizingcoursessetSchedulingrules,easytoadaptandmodify;teacherscanquicklyandeasilyarrangecourseinformation.Thesystemusesacentralizeddatamanagement,statisticaldistributedmanagement.SenateelectivesystemdesignmanagementsystemisbasedonJSPtechnology,ithasaflexibleintegrateddevelopmentstrategy,thesuccessfulcompletionofacomprehensivedesignoftheentiresystem.Academiccoursemanagementsystemthatusesasimpleinterface,easytooperate,flexible,practicalandeffectivemanagementsystemsimplifiestheSenateelectiveprocess,greatlyimprovingtheefficiencyofeducationaladministrationcoursemanagementsystemtomakeitmoresystematicsystem,standardization,automationwithexcellentavailability,reliabilityandsecurity.ThesystemusesthreestandardMVCarchitecture,includingthepresentationlayer,controllayerandservicelayerthreeparts,reducingthecomplexityofsystemdevelopment.ThemainuseofJSPtechnologydevelopment,improvethesystemperformanceandsecurity,andeasytomaintainandoperate.Systemismainlytoachievetheteacherlists,classlists,listofstudents,teachers,lists,listofcourses,arrangingthelist,thelistofadministratorsandotherfunctionalmodules,withgoodusability.Keywords:AcademicCoursemanagement;B/Smode;MVC;JSP-I-济南大学毕业设计IV 济南大学毕业设计目录摘要IAbstractII1绪论11.1课题研究背景及意义11.2课题研究现状11.3本课题主要工作22系统相关技术32.1J2EE技术32.2MVC模式32.3B/S结构32.4数据库技术32.5本章小结33系统需求分析43.1系统总体目标43.2系统可行性分析43.2.1操作可行性分析43.2.2技术可行性分析43.3系统功能需求分析53.4系统非功能需求分析53.5系统开发环境与开发工具64系统设计与实现74.1系统设计目标和原则74.2系统架构设计74.3数据库设计94.3.1数据库的选定94.3.2数据库概念模型设计94.3.3数据库逻辑设计125系统详细设计与实现155.1数据库连接实现155.2系统登录实现165.3系统功能模块实现175.3.1管理员功能模块的实现175.3.2学生功能模块的实现22 济南大学毕业设计5.3.3教师功能模块的实现236系统测试256.1软件测试256.2功能检测256.3系统配置要求256.4测试内容256.5测试结果296.6本章小结29结论30参考文献31致谢32 济南大学毕业设计1绪论1.1课题研究背景及意义20世纪末,计算机的诞生与发展将人类带入到一个全新的领域中,如今已经成为解决很多工程问题的必要途径。早在60年代,人们就开始研究如何使用计算机来解决排课问题,减少人工排课的劳动量并减少排课错误。现在是21世纪,全球范围内的互联网技术都有了极大的进步,这让许多人不会收到时间和空间上的各种限制了。利用Web技术来解决生活中遇到的各种问题成为趋势。排课系统是时间表问题(TimeTableProblems,TTP)的一个分支。这是个NP完全问题,由于P/NP问题还未解决,只能不断的摸索近似算法来得出近似的最优解。这个问题涉及到多种因素,是一个多重条件下的组合优化问题。由于涉及的参数多以及内部关系复杂等原因,传统人工排课的出错率一直很高。随着我国科研的发展,高等院校的专业和课程都在快速增长,极大程度上增加了排课系统的难度。同时随着人本教育思想的普及,鼓励学生自主选课也在国内推广开来,使得现代排课问题在收集数据和准确排课上变得更加复杂。基于WEB的自动化排课系统,可以满足学校教务处关于排课工作的需求,减少教务职员工作量的同时降低排课中的并发和错选等问题。学生通过网页可以随时随地进行选课和查询自己的课程信息,节约了大量统计时间;教务人员通过设置排课规则快速的完成课程的安排,易于调整修改;教师可以快速方便的查看自己的课程的上课情况。该系统采用数据集中管理、统计分布式管理。1.2课题研究现状排课这个难题的探索开始于20世纪60年代。1963年,Csima,J.和GotliebC.C.出了编排课表的数学模型,但仅限于基本的数学建模,并没有开发出可使用的软件。之后人们开始使用图形着色算法来模型解决这个问题。可是用这方法所花费的时间越来越大,所以,有许多的算法来探索这个问题。在70年代,Barham和Westwood开始试图使用启发式搜索的方法。到了80年代,Mulvey使用网络流方法来解决排课问题,同时Werra和Hertz使用了禁忌搜索的方法来解决这个问题。90年代,由于大量的算法被发现,这个问题的研究得到了进一步的发展。另一方面,Downsland和Digeetal通过模拟退火的方法来解决。同时,Digeetal在一所大学的案例中展现出使用基于约束推理的方法。在这个时期中关于排课研究的活跃归功于在1995年举办的第一届国际自动化排课实践与理论大会(PATAT)。同样在这个时期,遗传算法也开始被使用在排课问题中。进入21世纪,这项研究在继续发展。基于约束的程序设计、混合启发算法(hyperheuristic)。-31- 济南大学毕业设计1.3本课题主要工作在本文中,基于开发面向对象软件的过程中,对系统的需求分析以及具体实施过程都进行了较为完善的介绍,在本文中本人的具体工作如下:(1)对系统进行需求分析。对自动排课系统的需求进行分析以了解系统的基本特征和想要实现目标,并且对系统用户的特性进行分析,并分析业务流程以及梳理系统非功能性需求和功能需求。(2)选择适当的技术解决方案。搭建一个系统开发平台,并对系统实施所涉及到的关键技术进行研究。根据实际、开放以及开源的原则,设计出既能够保证需求,而且开放源代码的以及可扩展的架构体系。(3)系统的设计和实施。该系统的设计原则基于MVC的设计思想,使得系统中,逻辑和数据存储在一个单独的状态下。业务流程和系统的用户角色进行了详细的研究,以及系统的机制设计和系统的具体实现进行了详细的介绍。(4)测试系统。在节中,对系统的测试过程进行了具体的介绍。-31- 济南大学毕业设计2系统相关技术2.1J2EE技术J2EE技术,即Java2平台企业版(Java2PlatformEnterpriseEdition),是一种B/S模式的体系结构。J2EE技术一般分为四个等级,其中Web表现层和业务逻辑层,两层是J2EE的核心层次。J2EE优势:1.跨平台性。2.稳定性。3.开发效率高。4.具有可伸缩性。2.2MVC模式MVC模式(三层架构模式)(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为Model(模型)、View(视图)和Controller(控制器)三个基本部分。2.3B/S结构基于B/S架构软件的安装,编辑,维修的需要在服务器端解决。B/S架构也提供了一个均质机,网上异构网络,异构应用服务的联机,统一的开放服务最现实的基础。B/S系统包括:表示逻辑层,控制逻辑层,数据展现层,三层是相对独立又相互关联。2.4数据库技术在软件项目中,通过使用数据库进行数据处理,可以保证数据的独立性,一致性和安全性,系统提供对数据的访问效率,并为程序员减少应用程序的开发时间。不同的数据库有各自的优缺点,此处不做具体介绍。使用MySQL不仅在开发程序的时候有利于开发,而且在后期维护扩展的时候又简洁。所以,MySQL可以很好的胜任这个自动排课系统的数据库。2.5本章小结本章主要是介绍一下自动排课系统用到的一些技术,针对系统中使用到的技术做了一下简单的介绍。-31- 济南大学毕业设计3系统需求分析3.1系统总体目标(1)数据共享推进自动排课管理系统的数据校验和数据共享规范化和制度化建设,对自动排课管理系统数据查询的精度和效率进行提升。(2)实现了自动排课系统业务的各种功能系统主要实现了教师列表、班级列表、学生列表、教室列表、课程列表、排课列表、管理员列表等功能模块,具有良好的实用性。(3)实行现代化的管理手段该系统应具有界面清楚,操作简便;不同系统的角色有着不一样的操作权限。该自动排课系统应该是基于web的系统,只需要有一台能够联网的设备就可以实现对网站的管理。3.2系统可行性分析3.2.1操作可行性分析系统的登录界面简单和友好,采用常见的界面窗口的登录界面,而网站的开发则采用的是较为常用的JSP技术。这些策使得用户不需要很长的时间就能够快速熟悉系统,并掌握系统的操作方法。此外,为了方便系统管理维护人员,用户登录系统后会给出了一些提示,让这个自动排课系统能被更多的人简单方便的运用起来。3.2.2技术可行性分析(1)硬件可行性分析系统的硬件要求方面不存在特殊的要求,只需要在普通的硬件配置就能够轻松的实现,只是需要确保系统的正常工作即可,以及拥有较高的效率。如果有特别低的硬件,它可以导致系统的低性能以及效率低,从而导致整个网站的运行不顺畅。以目前普遍的个人计算机的配置而言,这是十分容易实现的。所以,本系统的研发在硬件的问题上是可行的。(2)软件可行性分析Java语言提供的动态模型相似的理由的共同机制,设计更集中。另外,在使用Java语言可以很容易实现模块化和存储信息。此外,代码复用,也可以很好的体现。因此,考虑到系统的实际情况,选择JAVA作为本系统开发语言的时候。通过上述分析,该系统的设计实现在软件方面是可行的。因此,我们进行了三个方面的可行性研究,可以看出,该系统的开发是没有问题的。-31- 济南大学毕业设计3.3系统功能需求分析系统主要包括管理员、学生和教师三个角色,不一样的角色拥有着不一样的权限。(1)管理员:管理员具有的权限主要实现了教师列表、班级列表、学生列表、教师列表、课程列表、排课列表、管理员列表等功能模块的管理;(2)学生:学生进入系统后主要实现了我的课表、可选课程列表、已选课程等功能模块;(3)教师:教师登录系统具有的权限是对我的课表、我的课程等功能模块的查看。其中学生和教师都不能对自己事先录入好的资料进行更改,只具有查看的权限。学生和老师的信息只能通过管理员的权限进行增添操作和修改操作,只有管理员有足够的权限,目的是为了管理员能更加简单有效地管理整个排课系统并且让系统运行更加良好。该自动排课系统新添加的一个功能模块是学生进入系统后多了一个选课功能模块,学生可以选择自己班级没有上的自己有感兴趣的课程,这一选课过程只能在排课结束之后才能进行操作。学生和教师共同都具有的功能就是对自己课表的查询和对特定时间的空教室的查询。3.4系统非功能需求分析(1)可靠性需求可用性:一般用户按照网站提小便可完成日常操作,界面设计合理,使用方便。平均故障间隔时间(MTBF):6个月,支持7*24小时的服务。平均修复时间(MTTR):这个系统遇到问题停止运作的时间应该控制在1小时之内。(2)完整性需求要求各种数据的完整性,规定的数据信息的记录内容不能为空,各种数据间联系应保持正确,同一个数据在不同记录中所保持的一致性。(3)性能需求页面响应时问应该控制在一定的时间范围内;系统支持在同一个时间段内一起在线操作的用户至少要有500名。(4)精度需求系统的部分功能对数据的精确度有所要求,对于系统的浮点型数据,其数据信息的精确成都至少应该要达到小数点后面2位数。(5)易用性需求系统的使用人用来学习系统的操作时间不能太长;界面设计应为友好、简单、清晰的可视化操作界面;目有相应的操作提示与帮助。(6)安全性需求系统要设置用户的合法性,既给每个用户分配不同的帐号,并且要求用户为帐号设置符合要求的密码。而且,系统也要分级别设置用户的权限,不一样的权限所拥有的访问资格是各不相同的,保证系统的安全稳定的运行。-31- 济南大学毕业设计3.5系统开发环境与开发工具系统开发环境主要从开发平台、开发语言、所使用的数据库软件、设计工具以及辅助工具等几个方面来介绍。开发平台:Myeclipse9.0开发语言:Java+JDK1.6数据库软件:MySQL6.0-31- 济南大学毕业设计4系统设计与实现在设计体系的时候要做到全方位的站在用户的立场上考虑问题,让最终的产品能够顺应大众用户的需求。这一章节将重点突出对于体系的结构框架的设计描述上,以详细的标明每一个数据库的主体结构框架。4.1系统设计目标和原则系统的架构设计,要能够反映出用户与整个系统模块的接口之间存在有效互动,而且应该是非常清楚的,从而才能够保障在后期系统真正实现的时候数据的扩展性和安全性,只有设计出的系统实现这个目标才能有一个更好的扩展空间量,以适应企业未来的发展。整个系统的设计中,系统必须满足以下要求:(1)数据安全性存储有关隐私权的自动排课系统问题的系统数据,需要确保数据的安全性,在网站设计时必须要采取安全防范措施,以解决潜在的安全问题。(2)柔软性由于这个自动排课管理系统涉及到范围广泛的业务,设计出的系统必须能够处理接受变化的能力。(3)扩展性随着自动排课系统管理需求的不断变化,自动排课系统也一定会有功能的更新和扩展,这就要求在一开始设计程序的时候就应该想到之后要添加新的功能和业务时候的方法。从实用的方面来看,系统必须满足系统的以下原则:(1)可靠性在实际使用的过程中系统都会设计到很对需要进行保密的数据,系统出现一些漏洞将这些信息泄露出去将会对用户产生很大的损失,所以我们必须大力确保系统是可靠的。(2)经济效益由于这是一个教学用途网站,设计网站的目的是为了更好的方便老师和学生,因此需要对系统开发的成本和效益进行考虑。4.2系统架构设计系统架构的整体设计是一个将一个庞大的任务细分为多个小的任务的过程,这些小的任务分段完成后,组合在一起形成一个完整的任务。它具体的工作步骤是:(1)系统被分解多个子模块(2)对各个子模块的功能进行预先的设计(3)对各个子模块之间的逻辑关系进行设计(4)对各个模块的界面以及模块间信息的传输进行设计-31- 济南大学毕业设计在整个设计过程,以确定可能的具体方案达成每一个小的最终目标,对于每一个小的目标而言,我们必须先了解一些相关的需求分析的信息。然后对系统进行初步的设计,并对其逐渐进行优化,然后根据之前整理收集的各种信息设计出系统的整体框架。系统的框图如图4.1所示。图4.1系统运行框架图由图4.1分析所示,系统主要包括管理员、学生和教师三个角色,管理员主要实现了专业列表、教室列表、班级列表、学生列表、教师列表、课程列表、排课列表、管理员列表、空教室查询和专业课表查询模块;学生登录系统主要实现了我的课表、可选课程列表、已选课程等功能模块;教师登录系统实现了我的课表、我的课程等功能模块。-31- 济南大学毕业设计4.3数据库设计4.3.1数据库的选定目前主流的大型数据库的Oracle,SQL服务器,MySQL和Access等本系统是一个相对较小的系统,因此选择了MySQL的。MySQL是一个关系数据库中,关系型数据库引擎进行数据和结构数据,以提供更安全可靠的存储功能。MySQL来微软的VisualStudio,MicrosoftOffice系统和新的开发工具包(包括商业智能开发套件),可以有效地整合。4.3.2数据库概念模型设计数据库的模型即系统的实体—关系模型。自动排课管理系统的整体图如图4.3所示。图4.3自动排课管理系统的整体图然后根据具体的功能需求,对本系统的E-R图进行细化从而得到几种实体-关系模型,以下为部分实体-关系模型。(1)学生用户实体,如图4.4所示。-31- 济南大学毕业设计图4.4学生实体图学生用户在是管理员的界面添加和修改的。添加和修改的时候,主要的元素有:班级信息;学生学号,长度要求不超过500字符;登入名称(ID),长度要求不超过11字符;密码,长度不超过500个字符;名称,不超过500个字符的长度;性别;联系地址,长度不超过500字符,可以为空。(2)班级类实体图,如图4.5所示。图4.5班级类实体图教室类的主要元素有:班级编号,长度不超过11字符;教室名称,长度不超过10字符;教室容量,长度不超过10字符。(3)课程类实体图,如图4.6所示。-31- 济南大学毕业设计图4.6课程类实体图课程类主要的元素有:课程编号,长度不超过11字符;课程名称,长度不超过50字符;任课教师,长度不超过11字符;总课时数,长度不超过10字符;每周课时,长度不超过10字符;所属专业,不超过500字符。(4)教师类实体图,如图4.7所示。图4.7教师类实体图教师类主要元素有:教师工号,长度不超过11字符;登录名称,长度不超过11字符;密码,长度不超过500字符;姓名,长度不超过500字符;性别,长度不超过500字符;联系电话,长度不超过250字符,可以为空;邮箱,长度不超过250字符,可以为空;出生日期,长度不超过250字符,可以为空;联系地址,长度不超过250字符,可以为空。(5)班级类实体图,如图4.8所示。-31- 济南大学毕业设计图4.8班级类实体图班级类主要元素有:编号,长度不超过11字符;名称,长度不超过500字符。(6)专业类实体图,如图4.9所示。图4.9专业类实体图专业类主要的元素有:名称,长度不超过11字符;备注,长度不超过500字符,可以为空。4.3.3数据库逻辑设计本系统主要用到了多张数据表,部分表单如下。(1)学生信息表。表4.1学生信息表字段名称数据类型长度是否可以为空IDint11否班级varchar500否学号varchar500否登录名称varchar500否密码varchar500否姓名varchar500否性别varchar500否联系地址varchar500是-31- 济南大学毕业设计(2)教室信息表。表4.2教室表字段名称数据类型长度是否可以为空编号int11否名称varchar10否教室容量varchar10否(3)课程信息表。表4.3课程表字段名称数据类型长度是否可以为空编号int11否名称varchar50否任课教师int11否总课时varchar10否每周课时varchar10否所属专业varchar500否(4)教师信息表。表4.4教师信息表字段名称数据类型长度是否可以为空教师工号int11否登陆名称varchar11否密码varchar500否名姓varchar500否性别varchar500否联系电话varchar500是邮箱varchar500是出生日期varchar500是联系地址varchar500是-31- 济南大学毕业设计(5)班级信息表。表4.5班级信息表字段名称数据类型长度是否可以为空编号int11否名称varchar500否(6)专业信息表。表4.6专业信息表字段名称数据类型长度是否可以为空名称varchar500否备注varchar500是-31- 济南大学毕业设计5系统详细设计与实现5.1数据库连接实现服务器端程序采用spring框架来访问数据库:以下是spring框架连接数据库的配置文件,该配置是针对spring框架的连接数据库的配置。数据库连接实现代码:struts/*struts-cleanuporg.apache.struts2.dispatcher.ActionContextCleanUpstruts-cleanup/*dwr-invokerorg.directwebremoting.servlet.DwrServletdebugtrueactiveReverseAjaxEnabledtrueinitApplicationScopeCreatorsAtStartuptruecrossDomainSessionSecurityfalsemaxWaitAfterWrite500-31- 济南大学毕业设计15.2系统登录实现系统登录界面效果如图5.1所示。其中登录角色有:学生、教师、管理员。不同的角色拥有着不一样的权限,其中管理员拥有最高权限可以对学生和教师角色进行添加和修改,而学生和教师都只具有查询的权限。图5.1系统登录界面效果系统登录实现的代码如下:publicStringlogin(Stringuname,Stringupass){try{Thread.sleep(700);}catch(InterruptedExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}Stringresult="no";Stringsql="fromSysuserwhereuname=?andupass=?";-31- 济南大学毕业设计Object[]con={uname,upass};ListuserList=sysuserDAO.getHibernateTemplate().find(sql,con);if(userList.size()==0){result="no";}else{WebContextctx=WebContextFactory.get();HttpSessionsession=ctx.getSession();Sysuseruser=(Sysuser)userList.get(0);session.setAttribute("user",user);result="yes";}returnresult;}5.3系统功能模块实现5.3.1管理员功能模块的实现管理员主要实现了教师列表、班级列表、学生列表、教师列表、课程列表、排课列表、管理员列表、空教室查询、分专业课表的查询功能模块。由于功能较多,这里只挑选重要功能进行讲解。(1)教师列表功能模块教师列表模块主要实现了管理员编辑、删除、查询和添加教师信息的操作,教师列表功能模块的实现如图5.2所示。在添加新的教师的时候不用设置教师所上的课程和所教的班级学生,而是在课程添加的时候选择这门课程的任课老师是谁。图5.2教师列表模块实现界面-31- 济南大学毕业设计(2)班级列表功能模块的实现班级列表模块主要实现了管理员查询、修改、删除和录入班级的操作,班级列表模块的实现如图5.3所示。图5.3班级列表模块实现界面(3)课程列表模块的实现课程列表模块主要实现了管理员查询、修改、删除和录入课程信息的操作,课程列表模块的实现如图5.4和图5.5所示。添加新的课程只能编辑课程的任课教师、所属于的专业、课程的编号、课程的名称、总课时、每周课时,而能在上课班级信息里编辑班级信息,选择某个班级上某个课程。图5.4课程列表模块实现界面-31- 济南大学毕业设计图5.5课程列表模块实现界面(4)排课列表模块的实现排课列表模块主要实现管理员自动排课和储存课表以及查询课表的功能,排课管理功能模块如图5.6所示。图5.6排课列表模块实现界面自动排课所用的算法在/src/util/Timetable.java。对课程排课是还应该考虑排课的时候同一个时间指定教室是否冲突,同一个教师指定的时间是否冲突的问题。当排课失败的时候,系统会提示“教学的资源不足,或者资源有严重冲突,请重新规划人员和硬件资源”。自动排课的排课具体代码如下:publicMap>createTimetable(){init();for(CouseClassVOnoRoomCourse:allCourses){reDayCount();for(DayCountdc:daycount){//System.out.print(dc.day+":"+dc.count+"-");}DayCountstartDayCount=daycount.get(0);-31- 济南大学毕业设计intstartDay=startDayCount.day;//从星期几开始排,每周5天intstartLesson=startDayCount.count%5;//从当天的什么课间开始排,每天5节课if(startLesson==0){startLesson=1;}intdayIndex=0;booleanfind=false;while(true){//遍历每一天if(dayIndex>=5){break;}if(find){break;}//遍历每个课间for(inti=1;i<=5;i++){if(!checkTeacher(noRoomCourse.course.getTeacher(),startDay,startLesson)&&!checkClass(noRoomCourse.classes,startDay,startLesson)){//查找教室for(Classroomroom:classrooms){if(room.getCapacity()>=noRoomCourse.getTotalStudent()){if(!checkClassroom(room,startDay,startLesson)){noRoomCourse.room=room;Listtempvos=timetable.get(startDay+""+startLesson);if(tempvos==null){tempvos=newArrayList();}tempvos.add(noRoomCourse);timetable.put(startDay+""+startLesson,tempvos);find=true;//System.out.println("找到上课星期:"+startDay);//daycount.get(startDay-1).count=daycount.get(startDay-1).count+1;addDaycount(startDay);break;}}}//endforclassrooms}if(find){break;}startLesson=(startLesson+i)%6;if(startLesson==0){-31- 济南大学毕业设计startLesson=1;}}//endforidayIndex++;startDay=(startDay+dayIndex)%6;if(startDay==0){startDay=1;}}//endwhileif(!find){thrownewRuntimeException("教学资源不足,或者资源有严重冲突,请重新规划人员和硬件资源");}}//System.out.println("总数:"+timetable.size());returntimetable;}privatevoidaddDaycount(intday){for(DayCountdc:daycount){if(dc.day==day){dc.count=dc.count+1;}}}教师,教室,课程,班级组成一个单元,多个单元构成集合,最后在每周时间中依次安排集合中的每个单元。(5)专业课表的查询模块的实现专业课表的查询主要实现管理员对某个专业的课表查询功能,专业课表的查询模块如图5.7所示。图5.7专业课表查询模块实现界面-31- 济南大学毕业设计5.3.2学生功能模块的实现学生登录系统主要实现了我的课表、可选课程列表、已选课程等功能模块。(1)我的课表模块我的课表模块主要实现学生对自己课表信息的查看功能。我的课表模块的实现如图5.8所示。图5.8我的课表模块实现界面(2)可选课程列表模块可选课程列表模块实现学生在线选课的功能。可选课程列表模块的实现如图5.9所示。学生可以选择自己班级未上的课程来丰富自己的大学生活。图5.9可选课程列表模块实现界面(3)已选课程列表模块已选课程列表模块实现学生对自己已选的课程的查看功能。已选课程列表模块的实现如图5.10所示。在这个界面不仅可以对已经选择的进行查看,还可以取消已经选择的。-31- 济南大学毕业设计图5.10已选课程列表模块实现界面5.3.3教师功能模块的实现教师登录系统实现了我的课表、我的课程等功能模块。(1)我的课表模块我的课表模块主要实现教师对自己课表信息的查看功能。我的课表模块的实现如图5.11所示。图5.11我的课表模块实现界面(2)我的课程列表模块我的课程列表模块实现教师对自己的课程的查看功能。我的课程模块的实现如图5.12所示。在我的课程里的操作里,教师可以查看具体自己任课的班级,和自己所教的学生的具体信息。-31- 济南大学毕业设计图5.12我的课程模块实现界面(3)空闲教室查询模块空闲教室模块实现教师对没有课程的教室的查看功能。空闲教室的查询模块的实现如图5.13所示。图5.13空闲教室查询模块接口的实现-31- 济南大学毕业设计6系统测试6.1软件测试系统测试不仅是要验证系统有没有达到相应的功能,而且必须检查各个模块是否运行正常。在进行系统测试之前就要设计好测试方案,尽量在不同环境不同变量的情况下测试,达到更好的测试效果。为了模拟的真实环境更真实,这是希望测试结果和实际的应用更加相近。在性能方面,需要通过设置场景,虚拟现实环境,对系统响应用户请求的时间进行测试,找出系统运行的性能瓶颈,并针对其提出相应的变化。6.2功能检测从用户的角度来看,功能测试就是对系统提供的各种功能进行测试,在这儿我所运用的操作是黑盒检测。操作方法是把整个项目比喻成一个从外部看不到的黑色盒子,从外部出发不去想盒子的内部是什么构造,从外部分部检查系统的每一个功能模块是不是都正常,当检测系统的时候输入正确数据的时候可以得到正确的结果,以及输入不正确的数据时候,系统也可以进行相应的处理。6.3系统配置要求CPU:酷睿双核CPU;内存:1G以上。或者CPU:AMDAthlon(tm)64X2DualCoreProcessor3800+内存:1G操作系统:MicrosoftwindowsXPProfessional版本2002ServicePack36.4测试内容(1)登录模块测试管理员登录界面如图6.1所示,在这里管理员必须要输入正确的用户名和密码才可以登录系统。权限不一样的角色进入系统之后,将有不一样的操作。-31- 济南大学毕业设计图6.1系统登录界面因为登录时输入的情况可能存在差异,有可能是用户名输入错误或者密码输入错了,也有可能是用户名和密码都输入错了,所以在测试系统登入界面的时候我们要尽量把所有可能出现的情况都考虑全面。具体的测试如表6.1所示。-31- 济南大学毕业设计表6.1(b)管理员登录模块测试用例用例编号操作输入数据预期结果实际结果测试状态(P/F)1-1输入正确的用户名和密码,点击“登录”按钮用户名:admin密码:123456成功登录成功登录,进入系统P1-2输入正确的用户名、正确的密码,点击键盘的“确定”键用户名:admin密码:123456成功登录成功登录,进入系统管理主页P1-3输入错误的用户名、正确的密码,点击“登录”按钮用户名:jjj密码:123456显示提示信息“您输入的用户不存在!请重新输入”显示提示信息“您输入的用户不存在!请重新输入”P1-4用户名和密码为空,点击“登录”按钮用户名:密码:显示提示信息“您输入的用户不存在”显示提示信息“您输入的用户不存在”P1-5用户名为空,密码不为空,点击“登录”按钮用户名:密码:123456显示提示信息“您输入的用户不存在”显示提示信息“您输入的用户不存在”P1-6用户名不为空,密码为空,点击“登录”按钮用户名:admin密码:显示提示信息“您输入的密码不正确”显示提示信息“您输入的密码不正确”P-31- 济南大学毕业设计(2)添加学生信息检测管理员添加学生信息时需要输入多个数据,其中必填的数据有:学生的学号、登入名称、密码、学生姓名等多个选项,还有其他可选填的数据信息,每个数据的长度之前章节都有介绍,在这里不重复介绍。学生信息的添加如图6.2所示。图6.2学生信息添加界面在信息添加的过程中,我们主要测试的内容是必填内容空缺和密码的两次输入不同的情况。当必填信息空缺不填时,系统会用醒目红字提示此为必填字段,测试满足程序要求。当第一次密码输入位数不足6位数时,系统提示长度介于6和20之间的字符串;第二次密码确认输入的密码和第一次不同时,提示请再次输入相同的值,都符合要求。教师、课程、专业等添加都与学生添加类似不予以重复测试。图6.3学生信息添加测试界面-31- 济南大学毕业设计(2)修改学生信息的检测在修改学生信息时需要注意的是登入的名称无法修改和密码如果不需要修改的情况下就不用再次填写。其余注意事项与学生信息的添加类似。我们主要测试必填信息漏填时提示是否正常。测试结果如果6.4所示符合要求。图6.4学生信息修改测试界面6.5测试结果经过测试,从结果得出登录模块可以满足登录的正常需求。6.6本章小结本章完成了自动排课管理系统的测试,测试结果在预计的范围内,运行效果良好。本章先介绍一下软件测试的一些方法以及一些用于测试的工具,然后再拿系统的登录模块进行具体的测试和讲解。-31- 济南大学毕业设计结论从收集资料到项目的最终完成,花了好几个月,在这个过程中,单单是收集和学习就花了一半以上的时间。以前总觉得自己在当前阶段已经做的挺好的了,真正自己做的时候才发现自己身上有非常多的不足之处。之前也在软件公司实习过一段时间,本以为自己可以很快完成这个项目的,后来才发现,自己在实习的时候做的主要都是前端界面的设计开发和后台数据的管理工作,在做这个项目的时候前端界面很快就完成了,可是在做数据库的链接的时候又花了好多的时间去学习,尤其是在一些代码方面看的不是很懂,在这里我非常感谢我的朋友在我实习的公司,当我有困难的时候,他们给了我不少的帮助,所以我可以在规定的时间里完成这个项目。完成这个项目后,我也学会了许多东西,最重要的是自学能力又提升了不少。由于时间的关系,个人感觉系统还不是很好,虽然基本的功能都已经能实现了,可是感觉还有很多地方不够完美,设计出来的界面也不是很符合个人的审美。不过,作为第一个自己一个人独立完成的网站,而且还能稳定运行,我已经觉得自己突破了自己了。在系统设计的过程中还遇到的一个问题就是,自己的英语水平还有待提高,很多关于网站开发技术的资料都是英文的文献,完全依靠自己的英语水平完全无法看懂。只用采用一个类似的“金山词霸”翻译软件的实时性翻译的辅助下才勉强看懂。看来以后我是应该好好加强自己的英语水平了,学好了英语才能让自己在这条道路上做的更好。虽然认识到英语能力的好坏直接联系到系统的开发。经过编程工作的学习让我有了更多的信心,我相信在未来的路上,我会走的更好。-31- 济南大学毕业设计参考文献[1]李金海,张景元.Struts,Spring和Hibernate的J2EE架构的研究和实现[J].山东理工大学学报(自然科学版)2006,(06).[2]杨洋.基于.NET的人事教务选课管理系统的设计与开发[J].计算机与现代化,2011(9):36-39.[3]蒋宗礼,马涛,唐好魁,闫明霞等.数据库技术及应用(第2版)[M].电子工业出版社,2010:43-65.[4]吴文.基于JAVA的机房应用教务选课管理系统[J].池州学院学报,2012(6):41-43.[5]唐汉明,翟振兴,兰丽华,关宝军,申宝柱.深入浅出MySQL数据库开发、优化与管理维护[M].人民邮电出版社出版,2006-2.[6]李盛恩,王珊.数据库基础与应用(第二版)[M].北京:人民邮电出版社,2009:14-78.[7]孙卫琴.《精通Hibernate:Java对象持久化技术详解[M].电子工业出版社出版[8]刘瑞新,张兵义.大学计算机规划教材:SQLServer数据库技术及应用教程[M].电子工业出版社,2012,8.[9]夏昕,曹晓钢,唐勇.深入浅出Hibernate[M].电子工业出版社,2005-6.[10]严士超,果莉,李明.基于泛在网技术的实验室智能门禁教务选课管理系统的研究[J].实验技术与管理,2014,31(5):162-163.[11]邬继成.J2EE开源编程精讲15讲[M],电子工业出版社,2008.1:41-114.[12]王珊,萨师煊.数据库系统概论[M].高等教育出版社,2006.5:198-235.[13]张孝祥.深入JavaWeb开发内幕——核心基础[M].北京:电子工业出版社.北京.2006.10.[14]舒红平.Web数据库编程-java[M],西安电子科技大学出版社,2005:97-134.[15]StephanieBodoff,DaleGreen,KimHaaseetal.TheJ2EETutorial[M].Addison-WesleyProfessional,2003.7(02)[16]WendyBoggs,MichaelBoggs.MasteringUMLwithRationalXDE[M].PublishingHouseOfElectronicsIndustry,2003:11-56.[17]XiaofengQi,FrancescoPalmieri.TheoreticalAnalysisofEvolutionaryAlgorithmswithanInfinitePopulationSizeinContinuousSpace[J].NeuralNetworks,1994,(5)[18]M.H.Odochertyetc.MultimediaInformationSystemTheManagementandSemanticRetrievalofallElectronicDataType[J].TheComputerjournal,1997,(34)[19]BruceEckel,饶若楠等译.Java编程思想机械工业出版社[M],2005:124-234.-31- 济南大学毕业设计致谢紧张而忙碌的毕业设计终于完成了,看到自己设计出来的系统功能齐全,我当时的心情真是难以用语言来描述。在我即将要毕业的时候,很多老师,同学和朋友给了我无私的关心和帮助,我想表达自己发自内心的谢意。首先,我想感谢老师在学校对我在学校的时间里的细心的照顾和帮助,给了我很多重要的和建设性的指导意见。完成这个毕业设计帮助了我学到了更多的知识。可以说,在日常生活中使用计算机来解决管理过中的任务繁重、效率低下问题是一个不错的方式。在学习理论知识的时候,我掌握了基本知识理论课程和专业课程知识,同时也产生了一些链接和系统设计全面的测试计划,但这是第一次真正动手设计管理软件的过程。在这个项目中完成的时候,我曾经遇到过在克服遇到我的能力各方面的重重困难,在遇到困难并且解决困难的经过中大大提高了我解决问题的能力,让我更好的运用自己在学校期间学到的理论知识和实践技能,提高专业技能。从毕业设计的开题到结束的这段时间内,我终于想出了一个更完整,全面的系统。随着这次毕业设计的结束,我真正了解之前所学习的软件工程的整个过程,也更加巩固了以前的理论知识,同时也为我今后的工作中奠定了一定的基础。-31-'