基于java的排课教务系统的设计与实现_第1页
基于java的排课教务系统的设计与实现_第2页
基于java的排课教务系统的设计与实现_第3页
基于java的排课教务系统的设计与实现_第4页
基于java的排课教务系统的设计与实现_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计说明书基于JAVA的排课教务系统的设计与实现题目用一号黑体字,一行排不下可排两行,居中。学生姓名学号学院系名专业指导教师2015年5月信息商务学院计算机系计算机科学与技术基于JAVA的排课教务系统的设计与实现摘要选排课系统功能的设计上,学生选排课系统可以分为登录、排课和选课3个子系统。登录子系统区分排课者也即系统的管理者、教师和学生这三者的不同身份,给出不同的权限,在页面中根据身份判断其相应具有的功能来使用这套系统。排课子系统主要供排课者使用,排课者可以在这里进行一切与排课有关的活动。选课系统主要供学生选课使用,在这里可以进行与选课有关的活动;教师可在教师反馈系统中对排课者提出反馈意见,供排课者在排课时可参考使用。学生排课系统使用RATIONALROSE进行UMI。建模;过程选择使用JSP编写脚本,在数据库上考虑到快捷、有效,同时考虑到多台服务器共同使用同一个数据库的情况,这里选择SQLSERVER2000作为数据库服务器;对于网页的服务器平台,这里选择使用TOMCAT5O作为INTERNET服务器。关键词智能排课系统,UML,JSPINTHEPROCESSOFEDUCATIONALADMINISTRATIONMANAGEMENTABSTRACTTHEFUNCTIONALDESIGNOFSELECTEDARRANGEMENTSYSTEM,STUDENTSCHOOSEARRANGEMENTSYSTEMCANBEDIVIDEDINTOLOGIN,CURRICULUMANDELECTIVE3SUBSYSTEMSTHELOGINSUBSYSTEMDISTINGUISHCURRICULUMARRANGEMENTEG,SYSTEMADMINISTRATORS,TEACHERSANDSTUDENTSOFTHETHREEDIFFERENTIDENTITY,GIVEDIFFERENTPERMISSIONSONPAGEWITHTHEIRCORRESPONDINGIDENTITYJUDGMENTACCORDINGTOTHEFUNCTIONTOUSETHISSYSTEMMAINCOURSEFORTHEUSEOFTIMETABLINGSUBSYSTEM,CURRICULUMPERSONCANUNDERTAKEHEREANDALLTHEACTIVITIESRELATEDTOTHECOURSEMAINCOURSEFORSTUDENTSCOURSESYSTEM,HERECANBEUSEDWITHCOURSESRELATEDACTIVITIESTEACHERSCANBEINTEACHERSOFFEEDBACKSYSTEMS,THETIMETABLEFORFEEDBACKWHENTHECOURSECOURSEINREFERENCETOUSESTUDENTSCHOOSEARRANGEMENTSYSTEMRATIONALUMISTARTEDTOUSEMODELINGPROCESSCHOOSETOUSEJSPSCRIPTING,INADATABASEONCONSIDERATIONTOTHEQUICK,EFFECTIVE,ANDCONSIDERINGTHEMULTIPLESERVERSJOINTLYWITHTHESAMEDATABASE,HERETOCHOOSESQLSERVER2000ASDATABASESERVERFORWEBSERVERPLATFORM,HERETOCHOOSEUSETOMCAT5OASINTERNETSERVERKEYWORDSINTELLIGENTCOURSESARRANGINGMANAGEMENTSYSTEM,UML,JSP目录摘要31系统概述411智能排课系统概述412智能排课系统的目的和意义42开发平台的技术521JAVA简介522JSP简介623TOMCAT的介绍73系统分析531编程环境选择532设计大纲74设计内容941实现功能1042功能与模块的设计1043数据库设计1044数据表设计115系统流程图设计与分析1451登陆系统流程图1452主界面中课表生成部分流程图14521班级管理流程图14522班级课程处理流程图15523课表生成部分流程图16524报表输出功能1753其它模块设计说明186系统设计197结论和总结20致谢22参考文献23附件程序清单1系统概述11智能排课系统概述智能排课系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以智能排课系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件排课,这种管理方式存在着许多缺点,如效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对排课信息进行管理,具有着手工管理所无法比拟的优点。例如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高智能排课的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。12智能排课系统的目的和意义终上所述,开发这样一套智能排课软件成为很有必要的事情。我们所开发的这智能排课软件归纳起来,好处大约有以下几点1可以存储历届的排课,安全、高效;2只需一到二名排课录入员即可操作系统,节省大量人力;3可以按照录入人员的输入来自动生成课程表,并尽量减少冲突等情况发生。排课系统的设计分析根据实际情况,我们使用原型法(RAPIDPROTOTYPING)即以少量代价快速地构造一个可执行的软件系统模型。使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。此时模块也发展成为最终产品了。2开发平台的技术21JAVA简介JAVA是目前最常用的计算机编程语言,也是主要的网络开发语言之一。JAVA具有面向对象、分布式和多线程等先进高级计算机语言的特点,同时它还因可移植、安全性能高和网络移动性等逐渐成为一种行业标准。对于初次接触计算机编程语言的人来说,JAVA语言简单易学,不需要长时间的培训就可以编写出适合现在企业或个人需要的程序。JAVA的特点1平台无关性平台无关性是指JAVA能运行于不同的平台。JAVA引进虚拟机原理,并运行于虚拟机,实现不同平台的JAVA接口之间。使用JAVA编写的程序能在世界范围内共享。JAVA的数据类型与机器无关,JAVA虚拟机(JAVAVIRTUALMACHINE)是建立在硬件和操作系统之上,实现JAVA二进制代码的解释执行功能,提供于不同平台的接口的。2安全性JAVA的编程类似C,学习过C的读者将很快掌握JAVA的精髓。JAVA舍弃了C的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。JAVA对程序提供了安全管理器,防止程序的非法访问。3面向对象JAVA吸取了C面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。JAVA提供了众多的一般对象的类,通过继承即可使用父类的方法。在JAVA中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。JAVA提供的OBJECT类及其子类的继承关系如同一棵倒立的树形,根类为OBJECT类,OBJECT类功能强大,经常会使用到它及其它派生的子类。4分布式JAVA建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。5键壮性JAVA致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。JAVA自己操纵内存减少了内存出错的可能性。JAVA还实现了真数组,避免了覆盖数据的可能。这些功能特征大大提高了开发JAVA应用程序的周期。JAVA提供NULL指针检测、数组边界检测、异常出口、BYTECODE校验。22JSP简介JSP是SUN公司推出的新一代网站开发语言,SUN公司借助自己在JAVA上的不凡造诣,将JAVA从JAVA应用程序和JAVAAPPLET之外,又有新的硕果,就是JSP,JAVASERVERPAGE。JSP可以在SERVERLET和JAVABEAN的支持下,完成功能强大的站点程序。使用JSP技术,WEB页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来产生页面上的动态内容。产生内容的逻辑被封装在标识和JAVABEANS群组件中,并且捆绑在小脚本中,所有的脚本在服务器端执行。如果核心逻辑被封装在标识和BEANS中,那么其它人,如WEB管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的产生。在服务器端,JSP引擎解释JSP标识,产生所请求的内容(例如,通过存取JAVABEANS群组件,使用JDBC技术存取数据库),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的WEB浏览器的完全可用性。绝大多数JSP页面依赖于可重用且跨平台的组件(如JAVABEANS或者ENTERPRISEJAVABEANS)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者用户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种群组织在他们现有的技能和优化结果的开发努力中得到平衡。WEB页面开发人员不会都是熟悉脚本语言的程序设计人员。JAVASERVERPAGE技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容产生所需要的。标准的JSP标识能够存取和实例化JAVABEANS组件,设定或者检索群组件属性,下载APPLET,以及执行用其它方法更难于编码和耗时的功能。通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其它人员可以为常用功能建立自己的标识库。这使得WEB页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用JAVA技术家族的一部分,以及JAVA2EE的一个成员,JSP技术能够支持高度复杂的基于WEB的应用。由于JSP页面的内置脚本语言是基于JAVA程序设计语言的,而且所有的JSP页面都被编译成为JAVASERVLET,JSP页面就具有JAVA技术的所有好处,包括健壮的存储管理和安全性。作为JAVA平台的一部分,JSP拥有JAVA程序设计语言“一次编写,各处执行”的特点。随着越来越多的供货商将JSP支持加入到他们的产品中,您可以使用自己所选择的服务器和工具,修改工具或服务器并不影响目前的应用。23TOMCAT的介绍TOMCAT是APACHEJAKARTA软件组织的一个子项目,TOMCAT是一个JSP/SERVLET容器,它是在SUN公司的JSWDK(JAVASERVERWEBDEVELOPMENTKIT)基础上发展起来的一个JSP和SERVLET规范的标准实现,使用TOMCAT可以体验JSP和SERVLET的最新规范。经过多年的发展,TOMCAT不仅是JSP和SERVLET规范的标准实现,而且具备了很多商业JAVASERVLET容器的特性,并被一些企业用于商业用途。粗略地可以将SERVLET容器分为如下几类独立的SERVLET容器内置有WEB服务器的一部分。指当使用基于JAVA的WEB服务器的情形,例如SERVLET容器是JAVAWEBSERVER的一个部分。独立的SERVLET容器是TOMCAT的默认模式。大多数的WEB服务器并非基于JAVA,因此,我们可以得出如下两种容器的模式。进程内的SERVLET容器SERVLET容器作为WEB服务器的插件和JAVA容器的实现。WEB服务器插件在内部地址空间打开一个JVMJAVAVIRTUALMACHINE使JAVA容器得以在内部运行如有某个需要调用SERVLET的请求,插件将取得对此请求的控制并将他传递使用JNI给JAVA容器。进程内容器对于多线程,单进程的服务器非常合适并且提供很好的运行速度,但伸缩性有所不足。进程外的SERVLET容器SERVLET容器运行于WEB服务器之外的地址空间且作为WEB服务器的插件和JAVA容器的实现的结合WEB服务器插件和JAVA容器JVM使用IPC机制通常是TCP/IP进行通讯当一个调用SERVLET的请求到达时,插件将取得对此请求的控制并将其传递使用IPC等给JAVA容器,进程外容器的反应时间或进程外容器引擎不如进程内容器,但进程外容器引擎在许多其他可比的范围内更好伸缩性,稳定性等。TOMCAT既可作为独立的容器主要是用于开发与调试又可作为对现有服务器的附加当前支持APACHE,IIS和NETSCAPE服务器即任何时候配置TOMCAT你都必须决定如何应用他,如选择第二或第三种模式,你还需要安装一个WEB服务器接口。3系统分析31编程环境选择编程环境的选择微软公司的JSP是WINDOWS应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。JSP提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。故而,实现本系统VB是一个相对较好的选择。关系型数据库的实现SQLSERVER2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。SQLSERVER的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于EXCEL的电子表格,可以使数据库一目了然。另外,SQLSERVER允许创建自定义报表用于打印或输出数据库中的信息。SQLSERVER也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。SQLSERVER是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,SQLSERVER作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。二者的结合(DBA)微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及JSP来访问数据库并对其进行各种操作。JSP、SQLSERVER以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。当今的微软对数据库中的ADO比较注视,并在NET上使用了ADONET技术,鉴于ADO在很多程序里的广泛应用,使用ADO来连接数据库将是最为适用的,并且在定义了ADO的连接模块后,对于将来的升级也会很方便,只要修改一下连接源,就可以轻松的更换后台。在使用JSP语言进行编程时还有有如下的优点JSP应用程序不同于其他语言开发的单一性程序。使用JSP编程时,必须首先确定应用程序如何与用户交互,如鼠标单击,用户必须编写代码控制这些事件的响应方法。使用JSP开发数据库应用程序的一般步骤如下所示(1)建立数据库(2)建立用户界面(3)编写代码(4)调试运行(5)编译应用程序(6)发布应用程序界面设计(1)控件的位置(2)界面元素的一致性(3)保持界面的简明(4)使用颜色和图像增加视觉的感染力(5)图像和图标增加应用程序的视觉上的趣味(6)选取字体JSP应用程序的结构由于JSP应用程序是基于对象的,所以应用程序的代码结构就是该程序在屏幕上物理表示的模型。根据定义,对象包含数据和代码。在屏幕上看到的窗体代表属性,这些属性定义了窗体的外观和内在特性。本设计主要是运用ADO来连接和操作数据库。附ADO技术简介ADO是MICROSOFT目前主要的数据存取技术,从1997年MICROSOFT推出ADO的第一个版本之后,ADO的整体架构并没有太大的改变。不过在每一个新的ADO版本之中,MICROSOFT不断地改善ADO的执行效率,提供更多的功能,持续增加ADO的稳定性,并且让ADO能够存取更多种类的数据源。ADO是MICROSOFT提出的各种数据存取技术的演化结果,因为随着数据日益复杂,数据存取技术也必须不断地进步以适应应用系统的需求。目前,虽然ADO是WINDOWS平台存取数据的标准技术,不过ADO也将会继续演变。要了解ADO为什么会成为目前的标准,可以从WINDOWS平台数据存取技术的进化而得知。1ODBC1992年MICROSOFT和SYBASE、DIGITAL共同制定了ODBC标准接口,以单一的ODBCAPI来存取各种不同的数据库。随后ODBC便获得了许多数据库厂商和THIRDPARTY的支持而逐渐成为标准的数据存取技术。ODBC以当时的业界标准规范X/OPENCALLLEVELINTERFACECLI和ISO/IEC90753CALLLEVELINTERFACESQL/CLI为涵盖的范围,因而支持了广阔的数据库。虽然ODBC在初期的版本中执行效率不佳,而且功能有限,因此也为人们所贬低。但是,随着MICROSOFT不断地改善ODBC,使ODBC的执行效率不断增加,ODBC驱动程序的功能也日渐齐全。到目前,ODBC已经是一个稳定并且执行效率良好的数据存取引擎。不过ODBC仅支持关系数据库,以及传统的数据库数据类型,并且只以C/C语言API形式提供服务,因而无法符合日渐复杂的数据存取应用,也无法让脚本语言使用。因此MICROSOFT除了ODBC之外,也推出了其他的数据存取技术以满足程序员不同的需要。2DAO1993年MICROSOFT为了让程序员能够存取SQLSERVER数据库,使用OLEAUTOMATION技术封装了JETENGINE。这些使用JETENGINE存取SQLSERVER数据库的OLEAUTOMATIONOBJECT便称为DATASQLSERVEROBJECTDAO。DAO能够存取XBASE的数据库以及EXCEL文件,并且能够结合ODBC存取关系数据库。但是DAO毕竟主要的设计目的是存取SQLSERVER数据库,因此DAO在存取SQLSERVER数据库时非常有效率,但是在存取其他的数据源时却表现得不怎么好。目前DAO已经慢慢接近维护的状态。3RDO由于DAO在结合ODBC存取关系数据库时表现得并不好,因此在1995年MICROSOFT同样以OLEAUTOMATION技术直接封装ODBCAPI,让程序员能够存取关系数据库。这种数据存取技术便称为REMOTEDATAOBJECTRDO。MICROSOFT之所以推出RDO,是因为ODBCAPI是非常复杂的API,许多程序员无法直接使用ODBCAPI来开发应用程序,因此MICROSOFT以简化的RDO对象让程序员能够较为简单存取数据。此外,通过RDO,VB和脚本语言也能够存取各种关系数据库。不过目前RDO也已经逐渐地被放弃了。4OLEDB随着数据源日益复杂化,现今的应用程序很可能需要从不同的数据源取得数据,加以处理,再把处理过的数据输出到另外一个数据源中。更麻烦的是这些数据源可能不是传统的关系数据库,而可能是EXCEL文件,EMAIL或INTERNET/INTRANET上的电子签名信息。MICROSOFT为了让应用程序能够以统一的方式存取各种不同的数据源,在1997年提出了UNIVERSALDATASQLSERVERUDA架构。UDA以COM技术为核心,协助程序员存取企业中各类不同的数据源。UDA以OLEDB属于操作系统层次的软件作为技术的骨架。OLEDB定义了统一的COM接口作为存取各类异质数据源的标准,并且封装在一组COM对象之中。藉由OLEDB,程序员就可以使用一致的方式来存取各种数据。5ADOADOACTIVEXDATAOBJECT是微软新近推出的新一代数据访问规范,其使用简便功能强大,在DELPHI中其地位等同于一个和BDE并列的数据库引擎。ADO是MDAC的应用程序设计接口,从它的字面意思上可以看出,ADO和ACTIVEX技术密不可分,而ACTIVEX技术又和OLE,COM组件对象模型,也由微软提出,旨在实现软件组件化等技术有深厚的历史渊源。OLEDB则是系统级的接口,定义了一套从关系数据库及文件系统访问数据的COM接口。32设计大纲经过慎重考虑,并尽量使排课的速度加快,因此对各位教师和各班级都建立一个占用表,首先计算当前要排课程的老师的已排课程占用情况,将其与排课班级的占用表进行对比,获取有用空间,即得到的空间都会适合,这样使用随机推举的方式来自动生成一个新位置,达到排课效果,并且不会造成冲突等情况的发生。排课作为系统的主要重点,在编写中就要尽量避免各种各样的冲突和错误发生,因此也需要经过投入长时间的测试与使用才能使程序的功能达到最好,速度最快。在课程表输出方面,将采用目前最常用的报表形式来进行输出,并且同时使用VB中操作EXECL的方法将课程表输出到EXECL自制的课程表模板文件中,并且同时可以实现打印,这样用户如果在认为报表输出的格式并不能让您满意的话,就可以根据自己的需要来修改EXECL的模板,达到课程表的完美输出。4设计内容41实现功能1掌握学校所有的课程和教师的信息。包括每门课程的时间、班级以及任课老师的姓名等。2针对不同的人员授予不同的权限。提供灵活的浏览、查询功能。可以查看某个系、某个班级所有课程的信息。3可以对一个或多个班级进入课程管理与排课表管理,可以不限次的生成该班级课程表。4可以对课程进行变动管理。既可以手工排课,又可以实现自动排序功能。5帮助系统维护可以实现操作日志、重新登录、打印设置(包括统计各种报表及打印等)、退出等操作。6提供一种或多种课程表输出功能,并使用活动的模板输出功能,输出样式可以由用户自定义。7实现功能全面化,由于每个学校或班级的每天课程数目或时间都不太一样,实现智能计算总课程数目和管理对应的时间段,并且根据每门课程的独立分布式来进行排列(例如大学语文自动排列的分布方式可以是周一至周六,那么系统就会自动将其平均分布在周一至周六这些天里)8用户管理设置两个级别用户管理员和普通用户,管理员有权限操作系统中的所有数据,普通用户只能以执行查询,输出之类的功能,无法对系统进行实质性的操作,用户使用本系统之前必须先通过身份认证(用户级别、用户名和密码,密码输入有次数限制,连续三次输入错误密码则锁定该用户)42功能与模块的设计421设计思想本系统采用各班级独立划分管理,所有教师均可为任何班级服务,各班级根据每天课程数目来进行自动排序,同时各教师允许教学多门课程,因此为了每名教师配置了时间占用表,只要与班级对应的时间空间表未被占用,都可以参与排课,并根据用户定义的要求排出课程。数据管理类由于班级,时间,教师,课程等信息都需要一个活动的管理过程,因为在节省资源的情况下,将各数据所需要的代码合并在一起进行编写和使用。排课系统系统还原班级管理课程管理时间段设置用户管理课表生成离开系统图421排课系统实体图422各模块设计与分析此处中各模块的设计与分析在以下各模块数据流图与程序中同步讲解。423系统ER图班级班级名称辅导员教室号课程课程名教师姓名临时生成课表时间段星期一星期二星期三星期四星期五星期六星期日班级自动编号班级课程信息课程名课节数每周课数需要周数任课老师两节课累排课程分布所属班级1N1N1N从属从属从属图423系统ER图系统ER图说明本系统是一个智能排课系统,主要是根据班级为单位,利用班级与课程来进行排课。班级与课程是一对多的关系,班级不能重复,但是课程可以随意出现任何班级。班级与班级课程信息之间也是一对多的关系,一个班级,可以有很多不同的课程。班级与临时生成课表是一对多的关系,一个班级,只能有一个课程表,而排列的方式都同样由班级获得。其余的数据库建立都是在让系统方便使用的基础上建立的,还有一个无需用户手动添加数据的,做为内部参数来使用的表,这里就不用标出的了。424数据字典数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实完善的。明确地需求收集和分析作为数据库设计的第一阶段是十分重要的。这一阶段收集到的基础数据(用数据字典来表达)和一组数据流程图(DATAFLOWDIAGRAM,简称DFD)是下一步进行概念设计的基础。以下是本系统的数据结构,因实现使用方便的特点,数据库中的各字段列表直接用中文来表示,所以数据字典在以下数据库设计中已经没有什么太大的必要。详见数据库的设计43数据库设计数据库的概念数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类非关系数据库(FLATFILE)和关系数据库(RELATIONAL)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,像记录、域等。新建一个数据库创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。创建一个数据库的大体思路如下1标识需要的数据;2收集被标识的字段到表中;3标识主关键字字段;4绘制一个简单的数据图表;5规范数据;6标识指定字段的信息;7创建物理表。32修改已建的数据库数据库的修改分为添加、编辑和删除记录。这三种操作均可由JSP创建的程序来完成,下面的章节将详细描述实现的具体方法。实现数据库之间的联系数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。数据库中有三种不同类型的关键字主关键字、组合关键字和外关键字。在表中使用的关键字类型用于描述数据库表示什么以及在数据库中如何与其它的库建立关系。在众多的数据库中,MICROSOFT的SQLSERVER是操作最简单,使用最为广泛的一种数据库软件,在单机上运行有着方便、实用、操作员要求低等特点。在这里,我选择了使用SQLSERVER数据库管理系统,来开发一个小型的销售管理系统。在系统的数据库设计中,应遵守以下的原则数据结构的合理性。即数据文件的合理组织,数据元素的合理归类和划分,以及数据项的合理描述。数据存储的安全性。提高安全性的最为有效的措施是增加数据的冗余,而数据的大量冗余往往为维护数据的一致性带来了困难。对此,根据实际需要进行合理取舍,在尽量降低冗余的前提下,确保数据的安全性和可靠性。维护和管理方便。存储结构的设计,首先应保证对数据进行管理和维护上的方便,它是提高系统运行效率的基础。44数据表设计在使用SQLSERVER创建“智能排课系统”数据库系统中需要建立的数据表有441登录表字段数据类型字段大小必填字段索引允许为空用户名文本50是无否密码文本50否有无重复否权限文本50是无否442课程表字段数据类型字段大小必填字段索引允许为空课程名文本4否有无重复是教师姓名文本50是无否443课程信息表字段数据类型字段大小必填字段索引允许为空课程名文本50否有无重复否课节数数字长整型是无是每周课数数字长整型是无否需要周数数字长整型是有有重复否任课老师文本50否无否两节课累排文本50否无否课程分布文本50否无否所属班级文本50否无否444临时生成表字段数据类型字段大小必填字段索引允许为空时间段文本50是无是星期一文本50否无是星期二文本50否无是星期三文本50否无是星期四文本50否无是星期五文本50否无是星期六文本50否无是星期日文本50否无是所属班级文本50否无是自动编号自动编号是无否续444临时生成表平445课程占用表字段数据类型字段大小必填字段索引允许为空班级文本50是无否占用文本50否有无重复否446系统日志表字段数据类型字段大小必填字段索引允许为空用户名文本50是无否时间文本50否无否操作记录文本255否无否447系统设定表字段数据类型字段大小必填字段索引允许为空每天课数数字长整型是无否448占用表字段数据类型字段大小必填字段索引允许为空教师姓名文本50是无否占用文本50否无否5系统流程图设计与分析51登陆系统流程图登陆界面输入用户名和密码退出系统验证帐号和密码登入排课主界面YN3图51登录系统流程图设计说明进入主界面后,等待操作用户输入用户名和密码,在输入之后按确定进入,验证用户名和密码,实现流程1检测数据库中有无管理员帐号,如果有,则等待用户输入用户名和密码,否则按程序本身自动执行插入命令,新建一个管理员用户,并等待用户输入2验证用户名和密码是否正确,错误次数不能超过三次,超过三次则退出系统登陆界面3当验证通过后,检测该登陆用户的管理权限,并设置变量传值给主窗体52主界面中课表生成部分流程图521班级管理流程图班级管理添加保存修改删除返回输入数据验证重复执行保存图521班级管理流程图模块设计说明班级的操作部分是排课程序正常执行的重要部分,班级的添加不允许有同名的班级出现,而修改也不能做到修改班级名,班级名称将作为不可修改的数据部分,而删除部分,在删除之前必须保证该班级的课表是否已经生成,如果是,则需要注销课程表,这样做是让该班级生成的课表占用教师空间的部分全部返回,这样不会使教师的空间被反复占用,而最终导致错误发生。522班级课程处理流程图班级课程处理添加保存修改删除输入数据验证重复执行保存课程是否生成提示并返回操作YN图522班级课程处理流程图模块设计说明课程数据的添加,修改或删除都会影响到已生成课程表的返回,因为在操作之前必要保证课程表属于未生成状态,如果当前为生成状态,则需要注销课程表,这样才可以继续操作。注已生成课程表的返回由于课程表排列好后,对应的课程后教师的排课占用表都会有标记标明,如果这时修改了某此数据后,这教师的占用表并没有恢复到未生成状态,这样就会导致不可预知的错误发生。523课表生成部分流程图生成课表显示课程A注解A每周课程数是否大于课程表的表格数B退回以前曾生成的课程表,此操作达到将各位老师和该班级的排课占用情况返回到未生成状态B进入排课循环排课完成并退出Y退出N排课循环CC当前所排课程与当前班级的可排课位置生成D获取随机生成的位置对应值,并利用获取的值来计算课程表上对应的横向与纵向坐标F根据用户的设置来确定允许排课的课节数(例如允许同一课程两节课连排,则可以进行某个操作步骤),根据当前需求,目前只开发2节课连排与单节课排列。G在当前课程当前节排列成功后,将会为该课程的教师的课程占用情况与班级的占用作修改,做个标记DF2节课连排单节课排列G次数取决于课程总数是否再次循环允许几节连排退出图523课表生成部分流程图模块设计说明此处将执行的数据分成很多小部分来执行,这样做可以在测试中便如发现问题,因为排课系统的要求非常高,所以在程序实现方面是以由简到繁的过程。1排课中要求的每周课程数相加不能超出定义的课表范围,否则也将会出现死循环。2列出对应课程教师的未被占用的排课列表和班级的课程占用表。3穷举法列出以上两者之间的共通点,可用点。4最后通过循环随机选择来实现课程的定位与排列。5课程定位中不允许每天有相同的课程重复,并按规定来执行按什么样的格式来排列,例如两节连排,也就是说可以把该课程在同一天排在一起,可以实现两节课连上,这是大学课表里最常用的一个功能。524报表输出功能表524报表输出功能表报表输出AA通过班级来获取对应的生成课程表数据并赋值给某个打印变量或数据集B打开MDI窗体,并在其中显示报表窗体,将该报表的数据源定义为A所赋值的语句变量B打印退出EXECL模板输出A获取模板并复制数据填入临时文件保存临时文件是否打印打印返回操作YN模块设计说明此处采用了两种输出方式,第一种是普通的报表方式输出,可以实现一般的打印预览等功能,第二种则是采用模板功能,用户可以自由修改模板,前提是不可以更改数据位,其它的部分无论如何修改都没有关系。53其它模块设计说明(用户管理模块,时间段模块,课程管理模块)此处几个模块是经过资源优化将其与班级管理整合在一起的,此处工作流程基本上与班级管理的流程相同。54调课功能实现及设计说明由系统自动排课生成的并不一定能完全达到用户所想需要的效果,虽然在程序中解决了系统冲突的出现,但是因为某些原因而出现临时的原因都需要进行调课,因此排课系统中除了自动生成课表还必须有很灵活的调课功能才能让系统更完整,也便如使用调课查询可调点使可调位置变色获取课程资料获取教师对应资源图54调课功能图此处调课是事先获取系统有用资源空间,并在图表中进行背景色变色显示,提示用户该门课程可以调动至变色显示的地方,主要是通过班级的课程占用与该教师的排课占用情况进行对比,寻找有利和适用的位置,并等待用户进行调课操作执行调课在进行以上操作后,计算机自动等待用户选择系统列出的调课点,在选择某调课点后,系统自动清除数据库的中该课程的教师与当前班级该处资源占用情况,并同时清除图表中的资料,将其重新放置到新位置,并修改新地点的资源占用情况,最后将图表的可调位置背景色还原回正常状态6系统设计1管理员登陆管理员登入,输入相应的用户名和密码,程序中采用一个判断,如果两个其中一个为空或者填错都不能成功登入。界面和部分代码如下图61管理员登录图代码如下STRINGSQL“SELECTFROMT_ADMINWHEREUSERNAMEANDUSERPW“OBJECTPARAMSUSERNAME,USERPWDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSTRYRESULTSETRSMYDBGETRSBOOLEANMARKRSNULL|RSNEXTFALSETRUEIFMARKFALSERESULT“NO“ELSERESULT“YES“TADMINADMINNEWTADMINADMINSETUSERIDRSGETINT“USERID“ADMINSETUSERNAMERSGETSTRING“USERNAME“ADMINSETUSERPWRSGETSTRING“USERPW“WEBCONTEXTCTXWEBCONTEXTFACTORYGETHTTPSESSIONSESSIONCTXGETSESSIONSESSIONSETATTRIBUTE“USERTYPE“,0SESSIONSETATTRIBUTE“ADMIN“,ADMINRSCLOSECATCHSQLEXCEPTIONESYSTEMOUTPRINTLN“登录失败“EPRINTSTACKTRACEFINALLYMYDBCLOSED2系统首页后台系统首页面,其中采用了最新型的网页“后退”,”前进”刷新”,直接利用网页代码进行操作。左边是功能的目录。界面和部分代码如下图62系统首页图代码如下/ADMIN/TOPJSP“NAME“TOPFRAME“SCROLLING“NO“NORESIZE“NORESIZE“ID“TOPFRAME“/ADMIN/CENTERJSP“NAME“MAINFRAME“ID“MAINFRAME“/ADMIN/DOWNJSP“NAME“BOTTOMFRAME“SCROLLING“NO“NORESIZE“NORESIZE“ID“BOTTOMFRAME“/3管理员修改密码管理员如要修改密码,必须记住原先的密码,程序中采用了一个判断机制,如果原密码输入错误,则不能修改密码。进一步提供了网站的安全。界面和部分代码如下图63管理员修改密码图代码如下WEBCONTEXTCTXWEBCONTEXTFACTORYGETHTTPSESSIONSESSIONCTXGETSESSIONTADMINADMINTADMINSESSIONGETATTRIBUTE“ADMIN“STRINGSQL“UPDATET_ADMINSETUSERPWWHEREUSERID“OBJECTPARAMSUSERPWNEW,ADMINGETUSERIDDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSRETURN“YES“4专业管理专业管理功能,即可以添加专业名称和简单的介绍,也可以对原有的记录进行修改和编辑,界面和部分代码如下图64专业管理图代码如下STRINGNAMEREQGETPARAMETER“NAME“STRINGJIESHAOREQGETPARAMETER“JIESHAO“STRINGDEL“NO“STRINGSQL“INSERTINTOT_ZHUANYEVALUES,“OBJECTPARAMSNAME,JIESHAO,DELDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSMYDBCLOSEDREQSETATTRIBUTE“MESSAGE“,“操作成功“REQSETATTRIBUTE“PATH“,“ZHUANYETYPEZHUANYEMANA“STRINGTARGETURL“/COMMON/SUCCESSJSP“DISPATCHTARGETURL,REQ,RES5班级管理班级管理模块,是一个两个表相关联的模块,专业表和班级表。选择相应的专业添加相应的班级,界面和部分代码如下图65班级管理图代码如下PUBLICVOIDBANJIADDHTTPSERVLETREQUESTREQ,HTTPSERVLETRESPONSERESSTRINGNAMEREQGETPARAMETER“NAME“STRINGZHUANYE_IDREQGETPARAMETER“ZHUANYE_ID“STRINGDEL“NO“STRINGSQL“INSERTINTOT_BANJIVALUES,“OBJECTPARAMSNAME,ZHUANYE_ID,DELDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSMYDBCLOSEDREQSETATTRIBUTE“MESSAGE“,“操作成功“REQSETATTRIBUTE“PATH“,“BANJITYPEBANJIMANA“STRINGTARGETURL“/COMMON/SUCCESSJSP“DISPATCHTARGETURL,REQ,RESPUBLICVOIDBANJIDELHTTPSERVLETREQUESTREQ,HTTPSERVLETRESPONSERESSTRINGSQL“UPDATET_BANJISETDELYESWHEREID“INTEGERPARSEINTREQGETPARAMETER“ID“OBJECTPARAMSDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSMYDBCLOSEDREQSETATTRIBUTE“MESSAGE“,“操作成功“REQSETATTRIBUTE“PATH“,“BANJITYPEBANJIMANA“STRINGTARGETURL“/COMMON/SUCCESSJSP“DISPATCHTARGETURL,REQ,RES6课程管理课程管理功能,即可以添加课程名称和简单的介绍,也可以对原有的记录进行修改和编辑,界面和部分代码如下图66课程管理图代码如下PUBLICVOIDKECHENGADDHTTPSERVLETREQUESTREQ,HTTPSERVLETRESPONSERESSTRINGNAMEREQGETPARAMETER“NAME“STRINGJIESHAOREQGETPARAMETER“JIESHAO“STRINGDEL“NO“STRINGSQL“INSERTINTOT_KECHENGVALUES,“OBJECTPARAMSNAME,JIESHAO,DELDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSMYDBCLOSEDREQSETATTRIBUTE“MESSAGE“,“操作成功“REQSETATTRIBUTE“PATH“,“KECHENGTYPEKECHENGMANA“STRINGTARGETURL“/COMMON/SUCCESSJSP“DISPATCHTARGETURL,REQ,RESPUBLICVOIDKECHENGDELHTTPSERVLETREQUESTREQ,HTTPSERVLETRESPONSERESSTRINGSQL“UPDATET_KECHENGSETDELYESWHEREID“INTEGERPARSEINTREQGETPARAMETER“ID“OBJECTPARAMSDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSMYDBCLOSEDREQSETATTRIBUTE“MESSAGE“,“操作成功“REQSETATTRIBUTE“PATH“,“KECHENGTYPEKECHENGMANA“STRINGTARGETURL“/COMMON/SUCCESSJSP“DISPATCHTARGETURL,REQ,RES7老师管理老师管理功能模块,即可以要输入相应的教师号,姓名等信息进行添加,也可以对原有的记录进行修改和编辑,界面和部分代码如下图67老师管理图代码如下PUBLICVOIDTEAADDHTTPSERVLETREQUESTREQ,HTTPSERVLETRESPONSERESSTRINGBIANHAOREQGETPARAMETER“BIANHAO“STRINGNAMEREQGETPARAMETER“NAME“STRINGSEXREQGETPARAMETER“SEX“SYSTEMOUTPRINTLNREQGETPARAMETER“AGE“TRIMINTAGEINTEGERPARSEINTREQGETPARAMETER“AGE“STRINGDEL“NO“STRINGSQL“INSERTINTOT_TEAVALUES,“OBJECTPARAMSBIANHAO,NAME,SEX,AGE,DELDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSMYDBCLOSEDREQSETATTRIBUTE“MESSAGE“,“操作成功“REQSETATTRIBUTE“PATH“,“TEATYPETEAMANA“STRINGTARGETURL“/COMMON/SUCCESSJSP“DISPATCHTARGETURL,REQ,RESPUBLICVOIDTEADELHTTPSERVLETREQUESTREQ,HTTPSERVLETRESPONSERESSTRINGSQL“UPDATET_TEASETDELYESWHEREID“INTEGERPARSEINTREQGETPARAMETER“ID“OBJECTPARAMSDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSMYDBCLOSEDREQSETATTRIBUTE“MESSAGE“,“操作成功“REQSETATTRIBUTE“PATH“,“TEATYPETEAMANA“STRINGTARGETURL“/COMMON/SUCCESSJSP“DISPATCHTARGETURL,REQ,RES8学生管理学生管理功能模

温馨提示

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

评论

0/150

提交评论