教学管理系统设计计算机毕业设计(论文)

上传人:1888****888 文档编号:38547095 上传时间:2021-11-08 格式:DOC 页数:40 大小:762.50KB
收藏 版权申诉 举报 下载
教学管理系统设计计算机毕业设计(论文)_第1页
第1页 / 共40页
教学管理系统设计计算机毕业设计(论文)_第2页
第2页 / 共40页
教学管理系统设计计算机毕业设计(论文)_第3页
第3页 / 共40页
资源描述:

《教学管理系统设计计算机毕业设计(论文)》由会员分享,可在线阅读,更多相关《教学管理系统设计计算机毕业设计(论文)(40页珍藏版)》请在装配图网上搜索。

1、理学院教务管理系统摘要 本系统运用J2EE中的JSP MODEL2的MVC (MODEL+VIEW+CONTROL)模型,运用Eclipse3.1.8 + Tomcat5.0 + JDK5.0 + MSSQL 的组合开发平台开发测试。B/S架构,在系统设计、实施上运用软件工程的思想,完全依照瀑布模型来编写设计文档。利用流程图,UML图等工具来设计程序,以避免逻辑上的错误。运用PowerDesigner工具进行数据库的设计。运用JUnit工具进行编写测试用例,进行单元测试和集成测试。在界面上运用Ajax技术来实现XML文件存放数据,并以人性化的控件完成复杂的业务流程。考虑到排课任务的繁重,设计了

2、自动排课算法,可以完成特定需求的排课。优雅的分层设计、美观的页面设计、功能间低耦合、SQL及算法语句的优化让系统增色不少。关键词j2EE MODEL2 MVC Ajax 自动排课 B/S Education Manage System of CollegeAbstract:This System use JSP MODEL2 MVC (MODEL+VIEW+CONTROL) of J2EE, use Eclipse3.1.8+Tomcat5.0+JDK5.0+MSSQL-this Develops platform to develop and test. B/S construction,

3、use software engineering thought in system design and implementation, according to Waterfall Model to write design document completely. Design software which used flow chart, UML chart and so on, this can make logic error little. Use the tool of PowerDesigner to design database, use the tool of JUni

4、t to write test case, do cell test and integration test. On interface, use the technology of Ajax and put data to XML file, and complete difficult operation flow. Designed auto make curriculum schedule. It can complete special requirement. Gentler delamination design, beautiful page design, lowness

5、coupling in fuctions , optimize of SQL and arithmetic sentence make this system very well.Keywords:j2EE, MODEL2, MVC, Ajax, auto do curriculum schedule, B/S 1 引言:理学院教务管理系统为学院机构,提供电子化解决方案。致力于构建电子化领域中统一、规范、服务完善的技术平台。在电子化教学中结合人力资源管理的理念,以人为本,由教学管理、考试管理、自动排课,成绩查询,贯彻教学的整体流程。在电子化教学中将网络技术与传统教学相结合,为学院提供远程教育技

6、术解决方案,将高质量的教育服务延伸到社会的每一个角落。本系统正是为了实现教学管理电子化这一需求而开发。系统开发中运用到了Eclipse、tomcat、DK等开发工具与运行环境,Ajax,Web Model2 (MVC),Design pattern,jstl, 等技术和知识。2 系统开发前的准备:2.1 什么是EclipseEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。2

7、.2 什么是JDKJDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境。它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成。 JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。2.3 什么是Jsp和Servlet Jsp(JavaServer Page)是在普通Html

8、中嵌入了Java代码的一个脚本,在这一点上,它与其它的脚本语言(如Php)一样,但它与其它语言不同的是:其它脚本语言由服务器直接解释这个脚本,而Jsp则由Jsp容器(如Tomcat)首先将其转化为Servlet,然后再调用Javac将Servlet编译为Class文件。最终,服务器解释的是Class文件。那么什么是Servlet呢?Servlet其实是一个特殊的Java类,Servlet类一般从HttpServlet类继承而来,在这个类中至少要实现doGet或者doPost函数,在这两个函数中处理来自客户的请求,然后将结果返回。Servlet和Jsp是Sun公司J2EE架构中重要的部分。由于基

9、于Java语言,因此其可以方便的调用功能强大的Java API(如JDBC)。2.4 什么是TomcatTomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。 Tomcat 最新版本是4.0x。4.0x与3.x的架构不同,而是重新设计的。Tomcat4.0x中采用了新的Servlet容器:Cat

10、alina,完整的实现了Servlet2.3和Jsp1.2规范。Tomcat提供了各种平台的版本供下载,可以从http:/jakarta.apache.org上下载其源代码版或者二进制版。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。 与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB

11、-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。 在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet

12、文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。 Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。2.5

13、什么是AjaxAjax(Asynchronous JavaScript and XML)是结合了 Java 技术、XML 以及 JavaScript 等编程技术,可以让开发人员构建基于 Java 技术的 Web 应用,并打破了使用页面重载的惯例。Ajax是使用客户端脚本与 Web 服务器交换数据的 Web 应用开发方法。这样,Web 页面不用打断交互流程进行重新加裁,就可以动态地更新。使用 Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的 Web 用户界面。2.6 什么是MVC和Model2模型视图控制器(MVC)是XeroxPARC在八十年代为编程语言Smalltalk

14、80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。模型视图控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。Model 2 被认为区别于MVC 的一个原因是,观察者/通知模式不能在web 环境内工作的很好。HTTP 是一个 “拉” 的协议: 客户请求然后服务器响应。没有请求就没有响应。观察者模式需要一种“推”协议来进行通知,以便服务器能在模型改变时将信息推送到客户端。虽然也有一些方法能模拟将数据推送到客户端,但这和基本情况相悖,并且会视为是个权宜之计的修补。图1:M

15、VC关系图人们认为Model2不同于MVC的主要原因之一是:基于观察者/通知模式的经典的MVC是难以在web环境下实现的。因为HTTP协议是一个请求/响应协议,客户端有请求,服务器端才会有响应,没有请求,就没有响应。而观察者/通知模式要求在服务器端发生变化时能主动给用户端发消息更新。为了解决经典MVC模式难于在web环境下实现的问题,引入层模式将状态改变和状态查询的职责加于控制器之上,并伴随着改变通知。如图2,分层的web 应用使用一种比传统MVC模式更加“扁平”的模式。控制器被夹在表现层(View) 和 应用逻辑 (Model)之间。 图2:web应用的层模式每个组件的主要职责并没有改变。流

16、程有轻微改变,View不再与Model有直接的联系,而它们之间的交互都通过Controller。即查询状态和改变通知都必须通过控制器;当视图,或者表现层需要加工动态页面时,它使用从控制器传递的数据而不是直接来自于模型层。这种改变去除了View 和 Model的耦合,允许控制器选择数据和显示这些数据的视图。2.6.1 MVC如何工作MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。2.6.2 视图视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的W

17、eb应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括MacromediaFlash和象XHTML,XML/XSL,WML等一些标识语言和Webservices.如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。2.6.3 模型模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusionComponents这样的构件对象来处

18、理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。2.6.4 控制器控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。2.7 什么是jstl JSTL是Jsp Standard Tag Library的缩写。这是一组通用标签并将成为JSP 2.0的一部分。其中包含赋值<c:set&g

19、t;,分支<c:if>,循环<c:forEach>,查询数据库<sql:query>,更新数据库<sql:update>等。目前你需要像添加自定义标签库一样来添加JSTL,但是可以预计JSP 2.0会将JSTL作为组成部分。标签库可以在http:/jakarta.apache.org下载。注意JSTL需要在支持JSP1.2或更高版本的容器下运行。3 需求分析3.1 说明需求分析旨在为项目的分析和开发提供参考。3.2 产品描述本系统旨在用J2EE的B/S架构为学院管理员、老师和学生开发WEB版的在线管理平台。以减少他们的大量重复的繁琐的工作。让学生

20、和老师有更多的时间专注于学习和工作。系统分为5个模块。分别是权限模块、教学模块、学生模块、老师模块、考试模块。各模块又分为几个子功能,模块间耦合度较小。3.3 产品功能列表表1:产品功能列表编号名称简述1网站部分1.1登录功能系统的入口,能够选择身份(学生,老师,管理员)1.2学生课表学生可以看到自己的上课课表1.3学生信息可以修改自己的基本信息1.4学生考试学生可以选课程,然后参加考试1.5学生成绩学生可以查阅已经考试的课程成绩1.6老师课表老师可以看到自己的授课课表1.7老师信息可以修改自己的基本信息1.8排课信息教学管理员安排上课的时间,教师,老师,课程2后台部分2.1用户权限管理系统管

21、理员对各个角色访问整个系统各部分功能的权限进行分配、修改和删除操作;系统管理员可以添加其他管理员(教学管理员;BBS管理员;图书管理员)2.2教学管理员模块包括新增,更改,删除学生,教师,课程以及班级;排课要保证同一教师在同一时间不能上两门课程2.3学生模块学生课表,学生成绩2.4教师模块老师课表2.6考试模块能从数据库中随机抽取所需专业的考试题目;学生考完后可以自动评分3.4 产品功能需求3.4.1 <学生模块>学生登陆以后,可以选报课程。系统会根据学生所在系及课程的预修课判断1. 系统会列出所有满足该生还未选报的课程,或者其预修课为公共课的课程。如果该生选报了未满足预修课要求的

22、课程,系统会有相关的错误提示。例如:高等数学(二)的预修课为高等数学(一)2. 学生可以查看自己的成绩,包括该生已选课程的名称,学分以及该生的总分。如果教师还未给出成绩,则系统会有相关提示。3. 该生可以更改自己的个人信息,包括密码,电话号码等,其中要求密码不能为空。4. 学生课表,有时间,地点,课程名,老师名,如果老师还没有选择课程而此时学生又查询课表,老师名可以为空3.4.2 <老师模块>教师在本系统中拥有是否接受学生所选课程,以及给学生打分的权力,只有先接受学生,才能给该生打分。 1. 系统要求教师选择学生,然后系统会列出该教师所代课程的班级,然后系统会列出选报了该课程的所有

23、学生;可以看到学生的一些详细情况2. 学生考试完后,教师确认学生成绩之后,系统会根据总成绩来判断该生是否通过了考试。3. 总成绩是由考试成绩×80+平时成绩×20;考试成绩由学生考完试后系统自动打分,平时成绩老师给出;平时成绩占老成绩的百分比由老师给出。4. 考试成绩和平时成绩的分数范围0-100,老师课表,有时间,地点,课程名,班级名3.4.3 <教学管理员模块>1. 管理员在本模块中有着最高的权力,包括新增,更改,删除学生,教师,课程以及班级。2. 管理员负责排课,要保证同一教师在同一时间不能上两门课程等等约束。3.4.4 <考试模块>1. 能从

24、数据库中随机抽取所需专业的考试科目。2. 学生考完后自动评分。3.4.5 <权根模块>1. 所有web页面需要页面权限验证,对不同的模块分配不同的访问权限。例如:学生进入学生模块,而不能进入管理员模块;图书管理员只能进入图书借阅模块2. 系统管理员可以增删改查其他管理员(教学管理员;BBS管理员;图书管理员)3. 系统管理员的用户名和密码可以预先在数据库中设定。3.5 用户界面需求表2::用户界面需求表需求名称详细要求界面风格界面风格统一;不需要很眩的页面设计,实现功能为第一3.6 软硬件环境需求表3::软硬件环境需求表需求名称详细要求服务器端硬件CPU:P4 2.4以上;内存DD

25、R1G以上;硬盘 80G以上客户端硬件P、Celeron及上型号处理器;内存:32M以上;硬盘 2G以上服务器端软件操作系统需安装Windows 2000 server Oracle 9i,Tomcat5.0或以上版本。客户端软件操作系统需安装 windows98或以上版本, IE浏览器需5.5或以上版本3.7 产品质量需求表4:产品质量需求表主要质量属性详细要求正确性按照需求正确执行任务,完成各个模块的相应要求。健壮性具有较高的容错能力和恢复能力。可靠性故障发生率每运行1000小时低于3次性能,效率软件的输出结果更新周期应该与系统的信息更新周期相同。在网络情况良好的情况下,3秒内可响应用户请

26、求。易用性易理解性:软件研制过程中形成的所有文档语言简练、前后一致、易于理解以及语句无歧义。安全性防止软件受到意外或蓄意的存取、使用、修改、毁坏或泄密的软件属性其数据应能集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也不应进行什么数据同步.可扩展性能方便的进行二次开发,满足对功能的扩充或提高并能提高相应的安全控制。兼容性不易与其他软件起冲突。 可移植性可方便移植到其他系统环境中正常运行。4 概要设计4.1 说明概要设计主要是把项目分类和分析各接口之间的关系,让各个模块之间更好的协同工作。4.2 总体设计结构图登录模块学生模块老师模块管理员模块查看个人信息查看成绩考试模

27、块查看课表信息必修考试选修考试选报选修课查看个人信息打分查看课程表教学管理员题库管理系统管理员图3:总体设计结构图4.3 文档目录编排图4:总体文档目录编排图项目采用MVC模式,文档目录编排依照MVC模式。4.3.1 M:MODELCom.sevenEleven.Beans包中主要包含数据库的持久化类。Com.sevenEleven.javaBean包及子包中包含连接数据库类以及业务层中的类。此层为模型层。4.3.2 V:VIEWWebContent文件夹中包含着页面和页面元素。有JSP,HTML,CSS,FLASH,JS等。作为项目的视图层。4.3.3 C:CONTROLCom.sevenE

28、leven.servlet包及子包包含了WEB中的servlet文件,作为控制层。控制MODEL层和VIEW层之间的数据流。5 数据库设计5.1 说明数据库设计遵从面向关系的原则,保证各表之间不出现逻辑错误的同时,要尽可能满足存取的简单,三范式和二范式间的取最优者,保证开发和维护的简便和数据库的可读性。5.2 数据库的命名规则5.2.1 表名的命名规则一个表的表名要能简洁易懂的表达表的功能,一般从基本表开始命名。如STUDENT5.2.2 主键的命名规则 一个表的主键要一眼看得出来,一般用表名的首字母+下划线+ID。如S_ID5.2.3 外键的命名规则一个表的外键是另一个表的主键,一般用相关表

29、关键名来表示。如 CLASS 表的主键为C_ID,在STUDENT表中做外键表名也为C_ID5.3 物理设计(Design by PowerDesigner) 图5:数据库物理设计图5.3.1 表汇总表5:数据库表汇总表名功能说明表ADMINISTRATOR管理员表,存放总管理员、教务管理员、图书管理员、BBS管理员等信息表STUDENT学生表, 存放学生信息表TEACHER老师表, 存放老师信息表CLASS班级表, 存放所有班级表CLASSROOM教室表, 存放所有教室信息表TIME时间表, 存放一个学期的各个时间片断表CHOOSE1必修课考试的选择题的题库,包括单选题和多选题表CHOOSE

30、2选修课考试的选择题的题库,包括单选题和多选题表TEXT1必修课考试的填空题的题库表TEXT2选修课考试的填空题的题库表LESSON1必修课课表,存放不同的必修课课程表LESSON2选修课课表,存放不同的选修课课程表LESSON1_LIST必修课课程表, 存放必修课的排课信息表LESSON2_LIST供学生在线选报的选修课表S_LIST_AFTER_L2学生选报后的选修课课表,包含学生信息表RESULT1成绩表1, 存放了所有学生的必修课成绩表RESULT2成绩表2, 存放了所有学生的选修课成绩信息表TEACHERANDLESSON1FORCLASS为某个班级的某个课程安排老师存放在这个表中。

31、为自动排课作准备5.3.2 ADMINISTRATOR表表6:管理员表表名ADMINISTRATOR列名数据类型(精度范围)说明空/非空约束条件A_IDint管理员ID (序列)非空主键A_NAMEvarchar(10)管理员帐号非空唯一A_PASSWORDvarchar(10)管理员密码非空A_TYPEint管理员类型 非空补充说明根据管理员类型不同来区别是系统管理员还是教务管理员或是图书管理员5.3.3 STUDENT表表7:学生表表名STUDENT列名数据类型(精度范围)说明空/非空约束条件S_IDint学生ID (序列)非空主键C_IDint班级ID (CLASS表的主键)非空外键S_

32、NUMBERVachar(10)学生帐号(学号)非空唯一S_NAMEVachar(10)学生姓名非空S_PASSWORDVachar(10)学生密码非空补充说明S_NUMBER是学生的学号,也是学生登录的帐号5.3.4 TEACHER表表8:老师表表名TEACHER列名数据类型(精度范围)说明空/非空约束条件T_IDint老师ID (序列)非空主键T_NUMBERVarchar(10)老师帐号(工号)非空唯一T_NAMEVarchar(10)老师姓名非空T_PASSWORDVarchar(10)老师密码非空T_SKILLVarchar(50)老师技能(课程名)非空补充说明T_NUMBER是老师

33、的工号,也是老师登录的帐号5.3.5 CLASS表表9:班级表表名CLASS列名数据类型(精度范围)说明空/非空约束条件C_IDint班级ID (序列)非空主键C_NAMEVarchar(10)班级名非空C_TYPEVarchar(10)班级类别 (理工)非空补充说明5.3.6 CLASSROOM表表10:教室表表名CLASSROOM列名数据类型(精度范围)说明空/非空约束条件CR_IDint教室ID (序列)非空主键CR_NAMEVarchar(10)教室名非空补充说明5.3.7 TIME表表11:时间表表名TIME列名数据类型(精度范围)说明空/非空约束条件TIME_IDVarchar(5

34、)时间字符串 (序列)非空主键补充说明A0111 表示A阶段第1周的星期1 的第一堂课,可以唯一标识一个时间片断5.3.8 CHOOSE1表表12:必修课选择题表表名CHOOSE1列名数据类型(精度范围)说明空/非空约束条件CH_IDint必修课选择题ID (序列)非空主键L1_IDint必修课ID (序列)非空外键CH_QUESTIONVarchar(100)题目非空唯一KEYAVarchar(100)答案A的信息非空KEYBVarchar(100)答案B的信息非空KEYCVarchar(100)答案C的信息非空KEYDVarchar(100)答案D的信息非空CH_ANSWERVarchar

35、(2)正案答案 (A,B,C,D)非空Check(A,B,C,D)CH_TYPEint选择题的类型(0,1)非空Check(0,1)补充说明依靠CH_TYPE来区分是单选还是多选5.3.9 Choose2表表13:选修课选择题表表名CHOOSE2列名数据类型(精度范围)说明空/非空约束条件CH_IDint选修课选择题ID (序列)非空主键L2_IDint选修课ID (序列)非空外键CH_QUESTIONVarchar(100)题目非空唯一KEYAVarchar(100)答案A的信息非空KEYBVarchar(100)答案B的信息非空KEYCVarchar(100)答案C的信息非空KEYDVar

36、char(100)答案D的信息非空CH_ANSWERVarchar(2)正案答案 (A,B,C,D)非空Check(A,B,C,D)CH_TYPEint选择题的类型(0,1)非空Check(0,1)补充说明依靠CH_TYPE来区分是单选还是多选5.3.10 TEXT1表表14:必修课填空题表表名TEXT1列名数据类型(精度范围)说明空/非空约束条件TEXT_IDint必修课填空题ID (序列)非空主键L1_IDVarchar(10)必修课ID (序列)非空外键TEXT_QUESIONVarchar(10)题目 非空TEXT_ANSWERVarchar(10)正案答案非空补充说明必修课填空题题库

37、5.3.11 TEXT2表表15:选修课填空题表表名TEXT2列名数据类型(精度范围)说明空/非空约束条件TEXT_IDint选修课填空题ID (序列)非空主键L2_IDVarchar(10)选修课ID (序列)非空外键TEXT_QUESIONVarchar(10)题目 非空TEXT_ANSWERVarchar(10)正案答案非空补充说明选修课填空题题库5.3.12 LESSON1表表16:必修课表表名TEXT1列名数据类型(精度范围)说明空/非空约束条件L1_IDint必修课ID (序列)非空主键L1_NAMEVarchar(50)必修课名称非空唯一L1_TIMEint必修课学时 非空L1_

38、SCOREint必修课学分非空补充说明必修课列表5.3.13 LESSON2表表17:选修课表表名TEXT2列名数据类型(精度范围)说明空/非空约束条件L2_IDint选修课ID (序列)非空主键L2_NAMEVarchar(50)选修课名称非空唯一L2_NEES_IDint所需的预修课ID非空L2_TIMEint选修课学时 非空L2_SCOREint选修课学分非空补充说明选修课列表5.3.14 LESSON1_LIST表表18:必修课排课表表名LESSON1_LIST列名数据类型(精度范围)说明空/非空约束条件C_IDInt班级ID (序列)非空主键,外键1T_IDInt老师ID (序列)非

39、空主键,外键2CR_IDInt教室ID (序列)非空主键,外键3L1_IDInt必修课ID (序列)非空主键,外键4TIME_IDVarchar(5)时间字符串 (序列)非空主键,外键5补充说明必修课已排课程表5.3.15 LESSON2_LIST表表19:选修课供选修表表名LESSON2_LIST列名数据类型(精度范围)说明空/非空约束条件T_IDInt老师ID (序列)非空主键,外键1CR_IDInt教室ID (序列)非空主键,外键2L2_IDInt必修课ID (序列)非空主键,外键3TIME_IDVarchar(5)时间字符串 (序列)非空主键,外键4补充说明选修课供选择列表5.3.16

40、 S_LIST_AFTER_L2表表20:选修课课表表名S_LIST_AFTER_L2列名数据类型(精度范围)说明空/非空约束条件T_IDInt老师ID (序列)非空主键,外键1S_IDint学生ID (序列)非空主键,外键2CR_IDInt教室ID (序列)非空主键,外键3L2_IDInt必修课ID (序列)非空主键,外键4TIME_IDVarchar(5)时间字符串 (序列)非空主键,外键5补充说明已选择后的选修课课表5.3.17 TEACHERANDLESSON1FORCLASS表表21:一个班的老师和课程绑定表表名TEACHERANDLESSON1FORCLASS列名数据类型(精度范围

41、)说明空/非空约束条件T_L1_C_IDInt老师ID (序列)非空主键T_IDint老师ID (序列)非空外键1C_IDInt班级ID (序列)非空外键2L1_IDInt必修课ID (序列)非空外键3补充说明为某个班级的某个课程安排老师存放在这个表中。为自动排课作准备6 界面设计6.1 说明 界面设计要求不大,但是要能够清晰表述页面的功能。让用户能够很好上手。页面之间的跳转不能出现逻辑错误。本系统界面设计采用了框架的结构,可展开式列表,人性化操作。6.2 主页面(登录)图6:主页面设计图6.3 <学生模块>图7:学生模块设计图6.4 <老师模块>图8:老师模块设计图6

42、.5 <权限模块>图9:权限模块设计图6.6 <教务管理员模块>图10:教务管理员模块设计图7 详细设计7.1 <共用文件系>7.1.1 Model层图11:共用文件的Model层文件图表22:Com.sevenEleven.Beans包中的共用文件表包名Com.sevenEleven.Beans类名类功能说明CadminBean.java系统管理员Bean , 作为数据库信息在服务器上的持久化类CchooseTestBean.java选择题Bean , 作为数据库信息在服务器上的持久化类CclassBean.java班级Bean , 作为数据库信息在服务器

43、上的持久化类Clesson1Bean.java必修课Bean , 作为数据库信息在服务器上的持久化类Clesson2Bean.java选修课Bean , 作为数据库信息在服务器上的持久化类CstudentBean.java学生Bean , 作为数据库信息在服务器上的持久化类CteacherBean.java老师Bean , 作为数据库信息在服务器上的持久化类CtextTestBean.java填空题Bean , 作为数据库信息在服务器上的持久化类补充说明包中包含了所有的数据库持久化类,便于各模块MODEL层的调用。类中属性对应数据库的字段。类中必需包含setter(),getter()方法。表

44、23:Com.sevenEleven.javaBean包中的共用文件表包名Com.sevenEleven.javaBean类名类功能说明CcheckUser.java验证用户登录CDBConnection.java连接数据库基类CConnectMSSQL.java连接MSSQL数据库的实体类CDBOracle.java连接Oracle数据库的实体类CdataFomat.java不同类型的字符集的相互转换(unicode ,GB)Count.java以往登录用户计数器类Page.java分页类CseparateTime.java实现把一定规则的表示时间的字符串分解成特定的时间类补充说明本包包含了

45、各个模块都可能要用到的辅助类。7.1.2 View层图12:共用文件系的View层文件表24: WebContent文件夹中的文件列表文件夹名WebContent文件名类功能说明Err.jsp错误显示页面,把错误信息传到此页面显示Error500.jsp当页面出现500错误时,用此页面代替index.jsp主页面,嵌套了login.jsp页面login.java登录页面,嵌套在index.jsp页面上Top.jsp页面头,嵌套在各个子模块主页面上补充说明7.1.3 Control层图13:共用文件系的Control层文件表25:com.sevenEleven.servlet包中的共用servl

46、et列表包名com.sevenEleven.servlet类名类功能说明CcheckUserServlet.java验证用户登录的ServletClogoutServlet.java用户注消的ServletLoginFilter.java有关登录的过滤器,过滤非法登录OnlineCounterListener.java在线人数监听器TraceFilter.java把unicode字符转为GB2312字符的过滤器补充说明7.2 MVC的设计浏览器browser数据库DataBaseJSPservletJavaBeanViewModelrequestresponseControl图13:MVC设计

47、图如上图所示,MVC设计模式在JAVA WEB项目中的体现为 JSP(VIEW层)、Servlet(Control层)、JavaBean(Model层)。为了说明MVC在项目中代码中的体现,可以拿登录模块为例子来说明。附录中的文件1:WebContent/login.jsp作为VIEW层,是用户登录的页面。该页面显示在浏览器上,用户可以在指定的位置键入用户名和密码,并选择用户的类型,点确定提交到CcheckServlet;附录中的文件2:com.sevenEleven.servlet.CcheckUserServlet作为Control层,是登录功能的控制器,负责控制MODEL层和VIEW层中

48、的数据流向。通过request.getParameter("USERNAME")语句得到前台输入的数据,经过业务流程之后,再通过request.getRequestDispatcher("teacher/teacher.jsp").forward(request, response);这样的语句跳转到therch/teacher.jsp这样的JSP页面。附录中的文件3:com.sevenEleven.javaBean. CConnectMSSQL作为Model层,提供了SQLServer数据库的连接和返回记录集。供Control层调用。7.3 分页的分析

49、与设计7.3.1 分页的分析参考网上对分页的分析,用的多的分页方法有三种:(依数据来分类) 1、一次性把要想得到的数据从数据库中取出来,这种方法恰用于数据量小时用,不过不推荐。n 优点: 一次取出,数据全在缓存里,跳转到其它分页时速度极快。n 缺点: 第一次取出全部数据,放在缓存中,极度的浪费了资源。 2、每次只取当前页面所需要的数据。适合数据量比较大。n 优点:每次只取出每需页面的数据,大大减轻了缓存中的数据量。n 缺点: 每一次分页跳转时都要连接数据库,对数据库造成了压力。 3、每次取出几个页面的数据,分在缓存中,当缓存中没有页面每需的数据时,再从数据中取。比较适合表中数据超大,比如几百万

50、条的数据。n 优点:终合了1,2两种方法的好处,由系统分析员来把握一个最佳的度。n 缺点:加大了分页算法的难度和逻辑量。7.3.2 分页的设计由以上的分析,我选择了第2种方法来实现。 1、关于取数据库记录的实现: 函数1: 取出要从表中取出的数据的总条数。(见附录中文件4) 函数2: 要实现第2种方法,那么取数据的方法是动态的。也就是说每次由当前页来决定是取第多少条数据。SQL语句很重要,要给两个参数,比如说form 第一个参数 to 最后一个参数 这么多数据。(见附录中文件5) 2、关于分页类的实现: 分页类,主要功能是把当前页码,总页码,每页数据条数,总条数,等等数据的setter()和g

51、etter()方法。 主要是还给了一个分页控件,此控件就是一个函数所实现的,参数是提交的servlet名,返回的就是html代码,这个代码就是分页控件。(见原代码中com.sevenEleven.javaBean.Page.java) 3、servlet的实现: servlet1: 生成初使化页面。(见附录中文件6) servlet2: 生成非初使化页面。(见附录中文件7) 4、jsp页面要加的东东: 只需要在servlet中取出控件(String),通过request.setAttribute()方法显示到页面中就行了。分页Jsp页面上要添加<!- 分页控件 -> $choose

52、1PageStr/插入你想显示这个控件的地方<tr> <td><input type="hidden" name="choose1Page" value="$choose1Page" /></td> </tr> /插入页面Body里就行了。7.4 时间字符串简介排课时用到的时间并不是绝对时间。因为年份在项目中不起作用,而第几学期、第几周、星期几、第几节课反而是排课中时间的要素。当然由相对时间和班级的开班时间,用固定的公式可以得到绝对时间。 这里我们利用时间字符串不仅可以减少数

53、据库存储多余的信息量,而且让后台对相对时间的操作更简单。例如的时间类(附录中文件8)7.5 权限问题的分析与设计权限问题有多种解决方案,最系统的比如Windows的用户组分类。为了减轻工作量和复杂度,这里没有给每个权限编号并为用户设定用户组。因为页面的独立,这里使用页面权限和登录权限。 理学院权限分析: 页面权限可以通过JSP中的过滤器(Filter)来实现;登录权限可以用JAVA代码实现;这样不同类型用户登录的是不同的页面,并且用户不能访问其它类型用户的页面。7.6 自动排课分析与设计7.6.1 自动排课分析自动排能问题是一个NP问题,复杂度为(时间,班级,老师,课程,教室)五维.加上其约束

54、条件一起,其是一个数学上尚为解决的问题.理学院自动排课分析: 1. 学院里同一届的班开班时间相同,而不同届的开班时间不同.2. 学院可以按周排课,特殊时可以变更单节课; 7.6.2 自动排课设计方案 理学院自动排课解决方案. 1. 简化五维关系,在自动排课之前,要求用户选择班级和阶段,再为班级的特定阶段规定(课程老师) 在同一班级同一学期的课程和老师 三维 : (班级-学期-课程-老师) - 时间 - 教室 2. 为排课定制约束 * 1.如果取出的教室不为空,则给班分配一个随机的教室. 如果为空,这节课就不上了. * 2.如果取出的(老师-课程)都有课,则这节课不上. * 3.如果前6节课有同

55、样的课上过了,选其它的课 * 4.如果排到的课超过了当周应上课数,选其它的课 * 5.如果当天前三节课都上了,这节课不上. * 1,2为自动排课的硬性约束,-3,4,5,为自动排课的软性约束7.7 总结 由于系统文件过多,其它模块内容均略去,要查看请查找附件中的源文件。8 总结通过毕业设计,把课本中学到的编程和项目管理等知识用于实践中。加深了对编程更加深刻的认识,提升了编程和对程序的认知能力,达到了独立完成简单项目的能力。在毕业设计中对项目最深刻的感悟总结如下:1. 编程的规范化对项目设计和后期的维护都十分的重要,特别是对于大型项目的小组开发,其重要性更加的突出。2. 在项目设计时要详细到每一

56、个函数的接口,注释要十分详细,增强代码的易读性。3. 项目架构在项目中十分重要,一个好的架构往往不仅可以使程序易读,减轻工作量,还可以减轻维护和修改。4. 当二个方案不知道如何取舍时,选择自己熟悉的或简单的方案。不要误了工作安排。写好方案设计和实施文档,当要更改时,认真仔细地写好变更文档。5. 在模块设计时,要充分考虑到本模块和其它模块之间的联系,尽量减轻各模之间的耦合性。6. 在设计数据库时在正确设计各个表之间的关系时,要尽量让查找和操作数据库简单。通过毕业设计,学习到了如何完成一个项目的开发过程。然而这次开发中仍然有许多不足之处,列举如下:7. 数据库可以设计得更加简单,增加数据库的易读性

57、和让开发更简单。增加视图,以减轻数据库查找的压力,增加存储过程和触发器以提高软件的质量。8. 应多增加一些注释,增强代码的可读性。类、表、函数的命名要更加规范。9. 更多地站在用户的角度上来考虑系统,让系统更加的人性化。参考文献:1UML for Java Programmers英文版(电子版)2姜江 Power Designer 数据库系统分析设计与应用 电子工业出版社3莫勇腾 深入浅出设计模式(C#/Java版) 清华大学出版社4Robert A. Maksimchuk Eric J. Naibury UML初学者指南 人民邮电出版社5 Vivck Chopra Jon Eares Rup

58、ert Jones JSP程序设计 人民邮电出版社6冯博,朱穗晖 J2EE 1.4程序设计教程 清华大学出版社7Michael J. Hernandez 数据库设计凡人入门-关系数据库设计指南(第二版) 电子工业出版社8Thinking in Java 中文版(电子版)9Eclipse从入门到精通(电子版)10基于MVC的JavaWeb设计与开发(电子版)11sqlServer笔记(电子版)12CSDN社区()r, but fainter now and desperately the horn was blowing. Fierce and shrill rose the yells of the Orcs, and suddenly the horn-calls ceased. Aragorn raced down the last slope, but before he could reach the hill's foot, the sounds died

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