学生成绩管理系统毕业设计Word格式.docx
- 文档编号:21365104
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:39
- 大小:566.73KB
学生成绩管理系统毕业设计Word格式.docx
《学生成绩管理系统毕业设计Word格式.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统毕业设计Word格式.docx(39页珍藏版)》请在冰豆网上搜索。
1、研究现状
学生成绩管理是教学过程中的一个重要环节,工作量繁重而且易出错。
它包括学生成绩汇总,每个学生成绩单的填写和发放,教师对学生成绩的统计分析,学生名次的排列,以及不及格人数统计和,并且为不及格的学生安排补考和补考成绩的填写等很多复杂的方面。
人工完成这些工作,不仅费时费力,而且一不小心就会出错。
使用数据库技术进行数据处理,将很大程度上解决这个问题。
编写一个适合学校使用的学生成绩管理系统,可以把工作人员从繁重的工作里解放出来,不但能节约人力,而且提高了工作效率,减少了出错的频率。
这对于学校来说,是一个十分划算的方法。
2、技术和工具
2.1、C/S结构和B/S结构的对比分析
本系统采用B/S结构,即浏览器\服务器结构。
B/S结构是在C/S结构(客户机/服务器结构)的基础上建立的,这种结构使用户界面完全通过浏览器实现,并采用三层体系结构,解决了两层体系结构中的缺点。
把应用逻辑独立出来形成一个中间层,中间层存在于客户层与存储层之间。
比传统C/S结构更加优越。
优点有以下几方面:
(1)、系统一般只有初期一次性投入成本,维护和升级简单,成本低。
B/S结构的客户端只是浏览器,维护和升级只需在服务器进行,无论有多少用户使用,都不会影响服务器升级。
而C/S结构对客户端要求很高,每个客户端必须安装应用软件,升级对象包括客户机和服务器,相当于重新设计系统,工程浩大。
(2)、使用更加方便灵活,X围广。
B/S结构建立在广域网上,对客户端没有要求,只要能够进入浏览器,用户可以在任一台电脑上登录系统,查询成绩信息。
C/S结构作用与局域网,对客户端要求高,适用X围小,用户离开固定区域,便无法进入系统,如学生放假回家就不能查询成绩。
(3)、数据响应及时,实时性高。
B/S结构可以看到当前进行的业务,方便快速处理,而C/S结构只能给出事后数据。
(4)、数据一致性高。
B/S结构的一切数据都存放在总服务器中,对数据的修改也是在服务器中进行的,任何用户都可以得到一致的信息。
而C/S结构同步性较差,一个地方出现缺陷,整个系统都必须重新部署,来保证数据一致,效率低。
2.2、JSP开发工具介绍
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
JSP在多个方面加速了动态Web页面的开发,有以下几个方面的优点:
(1)、将内容的生成和显示进行分离
使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。
使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求XX信息或者特定的一瓶酒的价格)。
生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。
如果核心逻辑被封装在标识和Beans中,那么Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。
这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。
(2)、强调可重用的组件
绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise
JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。
开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。
基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
(3)、采用标识简化页面开发
Web页面开发人员不会都是熟悉脚本语言的编程人员。
JavaServer
Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。
标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。
通过开发定制化标识库,JSP技术是可以扩展的。
今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。
这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。
(4)、强大的可伸缩性
从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(5)、平台适应性更广
这是JSP比ASP的优越之处,几乎所有的平台都支持Java、JSP+JavaBeans,他们可以在任何平台下畅通无阻。
从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。
另外,JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。
作为采用Java技术家族的一部分,以及Java
2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。
由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java
Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。
作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。
随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。
当与Java
2平台,企业版(J2EE)和Enterprise
JavaBeans技术整合时,JSP页面将提供企业级的扩展性和性能,这对于在虚拟企业中部署基于Web的应用是必需的。
2.3、J2EE架构介绍
J2EE(Java2Platform,EnterpriseEdition)以Java2为技术基础,是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规X应用系统的开发与部署,进而提高可移植性、安全与再用价值。
J2EE核心是一组技术规X与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,,企业内部或外部难以互通的窘境。
J2EE平台使用了一个多层的分布式应用程序模型,该模型具有重用组件的能力、基于扩展标记语言的数据交换、统一的安全模式和灵活的事务控制。
典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。
三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。
客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。
J2EE的具体实现采用三大核心框架:
Struts、Spring、Hibernate。
下面简单介绍一下三种核心框架。
2.3.1、Struts框架
Struts最早是作为ApacheJakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServerPages、Servlet、标签库以及面向对象的技术水准。
Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。
这个框架之所以叫"
Struts"
,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。
这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。
Struts是一种基于MVC经典设计模式的开放源代码的应用框架,也是目前Web开发中比较成熟的一种框架。
通过把Servlet、JSP、JavaBean、自定义标签和信息资源整合到一个统一的框架中,为Web开发提供具有高可配置性的MVC开发模式。
和其他的java架构一样,Struts也是面向对象设计,将MVC模式"
分离显示逻辑和业务逻辑"
的能力发挥得淋漓尽致。
Structs框架的核心是一个弹性的控制层,基于如JavaServlets,JavaBeans,ResourceBundles与XML等标准技术,以及Jakartamons的一些类库。
Struts有一组相互协作的类(组件)、Servlet以及jsptaglib组成。
基于struts构架的web应用程序基本上符合JSP。
MVC是"
Model-View-Controller"
的缩写,中文翻译为"
模型-视图-控制器"
。
就像字面的意思,MVC模式的结构是由模型(Model)、视图(View)、控制器(Controller)三部分组成的。
模型:
应用程序的主体部分,用于表现业务数据,或者业务逻辑。
视图:
应用程序中用户界面相关的部分,是用户看到并与之交互的界面。
控制器:
用于根据用户的输入,控制用户界面数据显示,更新Model对象状态。
Struts体系结构实现了MVC设计模式的概念,它将Model、View和Controller分别映射到Web应用的组件。
2.3.2、Spring框架
Spring是一个开源框架,它由RodJohnson创建。
它是为了解决企业应用开发的复杂性而创建的。
框架的主要优势之一就是其分层架构,分层架构允许用户选择使用哪一个框架,这也是Spring与Spring和Hibernate等其它框架不同的地方。
Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。
可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。
然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。
Spring使用基本的JavaBean来完成以前只可能由E完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
Spring框架是一个分层架构,由7个定义良好的模块组成。
Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式。
组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。
2.3.3、Hibernate框架
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用E的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate是一个高性能的ORM持久性和查询服务。
Hibernate不仅管理Java类到数据库表的映射(包括从Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。
它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。
无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。
Hibernate是一个JDO工具,它的工作原理是通过文件把值对象和数据库表之间建立起一个映射关系,这样,只需要操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的。
例如,使用Hibernate的查询,可以直接返回包含某个值对象的列表(List),而不必向传统的JDBC访问方式一样把结果集的数据逐个装载到一个值对象中,为编码工作节省了大量时间。
Hibernate提供的HQL是一种类SQL语言,它和EQL一样都是提供对象化的数据库查询方式,但HQL在功能和使用方式上都非常接近标准的SQL。
2.4、MySQL开发工具介绍
SQL全称是“结构化查询语言(StructuredQueryLanguage)”,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL集数据查询、数据操纵、数据定义和数据控制功能为一体,功能强大且简洁易懂,其主要特点有以下几个方面。
(1)、综合统一。
SQL集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,可以独立完成数据库的所有活动。
对于非关系模型的数据语言来说,数据库运行后,若要修改模式,必须对数据库进行重装,十分繁琐。
使用SQL,用户可以在数据库运行后,随时修改数据库系统的模式,不影响该数据库的运行,而且数据结构单一,实体和实体间的联系都用关系表示,使该语言更加简单。
这些特点使数据库系统拥有良好的可扩展性和统一性,降低了操作复杂性。
(2)、高度非过程化。
非关系数据库的语言是过程化的,必须指定存取路径。
而SQL只需提出做什么,不用管怎么做,由系统自动完成存取路径的选择以及SQL的操作过程,使用户更方便,提高了数据的独立性。
(3)、面向集合的操作方式。
SQL直接对集合进行操作,所有操作如插入、删除、修改等都是针对元组的集合,而不是对一条条的纪录进行逐一操作。
减少了工作量,降低了出错率。
(4)、以同一种语法结构提供多种使用方式。
SQL既是独立的语言,又是嵌入式语言。
它可以独立使用,进行数据库操作,也可以嵌入到如C、Java等高级语言中使用。
而且,不管哪一种方式,语法结构基本不变,使SQL的使用更加灵活方便。
此外,SQL十分接近英语口语,语言简洁,甚至核心动词只有九个,即使是初学者也能快速上手。
3、主要功能
该系统有以下几个功能:
1、密码服务。
每个人都有初始密码,登陆进系统后,用户可以自行修改。
2、管理教师和学生的基本信息,包括学生的XX、学号、性别、班级、联系方式以及每学期所学科目和该科目的任课老师,教师的XX、职员号、性别、联系方式以及所教授的科目等多个方面。
只有管理员有权限使用此功能,对教师和学生的信息进行添加、删除和修改。
3、管理学生成绩。
考试完后,教师可以直接将学生各科目的成绩输入系统,保证了成绩的及时性。
如果出现错误,学生可以向老师申请,经核实有误后由该授课老师对学生的错误成绩进行修改。
4、成绩的查询功能。
教师输入成绩后,所有用户都可在网上查询学生的成绩。
不同用户有不同权限,学生只可查询本人成绩,教师可以查询所有学生成绩。
5、提供操作界面。
针对不同的用户权限,提供不同的操作界面,用户可以通过界面直接使用以上所述功能,操作简单易懂。
4、系统设计
4.1、数据库设计
根据系统的功能要求,主要构造以下几个表:
(1)、学生表:
学生编号、学生XX、性别、、地址、登陆密码、班级号、学号(关键字为学生编号)如下图4.1学生表。
图4.1学生表
(2)、教师表:
教师编号、教师XX、工号、登陆密码、性别、地址、(关键字为教师编号)如下图4.2教师表。
图4.2教师表
(3)、管理员表:
管理员编号、用户名、登陆密码、(关键字为管理员编号)如下图4.3管理员表。
图4.3管理员表
(4)、学年表:
学年编号、学年名、是否为当前学年(关键字为学年编号)如下图4.4学年表。
图4.4学年表
(5)、班级表:
班级编号、班级名称(关键字为班级编号)如下图4.5班级表。
图4.5班级表
(6)、课程表:
课程编号、课程名称、开科学年(关键字为课程编号)如下图4.6课程表。
图4.6课程表
(7)、课程分配表:
课程分配编号、授课教师编号、开课班级编号、课程名称编号(关键字为课程安排编号)如下图4.7课程安排表。
图4.7课程安排表
(8)、成绩表:
成绩编号、成绩分值、学生编号、教师编号、课程编号、学年编号(关键字为成绩编号)如下图4.8成绩表。
图4.8成绩表
4.2、创建映射文件和持久化类
Hibernate映射文件包含了对象/关系映射(O/RMapping)所需的元数据。
元数据包含持久化类的声明和属性到数据库的映射(指向字段和其他实体的外键关联)。
持久化类是指其实例需要被Hibernate持久化到数据库中的类。
持久化类通常都是域模型中的实体域类,一般都是一X数据库表对应一个持久化类。
由上可示,本系统共有8个数据表,需要为每一个数据表编写映射文件和持久化类:
学生表对应的映射文件和持久化类为Student.hbm.xml和Student.java;
教师表对应的映射文件和持久化类为Teacher.hbm.xml和Teacher.java;
管理员表对应的映射文件和持久化类为Admin.hbm.xml和Admin.java;
学年表对应的映射文件和持久化类为Schoolyear.hbm.xml和Schoolyear.java;
班级表对应的映射文件和持久化类为Classes.hbm.xml和Classes.java;
课程表对应的映射文件和持久化类为Course.hbm.xml和Course.java;
课程分配表对应的映射文件和持久化类为Assign.hbm.xml和Assign.java;
成绩表对应的映射文件和持久化类为Score.hbm.xml和Score.java。
4.3、编写DAO层
所谓的DAO(DataAccessObject)层,就是数据访问接口,DAO可以实现对数据库的各种操作。
本系统为每一个数据表编写了一个DAO类。
DAO所执行的操作包括,数据插入,数据修改,以及所有数据查询和按关键字查询。
StudentDAO.java执行对学生表的各种操作,TeacherDAO.java执行对教师表的各种操作,AdminDAO.java执行对管理员表的各种操作,SchoolyearDAO.java执行对学年表的各种操作,ClassesDAO.java执行对班级表的各种操作,CourseDAO.java执行对课程表的各种操作,AssignDAO.java执行对课程分配表的各种操作,ScoreDAO.java执行对成绩表的各种操作。
4.4、功能模块设计
4.4.1、登陆注销模块
登陆注销模块包括login.jsp、LoginAction.java、LogoffAction.java,
(1)、login.jsp提供本系统的登陆界面,获取用户输入的用户名和密码,获取代码如下:
varusername=document.getElementById("
username"
).value;
varpassword=document.getElementById("
password"
login.jsp发送名字为login的action请求,根据struts.xml文件调用LoginAction.java文件,点击登陆按钮后即执行此项操作。
关键代码如下所示:
formaction="
login.action"
method="
post"
onsubmit="
returncheck();
"
LoginAction.java文件处理login.action的请求,根据用户在登陆界面选择的角色,该文件执行不同的操作。
以管理员登陆为例,如果在登陆界面获得的role值为admin,则调用DAO层adminDAO,将获取的用户名和密码与数据库中的数据相对比,若正确,则返回success值,若值不正确,则返回值为input,代码如下所示:
if(role.equalsIgnoreCase("
admin"
))
{
Adminadmin=newAdmin();
admin.setUsername(username);
admin.setPassword(password);
List<
Admin>
aList=adminDAO.findByExample(admin);
)
根据返回值,调用struts.xml文件,即如下代码,返回值为success,转到home.jsp文件,返回值为input,则重新回到login.jsp文件。
<
packagename="
login"
namespace="
extends="
struts-default"
>
<
actionname="
class="
.ssms.action.LoginAction"
<
resultname="
success"
/WEB-INF/jsp/home.jsp<
/result>
input"
/login.jsp<
/action>
(2)、LogoffAction.java提供注销操作,用户进入系统后可在界面上选择注销按钮,即调用struts.xml文件,启用LogoffAction.java文件,以完成用户注销,以学生为例,代码如下,执行注销操作,返回success值。
student"
))
session.removeAttribute("
);
}
session.removeAttribute("
role"
return"
;
映射代码如下,指定LogoffAction.java的路径,得到success返回值,然会返回login.jsp,即回到登陆界面。
logoff"
.ssms.action.LogoffAction"
4.4.2、top.java、home.java文件以及editSuccess.jsp、addSuccess.jsp文件
头文件为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 毕业设计