软件专业Java毕业设计论文.docx
《软件专业Java毕业设计论文.docx》由会员分享,可在线阅读,更多相关《软件专业Java毕业设计论文.docx(29页珍藏版)》请在冰豆网上搜索。
软件专业Java毕业设计论文
教务信息管理系统
2014年12月10日
湖南信息职业技术学院毕业设计
诚信声明
本人郑重声明:
所呈交的毕业设计文本和成果,是本人在指导老师的指导下,独立进行研究所取得的成果。
成果不存在知识产权争议,本毕业设计不含任何其他个人或集体已经发表过的作品和成果。
本人完全意识到本声明的法律结果由本人承担。
毕业设计者签名:
刘攀
2014年11月15日
摘要
近年来,随着计算机技术的发展和互联网时代的到来,我们已经进入了信息时代,也有人称为数字化时代,在这数字化的时代里,学校的教务管理都受到了极大的挑战。
Internet技术持续迅猛的发展,也给传统的办学提出了新的模式。
通过设计和建设网络拓扑架构、网络安全系统、数据库基础结构、信息共享与管理、信息的发布与管理,从而方便管理者、老师和学生间信息发布、信息交流和信息共享。
以现代计算技术、网络技术为基础的数字化教学主要是朝着信息化、网络化、现代化的目标迈进。
作为新型的办学模式,它们具有对于教务管理过程来说极为宝贵的特性,可以为教务管理的建构提供理想的环境。
所以为此开发的教务管理信息系统旨在探索一种以互联网为基础的办学模式。
通过这种新的模式,为学校营造一种新的办学环境,使管理突破时空限制,扩大教务管理规模,提高工作效率和办学水平,使学校管理者、教师和学生可以在任何时候、任何地点通过网络进行资源的共享与信息的交流。
关键字:
信息管理互联网自动化
Abstract
Inrecentyears,withthedevelopmentofcomputertechnologyandtheadventoftheeraoftheInternet,wehaveenteredtheinformationage,alsosomepeoplecalledthedigitalage,inthisdigitalera,theschooleducationaladministrationisundergreatchallenge.ContinuedrapiddevelopmentofInternettechnology,traditionaleducationputsforwardanewmodel.Throughthedesignandconstructionofnetworktopologyarchitecture,networksecuritysystem,databaseinfrastructure,informationsharingandmanagement,informationpublishingandmanagement,andconvenientmanagement,informationrelease,informationcommunicationbetweenteachersandstudentsandinformationsharing.Onthebasisofmoderncomputingtechnology,networktechnologyofthedigitalteachingismainlytoworktowardtheaimoftheinformatizationandnetworking,modernization.Asanewschool-runningmode,theyareextremelyvaluableforeducationaladministrationprocessfeatures,canbetheidealenvironmentfortheconstructionofeducationaladministration.Sothedevelopmentoftheeducationaladministrationmanagementinformationsystemisdesignedtoexploreaninternet-basededucationmodel.Throughthisnewmodel,buildanewschoolfortheschoolenvironment,makethemanagementbreakthroughtimeandspacelimit,expandthescaleofeducationaladministration,improvetheworkefficiencyandmanageriallevel,maketheschooladministrators,teachersandstudentscanatanytime,anyplacethroughthenetworkresourcessharingandinformationexchange.
Keywords:
informationmanagementoftheInternetautomation
第一章绪论
Ø1.1研究背景
近年来,随着计算机技术的发展和互联网时代的到来,我们已经进入了信息时代,也有人称为数字化时代,在这数字化的时代里,学校的教务管理都受到了极大的挑战。
Internet技术持续迅猛的发展,也给传统的办学提出了新的模式。
通过设计和建设网络拓扑架构、网络安全系统、数据库基础结构、信息共享与管理、信息的发布与管理,从而方便管理者、老师和学生间信息发布、信息交流和信息共享。
以现代计算技术、网络技术为基础的数字化教学主要是朝着信息化、网络化、现代化的目标迈进。
作为新型的办学模式,它们具有对于教务管理过程来说极为宝贵的特性,可以为教务管理的建构提供理想的环境。
所以为此开发的教务管理信息系统旨在探索一种以互联网为基础的办学模式。
Ø1.2研究目的和意义
该软件设计的目的和意义在于通过这种新的模式,为学校营造一种新的办学环境,使管理突破时空限制,扩大教务管理规模,提高工作效率和办学水平,使学校管理者、教师和学生可以在任何时候、任何地点通过网络进行资源的共享与信息的交流。
同时希望通过本次课题设计达到以下目的:
(1)巩固所学的知识,学会通过各种途径查找资料。
(2)能够把所学的理论知识联系实际,解决实际问题。
(3)掌握项目设计流程与开发流程。
Ø1.3研究内容
目前,一些管理采用手工管理模式,对信息的管理与维护非常不便利,所以设计一个教务信息管理系统是十分必要的。
基于以上的问题,此教务管理信息系统至少应具有以下的五大功能模块。
(1)登录模块:
因为引入了管理员、教师还有学生,在管理中就必须能够对其进行身份验证,使不同的用户拥有不同的权限和功能。
这个模块的功能,就是根据用户存入数据库的信息在用户登录的时候对用户的身份和密码进行校对验证。
(2)管理员模块:
管理员在登录成功后,可以对学生和教师信息进行管理,查看所有学生和教师信息,添加新学生和教师,更改学生和教师信息以及删除学生和教师信息。
还应该根据课程组织排课,利用相应的课程安排信息来统一的管理,并可以对课程安排信息进行必要的修改。
(3)教师模块:
教师登录成功以后,可以对自己的初始默认密码进行修改,查看登录教师自己所教课程的具体信息,并且应该显示选择某课程的所有学生,同时对学生进行接收操作,在经过一段时间的授课后,教师可以对选择自己课程的学生公布成绩,根据成绩的高低,来自动决定是否给学生相应的学分。
(4)学生模块:
学生登录成功后,显示出登录学生本学期可以选择的课程,学生可以根据自己的情况来决定是否选择该课,并进入相应的课程可以选择由不同老师的授课,达到一个双向选择的权利。
同样,学生可以查看自己的成绩,同时显示出同学所得的学分。
(5)权限管理模块:
权限管理应该分为登陆权限管理、管理员权限、教师权限以及学生权限,不同的人员登陆后拥有不同的权限,同时不能越权访问,并且所有操作必须登陆后才能进行操作。
Ø1.4国内(外)发展概况
现在国内外关于无纸化信息管理系统多不胜数,所有系统基本上都是大同小异,能够很好地解决所存在的问题,在国内外并已得到普遍的应用,但是在中国的小型城市和乡镇的使用率却很低,原因是在于有些操作不是那么直观化,本系统操作简单,非常直观化。
Ø1.5指导思想
本系统的主要思想采用的JAVA的面向对象的编程思想,面向对象的好处在于:
1、维护简单
模块化是面向对象编程中的一个特征。
实体被表示为类和同一名字空间中具有相同功能的类,我们可以在名字空间中添加一个类而不会影响该名字空间的其他成员。
2、可扩充性
面向对象编程从本质上支持扩充性。
如果有一个具有某种功能的类,就可以很快地扩充这个类,创建一个具有扩充的功能的类。
3、代码重用
由于功能是被封装在类中的,并且类是作为一个独立实体而存在的,提供一个类库就非常简单了。
事实上,任何一个.NETFramework编程语言的程序员都可以使用.NETFramework类库,.NETFramework类库提供了很多的功能。
更令人高兴的是,我们可以通过提供符合需求的类来扩充这些功能。
Ø1.6主要解决问题
根据现有计算机技术和网络技术的发展及应用情况,利用网络实现教务信息管理,系统高效的事务处理机制和信息管理模式,为学校的教务工作提供直观的评价数据,为提高教务工作效率和推进高校教学改革提供了重要的参考依据,系统和数字校园其他管理系统实现统一身份认证、协同工作、数据共享,是高校教务的得力助手,而且充分的体现其在效率经济等方面的优越性,具有很大的利用价值。
第二章系统设计
Ø2.1设计方案论证
教务信息管理系统的开发模型为瀑布模型也称软件生存周期模型,在这一生存周期模型中可行性分析是整个过程的第一个阶段,开发任何一个基于计算机的系统,都会受到开发时间和开发资源上的限制。
因此,在接受项目之前必须有根据的进行可行性分析。
可行性分析包括技术可行性、法律可行性和开发方案的选择性。
从技术可行性分析上来讲,将根据社会应用中提出的各种对该系统功能的要求来完成程序的界面的设计,根据各种基本信息的要求来决定数据库的设计,技术可行性分析是系统开发过程中难度最大的工作。
由于系统分析和定义过程与系统技术可行性评估过程同时进行,这时系统目标,功能和性能的不确定性会给技术可行性带来许多困难。
如果在开发的过程中技术可行性的工作出现分析上失误,就会对整个系统的后期的工作产生许多不可预见的问题和影响,有可能导致整个系统开发的失败。
本系统将使用当前最为流行的MVC进行编程。
MVC中的JSP的设计目标主要是提供一种更为简便、有效的动态网页编写手段,并且增强网页程序的独立性,兼容性和可重用性。
它是通过以下几个方面加以实现的:
(1)技术可行性:
在现有的网络技术和计算机技术的基础上,利用JSP语言,Java语言、SSH以及MYSQL是完全可以实现的。
并且方便了用户的使用还有管理者的维护。
(2)方案的可行性:
可为教务信息管理设计出多套开发方案,从中反复的挑选,最后找出了一套最适合本系统的方案——基于瀑布模型的开发方案。
Ø2.2数据库
⏹2.2.1数据库概述
数据库为程序的灵魂,程序的任何操作都离不开数据库,并且数据库设计的好坏直接影响后续程序的开发,所以一个项目应当首先设计好数据库。
系统的总体E-R图如下所示。
图2-1总E-R图
统实体的E-R图如下所示。
图2-2管理员实体图
图2-3课程安排实体图
图2-4课程实体图
图2-5教师实体图
图2-6学生实体图
图2-7成绩实体图
⏹2.2.2数据库表设计
根据功能模块设计的结果可知,本系统的用户有管理员、学生和教师3类,在系统中要记录用户的数据。
用于管理用户、学生和教师的性质和操作功能大不相同,因此在此系统中要分别进行数据记录。
首先需要如下3个数据实体。
(1)管理员数据实体:
只需要记录管理员的登录名(编号)、姓名和密码,其中登录名和密码是进行管理功能模块登录验证时所必须的。
该表存放管理员的初始信息,其中具体包括管理员编号、姓名以及密码等信息,管理员编号是本表的主键,每个管理员的编号和密码都是在数据库中自行给的,这样在系统最开始运行的时候管理员可以根据自己的信息进入系统。
表2-1Admin管理员信息表
编号
字段
说明
类型
字段大小
1
Id
管理员编号(主键)
Int
6
2
Name
姓名
Varchar
10
3
Password
密码
Varchar
10
(2)学生数据实体:
包括学生号、密码、学生姓名、性别、学生所在系、籍贯。
这些信息中密码由自己来维护,管理员在学生入学时根据填写的信息初始化学生信息,在以后的维护的过程中特殊情况下对信息进行各种操作。
该表存放了学生的基本信息,本表的主键是学生编号,在学生登录时会从该表中取得学生的信息来验证登录用户是否合法,在学生查看成绩的时候会从该表中调用学分来显示,按照成绩是否合格来决定是否给予相对应的学分。
表2-2Student学生信息表
编号
字段
说明
类型
字段大小
1
Id
学生编号(主键)
Int
9
2
Name
姓名
Varchar
10
3
Password
密码
Varchar
10
4
Jiguan
籍贯
Varchar
5
5
Department
所属部门
Varchar
10
6
Sex
性别
Varchar
2
7
Mark
学分
Varchar
2
(3)教师数据实体:
包括教师号、密码、教师姓名、职称。
这些信息由管理员初始化好,如果有所改动都要由管理员维护。
该表存放了教师的基本信息,本表的主键是教师编号,在教师登录的时候,会从该表中取得教师的信息来验证登录用户是否合法。
表2-3Teacher教师信息表
编号
字段
说明
类型
字段大小
1
Id
教师编号(主键)
Int
4
2
Name
姓名
Varchar
10
3
Title
职称
Varchar
4
4
Password
密码
Varchar
10
除了以上3个系统用户实体,作为教务管理信息系统是用来对学生课程、成绩管理的一个系统,对于学校这样一个机构中当然少不了课程和班级。
这就需要如下的两个数据。
(4)课程数据实体:
用以记录所有课程的基本信息,主要记录课程的课程号、课程名、学分、系别和预选修课程。
这些信息由学校的工作人员以管理员身份登录进行维护。
该表存放的是课程的基本信息,课程编号是该表的主键,它连接了班级表,可以和其它表一起用来显示所要查看的课程的信息,在学生登录是只显示该学生本学期可以选择的课程。
表2-4Course课程信息表
编号
字段
说明
类型
字段大小
1
Id
课程编号(主键)
Int
4
2
CourseName
课程名
Varchar
10
3
Mark
学分
Int
2
4
Xueqi
学期
Varchar
9
5
Dep
所属部门
Varchar
10
(5)课程安排数据实体:
用以记录课程安排的基本信息,包括课程安排号、教师、课程、教室和上课时间。
这些数据由管理员进行入录和维护。
该表存放课程安排表的基本信息,课程安排编号是该表的主键,在管理员维护课程安排信息和学生查选课程的时候会调出该表,可以利用该表将教师与课程联系起来,管理员可以对该表进行管理,学生和教师只可以利用该表外连接其它的表来查看自己需要的信息。
表2-5classes课程安排信息表
编号
字段
说明
类型
字段大小
1
Id
课程安排编号(主键)
Int
5
2
Tea_id
教师号
Varchar
4
3
Cour_id
课程号
Varchar
4
4
Room_id
教室号
Varchar
4
5
Cour_time
上课时间
Date
10
以上的5个实体都是基本的数据实体,作为教务管理系统,是要记录学生选课和学分情况的,因此要有教务数据实体。
(6)教务数据实体:
包括学生号,所上课班级、是否被老师接受和所给学分。
该表存放了学生的成绩基本信息,其中Stu_id和Class_id为外键,通过外键可以查看到相应的学生和班级,在学生进行选课和查看成绩时都会用该表,在教师决定是否接受学生的选课和给学生成绩的时候也会用到该表。
表2-6Enrol学生成绩信息表
编号
字段
说明
类型
字段大小
1
id
主键
Int
9
2
Stu_id
学生编号(外键)
Int
9
3
Class_id
课程安排编号(外键)
Int
5
4
Accept
是否被接受
Varchar
1
5
Score
成绩
Varchar
3
⏹2.2.3数据库连接
本项目在连接后台数据库时用的是Java的开源框架Hibernate3.0技术,Hibernate是一个持久化框架,提供了一个具体的ORM解决方案。
hibernate实现对象和封装数据库,对象属性和数据库表列的映射,并实现他们之间的自动转化工作。
hibernate内部封装了jdbc操作实现底层的对数据库的读写,对上层提供了对实体对象保存、更新、删除、检索的面相对象的API。
使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库,Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
使用hibernate实现持久层,使得开发人员可以以面向对象的思想进行持久化工作。
本项目Hibernate对数据库操作的事务控制是交给Spring来进行统一管理的,事务管理一有两种,全局事务和本地事务,2种事务都比较明显的缺陷。
全局事务:
全局事务允许跨多个事务资源的事务管理(通常是关系数据库和消息队列),应用服务器通过JTA(一个很复杂的api)管理全局事务,此外,一个JTA的事务通常通过JNDI进行资源查找,即如果你想使用JTA就必须连带使用JNDI。
JTA通常只能在应用服务器环境下使用,显然使用全局事务会限制应用代码的重用性。
更好的方式是通过EJBCMT提供全局事务管理,CMT是一种声明式的事务管理。
EJBCMT移除了事务相关的JNDI查找,虽然使用EJB本身就需要使用JNDI,但这确实节省了大量的事务管理代码(并不是全部),重大缺陷是CMT绑定在JTA以及应用服务器环境上,并且你必须选择EJB来处理业务逻辑。
EJB太庞大,并不是一个很吸引人的选择(仅仅是为了增加全局事务就使用EJB,确实....)。
本地事务:
本地事务则和底层所使用的持久化技术有关(使用JDBC处理持久化,事务管理需要JDBC中的connection对象,使用hibernate处理持久化,事务管理需要hibernate中的session对象),比起全局事务,本地事务更易使用,但是也有明显的缺陷:
1,不能跨事务资源,例如:
使用JDBC事务来进行事务管理的代码在JTA全局事务环境下就不能运行。
2,使用本地事务,由于应用服务器不需要参与事务的管理,因此不能保证跨多个事务性资源的事务正确性(不需要特别注意这种情况,大多数应用使用单个事务资源)。
3,显然事务管理和代码是耦合的,具有侵入性(这也是前面缺陷1的产生原因)。
spring事务管理:
spring解决了全局事务和本地事务的缺陷,允许应用开发者在任何环境下使用一致的编程模型。
spring同时支持编程式事务管理和声明式事务管理。
当使用spring编程式事务管理时,开发者直接使用spring框架的事务抽象(事务抽象这个翻译有点拗口,原文为:
transactionabstraction,不同具体事务策略的统一抽象接口,面向接口编程),使应用程序可以运行在任何具体的底层事务基础之上。
当使用spring声明式事务管理时,只需编写少量和事务相关的代码即可(只需编写一些spring配置文件),这些代码和spring的事务api或任何其他的事务api都没有耦合。
显然spring的声明式事务管理更加简单易用。
本项目采用的是编程式事务管理。
下列代码段给出了本系统与数据库连接的方法和数据库的事务管理代码:
数据库连接配置:
xmlversion='1.0'encoding='UTF-8'?
>
DOCTYPEhibernate-configurationPUBLIC
"-//Hibernate/HibernateConfigurationDTD3.0//EN"
"
--GeneratedbyMyEclipseHibernateTools.-->
org.hibernate.dialect.MySQLDialect
jdbc:
mysql:
//localhost:
3306/school
root
root
com.mysql.jdbc.Driver
School
true
true