1、.题目: 基于 Web 的成绩管理系统的设计与实现 姓 名: 指导教师: 专 业: .摘 要随着信息技术的普及和推广,计算机网络已经成为生活和工作必不可少的有力工具。对于学校而言,实现办公自动化将大大提高学校管理的工作效率。成绩管理系统对于学校实现办公自动化化将起到重要作用。本文的基于 Web 的成绩管理系统,采用 SSH(Struts+Spring+Hibernate)作为网络编程框架,选择 MySQL 设计数据库,并使用优秀的开发工具 MyEclipse,能良好的支持数据库应用。本系统主要实现对学生成绩的管理,包括用户管理、学生成绩的录入、修改、删除、查询和统计等方面。系统开发主要包括建立
2、和维护后台数据库以及前端应用程序两个方面。本文主要介绍成绩管理系统的可行性分析、需求分析、系统设计和系统实现等。关键词:成绩管理,Web,数据库,SSH.AbstractAs Information technology have been used world widely, Computer Network is an powerful tool both for our life and work. For instance, office automation will maximum shools working efficiency. Score management system
3、 is of great importance to the achievement of office automation .This text of the performance management system based on Web, applies SSH as its network progamming frame, select MySQL as its tool of designing database, MyEclipse as its development tool. This system is in charge of score management,
4、including user management, score input, score inquiry, score adding and amending. System development falls into two aspects: 1. establish and maintain backend database.2. develop front end application programs. This dissertation mainly lays its emphasis on the feasibility analysis, demand analysis,
5、system design and system realization of score management system. Key words: score management,Web ,database ,SSH.目 录摘 要 .IABSTRACT.II目 录 .III第一章 引 言 11.1 课程背景 11.2 目的和意义 1第二章 开发工具简介 .32.1 MVC 设计模式 32.2 SSH 架构 32.2.1 Struts2.32.2.2 Spring42.2.3 Hibernate352.3 MYSQL 数据库 .6第三章 系统分析 .83.1 可行性分析 83.1.1 经济
6、可行性 83.1.2 技术可行性 83.1.3 运行和操作可行性 83.1.4 法律可行性 83.2 需求分析 93.3 E-R 图 9第四章 系统设计 114.1 总体设计 .114.2 功能模块设计 .114.3 数据库设计 .13第五章 系统实现 155.1 登录模块 .155.1.1 登录界面 .15.5.1.2 系统首页 .165.2 菜单模块 .165.3 用户信息模块 .185.3.1 公共信息 .185.3.2 课程信息 .185.3.3 教师信息 .205.3.4 学生信息 .205.3.5 班级信息 .215.4 成绩管理模块 .225.4.1 成绩录入 .225.4.2
7、成绩查询 .22第六章 总结 27参考文献 .28致 谢 .29.1 概论1.1 课程背景随着多媒体教学的推广,电脑和网络的普及,人民对于电脑的应用已经不再陌生。目前社会上信息管理系统发展飞快,在各级各类的学校中,学生成绩管理一直都是学校工作中的一项重要内容,因为学生工作的很多方面都需要它的支持,比如奖学金的评定、学生就业推荐书的书写、学生档案的建设等等。随着学校办学规模的扩大和招生人数的增加,学生成绩管理成为一项十分繁重的工作。为了解决这一问题,有必要开发一套功能强大,操作简单,具有人性化的成绩管理系统,使计算机在学生成绩处理的领域中发挥高效灵活的功能。因此为了充分利用计算机硬件资源,做好学
8、生成绩管理工作,提高工作效率,实现全面的、相对集中的办公自动化,开发本系统就成了当务之急。Internet 和 Web 的迅猛发展使数据库技术也开始与 Web 产生了紧密的联系,一种新兴的技术Web 数据库技术出现了,并且开始在数据库的应用中发挥着越来越重要的作用。高校校园网的迅速普及,使成绩管理软件能充分依托校园网,实现教务信息的集中管理、分散操作、信息共享,使传统的教务管理朝数字化、无纸化、智能化、综合化的方向发展。基于 Web 的成绩管理系统利用JSP 技术与 Web 数据库想结合实现,具有数据输入、查询修改等功能,应用该系统可大大提高工作效率,并为进一步完善计算机教务管理系统和全校信息
9、系统打下良好的基础。1.2 目的和意义本系统的研究意义主要是改变以往的成绩管理模式,改人工手动管理为计算机网络化管理。使学校在处理学生成绩的问题上,变得更加方便和快捷。同时可以降低了人工管理的错误率,提高了数据的安全性。随着教育的发展、高校规模的扩大、学生人数的增加,对学生各种信息的汇总、统计、分析等管理工作面临着很多困难。如果高校对学生各种信息的管理通过手工整理等方式来处理完成的,那么在这个工作过程中奖花费大量的人力和时间,而且查询各种.信息也不方便不准确,影响了各级领导和学生管理部门对学生信息的及时掌握和分析。运用学生成绩管理系统可以减轻学校教学人员的工作量,加快查询速度,加强管理,还有就
10、是缩小开支,提高工作效率与准确率。学生成绩管理系统的应用也为今天的高校教育在未来市场的竞争力的提高打下坚实的基础。本系统利用网络这个平台,充分利用了网络的快捷性,提高教育的时效性,使学生随时随地查询自己的学习情况,达到促进学生自主管理的目的,提高教师对学生管理工作的效率,让老师及时掌握学生学习上的动态。而且通过本课题的研究,能够充分了解网络数据库的相关知识,培养网络软件开发的能力,提高实践操作和知识的综合运用能力。.2 开发工具简介2.1 MVC 设计模式MVC1是 Model-View-Controller 的简称,即模型-视图-控制器。MVC 是目前最流行的 Web 应用设计模式,它可以灵
11、活、动态地设计开发系统,有利于修改和扩展简化程序,有利于代码重复使用。模型:用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。模型用来封装和显示数据对象。视图:把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。控制器:是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图具有一个控制器。使用 MVC 的优点:(1)用户在视图界面上发出请求;(2)可以很容易地用新
12、的实现来替换原有层次的实现;(3)可以降低层与层之间的依赖;(4)有利于标准化;(5)有利于各层逻辑的复用。总的来说,MVC 设计可以达到如下目的:分散关注、松散耦合、逻辑复用、标准定义。2.2 SSH 架构2.2.1 Struts2Apache Struts2 是 一 个 优 雅 的 , 可 扩 展 的 JAVA EE web 框 架 。 它采用.MVC 模式,能够很好地帮助 java 开发者利用 J2EE 开发 Web 应用。和其他的Java 架构一样,S truts2也是 面向对象设计,将 MVC 模式“分离显示逻辑和业务逻辑”的能力发挥得淋漓尽致。 Web 应 用 都 是 请 求 -响
13、 应 的 程 序 结 构 。 程 序 是 由 客 户 端 client 发 出 http请 求 开 始 的 , 客 户 端 请 求 被 ActionServlet 拦 截 。 在 ActionServlet 处 , 通 常有 2 种 情 况 : 要求逻辑控制器处理的请求以及单转发的请求。系 统 主 要 以 第 一种 请 求 为 主 , 即 ActionServlet 需 要 调 用 对 应 的 Action。 因 此 , ActionServlet将 请 求 转 发 到 Action, 如 果 请 求 还 配 置 了 响 应 的 FormBean, 则ActionServlet 还 负 责 用
14、 请 求 参 数 填 充 ActionForm。 此 时 的 Action 无 须 从HTTP Request 中 获 取 请 求 参 数 , 而 是 从 ActionForm 中 或 得 请 求 参 数 。Action 或 得 请 求 参 数 后 , 调 用 Model 对 象 由 JavaBean 处 理 用 户 请 求 。Action 处 理 完 用 户 请 求 之 后 , 将 处 理 结 果 包 装 秤 ActionForward, 再 回 送 给ActionServlet。Struts2框架的大概处理流程如下: (1)加载类(F ilterDispatcher) (2)读取配置(st
15、ruts 配置文件中的 Action) (3)派发请求(客户端发送请求) (4)调用 Action(F ilterDispatcher)从 struts 配置文件中读取与之相对应的Action(5)启用拦截器(W ebWork 拦截器链自动对请求应用通用功能,如验证) (6)处理业务(回调 Action 的 execute()方法) (7)返回响应(通过 execute 方法将信息返回到 FilterDispatcher) (8)查找响应(F ilterDispatcher 根据配置查找响应的是什么信息如:SUCCESS、E RROER,将跳转到哪个 jsp 页面) (9)响应用户(j sp-
16、客户浏览器端显示)2.2.2 SpringSpring3是一个开源框架,由 Rod Johnson 创建。它视为了解决企业应用开发的复杂性而创建的。S pring 使用基本的 JavaBean 来完成以前只能由 EJB.完成的事情。然而,S pring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益.简单来说,S pring 是一个轻量级的控制反转( IoC)和面向切面(A OP)的容器框架。轻量从大小和开销两个方面而言 Spring 都是轻量的。 Spring 应用中的对象不依赖于 Spring 的特定类。控制反转S p
17、ring 通过 IoC 技术促进了松耦合。当应用其的时候,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。可以理解成为 IoC 和 JNDI 相反。面向切面S pring 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们不负责其他的系统级关注点,例如日志或事务支持。容器S pring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器。然而,S pring 不应该被混同于传统的重量级 EJB 容器,它们经常是庞大与笨重的,难以使用。框架S pring 可以
18、将简单的组建配置、组合成为复杂的应用。在 Spring 中,应用对象被声明式地组合,典型地是在一个 XML 文件中。S pring 也提供了很多基础功能(事务管理、持久化框架集成等) ,将应用逻辑的开发留给了你。2.2.3 Hibernate3Hibernate4是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从 Java 类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用 JDBC 和 SQL 来手工操作数据库,Hibernate 可以大大减少操作数据库的工作量。 另外 Hibe
19、rnate 可以利用代理模式来简化载入类的过程,这将大大减少利用 Hibernate QL 从数据库提取数据的代码的编写量,从而节约开发时间和开发成本 Hibernate 可以和多种 Web 服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器。.Hibernate 技术本质上是一个提供数据库服务的中间件。它的架构如图 2.4所示:图 2-1Hibernate 架构图 2-1 显示了 Hibernate 的工作原理,它是利用数据库以及其他一些配置文件如 Hibernate .properties ,XML Mapping 等来为应用程序提供数据持久化服务的。Hibernate
20、 具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供 JDBC 连接,并且自行管理事务,这种方式使用了 Hibernate 的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的 JDBC/JTA API 都被抽象了,Hibernate 会替你照管所有的细节。2.3 MySQL 数据库MySQL5是一个小型关系型数据库管理系统,开发者为瑞典 MySQL AB公司。MySQL AB 是一家基于 MySQL 开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL 是MySQL AB 的注册商标
21、。MySQL 的 SQL“结构化查询语言 ”。SQL 是用于访问数据库的最常用标准化语言。MySQL 软件采用了 GPL(GNU 通用公共许可证).。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。MySQL 是一个快速的、多线程、多用户和健壮的 SQL 数据库服务器。MySQL 服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。2.3.1MySQL 是一个数据库管理系统数据库是一个结构化的数据集合。如果要对存储在计算机数据库中的大量数据进行添加
22、、访问等处理,你就需要一个像 MySQL 这样的数据库管理系统。数据库系统在计算机处理中和独立应用程序或其他部分应用程序一样扮演着重要的角色。2.3.2MySQL 是一个关系数据库管理系统关系数据库把数据存放在分立的表格中,这比把所有数据存放在一个大仓库中要好得多,这样做将增加你的速度和灵活性。“MySQL”中的 SQL 代表“Structured Query Language”(结构化查询语言)。SQL 是用于访问数据库的最通用的标准语言,它是由 ANSI/ISO 定义的 SQL 标准。 SQL 标准发展自 1986年以来,已经存在多个版本:SQL-86,SQL-92,SQL:1999,SQ
23、L:2003,其中SQL:2003 是该标准的当前版本。2.3.3MySQL 是开源的开源意味着任何人都可以使用和修改该软件,任何人都可以从 Internet 上下载和使用 MySQL 而不需要支付任何费用。如果你愿意,你可以研究其源代码,并根据你的需要修改它。MySQL 使用 GPL(GNU General Public License,通用公共许可) ,在 hpt:/www.fsf.org/licenses 中定义了你在不同的场合对软件可以或不可以做什么。如果你觉得 GPL 不爽或者想把 MySQL 的源代码集成到一个商业应用中去,你可以向 MySQL AB 购买一个商业许可版本。.3 系
24、统分析3.1 可行性分析3.1.1 经济可行性系统的经济可行性是指分析学校的经济状况和投资能力,估算系统建设、运行和维护的费用,估计系统建成后取得的效益。目前,计算机价格已经十分低廉,计算机性能却有了质的飞跃。开发本系统为学校的工作效率带来了长足的进步,为此主要表现有以下几个方面:第一,运行本系统可以方便查询和管理学生信息;第二, 运行本系统可以节省人力和物力;第三, 运行本系统可以提高学校的工作效率;第四,本系统可以减少信息管理的错误率。所以,本系统的开发在经济上是可行的。3.1.2 技术可行性本系统通过网络和网页实现,校园网的覆盖为实现学生成绩管理系统打下了基础。使用支持动态网页的 JSP
25、 技术,利用支持多用户的 MySQL 作为本系统的数据库,它适用于大中规模的数据量需求。使用 MyEclipse 7.5 作为系统开发的开发环境,M yEclipse 是 Eclipse 的插件,也是一款功能强大的 JavaEE集成开发环境,支持代码编写、配置、测试以及除错。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。3.1.3 运行和操作可行性本系统是小型的学生信息管理系统,所需要的资源比较小,学校电脑的硬.件和网络都能够满足条件,因此,本系统在运行上是可行的。本系统使用方便,界面简洁,直观易懂,无论是学生还是教师都可直接上手,管理员通过简单的
26、培训操作本系统也没有问题。3.1.4 法律可行性开发本系统不会侵犯他人利益,不存在侵权问题,不违反国家法律法规,因此具有法律可行性。综上所述,从经济上、技术上、运行操作上都是可行的,所以该开发该系统是可行的。3.2 需求分析在设计系统之前,首先必须确定用户究竟要求软件系统完成什么任务,所以分析阶段的基本任务是了解用户的需求,并将用户的需求用书面形式表达出来。这个阶段还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。系统分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。在全面客观的系统分析的基础上,根据用户提出的系统功
27、能进行相应的功能设计。在互联网飞速发展的今天,对于 21 世纪的教学而言,应该与网路息息相关。许多人还停留在以前的手工操作,这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大的方便,作为高校教务管理工作的一部分,既方便了学生查看成绩、老师的教学管理、更加方便了学校的教务管理。经过调研与可行性分析,出于对教师和学生需求的考虑,设计了这套系统,成绩管理系统主要包括:(1)用户信息模块:管理员可以对课程信息、教师信息、学生信息进行录入和修改;在用户登录方面,对用户身份进行验证,防止非法用户登录,管理员对用户分配初始密码;在个人管理方面,对
28、用户个人信息进行维护,如修改密码、联系方式。(2)成绩录入:任课教师对本课程成绩进行录入和校验。.(3)成绩查询:学生只能对自己的学期各科成绩进行查询;教师能对自己所任课程进行查询;班主任能对本班级各科成绩以及本班中的学生进行全科成绩进行查询;管理员可以对所有学生成绩进行查询。(4)成绩管理:管理员可以对各科成绩包括补考成绩进行添加、修改、删除操作。 3.3 E-R 图根据学生成绩管理系统的分析得到系统的 E-R 图,如图 3-1 所示。图 3-1 成绩管理系统 E-R 图成绩管理系统中各实体之间的关系如下:(1)学生信息与成绩信息:1M;(2)班级信息与学生信息:1M;(3)学生信息与课程信
29、息:NM;(4)教师信息与班级信息:NM;(5)角色信息与学生信息:1M;(6)角色信息与教师信息:1M;(7)班级信息与班级课程信息:NM;(8)课程信息与班级课程信息:NM。.4 系统设计4.1 总体设计根据前面的需求分析,我们将系统划分为如下的三大功能模块。 管理员管理模块重点是学生管理、教师管理、课程管理、班级管理。对学生、教师、课程、班级的管理包括添加、修改、查看。 教师模块包括对学生成绩的录入和查询,以及对自己联系信息的修改。 学生模块主要是学生对自己成绩进行查询,以及对自己的信息进行修改。整个系统的主要结构如图 4-1 所示。学生成绩管理系统教师学生管理员成绩查看 修改信息 成绩
30、录入 成绩查询 教师管理 课程管理 班级管理学生管理修改信息图 4-1 系统模块结构图4.2 功能模块设计 学生和教师是本系统的中心对象。根据模块划分和需求分析可知,该系统的流程主要描述的是当教师对自己所教课程的学生打分以后学生可以登录查询到自己该科目的成绩。该系统包括三个基本流程,适用于管理员、教师、学生。.图 4-2 描述的是管理员的操作流程:首先管理员要进行学生、教师、班级、和课程数据的初始化,这样学生和教师就可以登录使用该系统了。在系统使用过程中,管理员再进行管理工作。管理员登录教师列表学生列表 课程列表班级列表新增 删除修改新增 修改 删除新增 修改 删除新增修改删除图 4-2 管理
31、员的操作流程图 4-3 描述的是教师的操作流程:教师根据管理员提供的初始密码和教师号登录系统。教师登陆系统后可修改密码、个人信息、公布和查询成绩。教师登录所教课程列表个人信息及密码修改对应学生列表 成绩查询打分图 4-3 教师的操作流程图 4-4 描述的是学生操作流程:学生根据学号和初始密码登录系统。学生登录后,可以查询成绩和修改个人信息。.学生登录成绩查询更改个人信息图 4-4 学生的操作流程4.3 数据库设计数据库设计是对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能有效地存取数据,满足用户的信息要求和处理要求。好的数据库结构设计会减少数据库的存储量,数据的完整
32、性和一致性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现难度。在数据库系统开始设计开发的时候应该尽量考虑全面,尤其应该仔细考虑用户的各种需求,避免浪费不必要的人力和物力。在这个数据库管理系统中要建立 7 张数据表: 教师信息表:用于存放所有上课教师的基本信息,其中包括班主任和管理员,如表 4-1。表 4-1 教师信息表列名 列标识 数据类型 长度 空值 主键教师号 Id int 11 no Y名字 Name varchar 45 yes N性别 Sex varchar 20 yes N专业 project varchar 45 yes N电话 phone varchar 45
33、 yes N学院 college varchar 45 yes N角色代码 Roleid int 11 yes N 角色信息表:用于存放所有觉得信息,如表 4-2。表 4-2 角色信息表列名 列标识 数据类型 长度 空值 主键角色代码 Id int 11 no Y角色名称 roleName varchar 45 yes N 学生信息表:用于存放所有学生的基本信息,如表 4-3。.表 4-3 学生信息表列名 列标识 数据类型 长度 空值 主键学号 Id int 11 no Y班级代码 classNo int 11 yes N姓名 Name varchar 45 yes N性别 Sex varch
34、ar 45 yes N专业 project varchar 45 yes N电话 phone varchar 45 yes N学院 college varchar 45 yes N角色代码 Roleid int 11 yes N 课程信息表:用于存放所有开课课程的基本信息,如表 4-4。表 4-4 课程信息表列名 列标识 数据类型 长度 空值 主键课程号 Id int 11 no Y课程名 Name varchar 45 yes N学时 period varchar 30 yes N学分 credits varchar 30 yes N教师号 teacherid int 11 yes N 班级
35、信息表: 用于存放所有与班级相关的信息,如表 4-5。表 4-5 班级信息表列名 列标识 数据类型 长度 空值 主键班级号 Id int 11 no Y班级名 classname varchar 45 yes N班主任 teacherid int 11 yes N 成绩信息表:用于存放所有学生成绩的信息,如表 4-6。表 4-6 成绩信息表列名 列标识 数据类型 长度 空值 主键成绩号 Id int 11 no Y学生学号 stuNo int 11 yes N课程号 courseId int 11 yes N成绩 Score varchar 45 yes N分类 Type tinyint 1
36、yes N学期 Term varchar 45 yes N 班级课程表:用于存放与班级相对应的所有课程信息,如表 4-7。表 4-7 班级课程表列名 列标识 数据类型 长度 空值 主键班级课程号 Id int 11 no Y班级号 classId int 11 yes N.课程号 courseId int 11 yes N5 系统实现5.1 登录模块5.1.1 登录界面用户通过用户名和密码登录系统,如果数据库中不存在用户名和密码则不能登录。图 5-1 为登录界面。图 5-1 登录界面图登录采用的是目前最流行的 JS6框架 jequery7的 Ajax 验证,实现了页面的局部刷新。具体 JS 代
37、码如下:$.post(“login!checkLogin“,username:$(“#name“).val(),password:$(“#pwd“).val(), userType:typeValue,function(data)if (data = “true“)document.logfrom.submit(); else alert(“用户名或者密码错误“ );.,html);5.1.2 系统首页如果登录成功则进入系统,此时不同角色的用户进入不同的界面。以管理员为例,登录成功之后可以看到如图 5-2 所示。图 5-2 管理员系统首页图5.2 菜单模块本系统菜单采用的是 JS 加载方式实现
38、。实现了由 JS 控制的三级菜单。如图 5-3 所示:.图 5-3 管理员管理界面图最上一层是第一级菜单(基本设置,用户管理,成绩管理,报表管理) 。通过第一级菜单可以通过点击事件触发第二级菜单的生成。如图左边所示(课程信息,教师信息,学生信息,班级信息) 。通过第二级菜单可以触发第三级菜单。如图 5-3 左侧增加课程,查看课程等等。具体 JS 代码如下:var test = document.getElementById(“role“).value;var outlookbar=new outlook();var t;t=outlookbar.addtitle(个人信息 ,基本设置 ,1);
39、outlookbar.additem(查看个人资料 ,t,login!personalMessage);outlookbar.additem(修改个人资料 ,t,login!changeUserMsg);outlookbar.additem(更改登录密码 ,t,login!passwordPage);if (test = 管理员) t=outlookbar.addtitle(课程信息 ,用户管理 ,1);outlookbar.additem(增加课程 ,t,course!addCourse);outlookbar.additem(查看课程 ,t,course!listCourse );t=ou
40、tlookbar.addtitle(教师信息 ,用户管理 ,1);outlookbar.additem(增加教师 ,t,teacher!addTeacher);outlookbar.additem(查看教师 ,t,listTeacher);t=outlookbar.addtitle(学生信息 ,用户管理 ,1);outlookbar.additem(增加学生 ,t,student!addStudent);outlookbar.additem(查看学生 ,t,listStudent);t=outlookbar.addtitle(班级信息 ,用户管理 ,1);outlookbar.additem(
41、增加班级 ,t,classmessage!addClass);outlookbar.additem(查看班级 ,t,listClass );t=outlookbar.addtitle(成绩信息 ,成绩管理 ,1);outlookbar.additem(成绩查询 ,t,listScore );if (test != 学生) outlookbar.additem(成绩录入 ,t,score!addScore);if (test = 管理员) t=outlookbar.addtitle(报表信息 ,报表管理 ,1);outlookbar.additem(班级信息 ,t,manframe.jsp);o
42、utlookbar.additem(课程成绩信息 ,t,manframe.jsp);.outlookbar.additem(补考信息 ,t,manframe.jsp);t=outlookbar.addtitle(退出系统 ,基本设置 ,1);outlookbar.additem(点击退出登录 ,t,login!logout);这种菜单的实现风格是采用 js 对象实例化的形式,加载页面的时候,把js 菜单动态加载到页面。5.3 用户信息模块5.3.1 公共信息这部分为各个角色的公共信息,主要由个人信息和退出系统两个大功能,个人信息包括修改个人信息,查看个人信息,修改密码和联系方式。退出系统直接退
43、出系统,清空登录缓存,以免非法登录。如图 5-4 所示。图 5-4 个人信息图其中退出系统时是需要清空 session 中的对象值的,以免用户非法登录,具体代码如下所示:public String logout() throws ExceptionHttpServletRequest request = ServletActionContext.getRequest();HttpSession session1 = request.getSession();session1.invalidate();return “logout“;.5.3.2 课程信息只有管理员用户才可以拥有此功能的操作权限
44、,可以添加,查看并修改课程信息。如图 5-5 所示。图 5-5 管理课程图从图 5-5 中可以看出,查看课程页面做了分页处理,这样是整个页面更加清晰。具体分页代码如下所示:第$page.currentPage/$page.totalPage页 | 首页| 1“首页| 上一页| 1“上一页| 下一页| 下一页| .尾页尾页| 每页显示:$page.maxPerPage条5.3.3 教师信息只有管理员用户才可以拥有此功能的操作权限,可以添加,查看并修改教师信息。如图 5-6 所示。图 5-6 管理教师图上图 5-6 为添加教师页面,管理员可以添加教师信息,同时为用户赋角色,可以是教师,班主任,或者
45、管理员,查看页面同样做了分页,通过查看教师可以看到所有教师信息。.5.3.4 学生信息只有管理员用户才可以拥有此功能的操作权限,可以添加,查看并修改学生信息。添加学生页面如图 5-7 所示。图 5-7 学生管理图管理员同样可以增加新的学生信息,通过选择不同班级,为学生分配班级。5.3.5 班级信息只有管理员用户才可以拥有此功能的操作权限,可以添加,查看并修改班级信息。添加班级页面如图 5-8 所示。.图 5-8 班级管理图每个班级都要指定一个任课教师,可以通过下拉列表动态选择。5.4 成绩管理模块5.4.1 成绩录入此模板为整个项目的核心,主要由任课老师操作,任课老师可以录入自己所任课程学生成
46、绩,管理员虽然拥有成绩录入的权限,但是从效率方面考虑管理员不使用此功能。如果角色为任课老师,则如图 5-9 所示。图 5-9 成绩录入图.首先用户选择课程,选择课程之后会动态加载学生,此次用到了 struts2 框架的 doubleselect8标签 二级下拉列表联动,具体二级下拉列表联动代码如下:成绩可以分为期末成绩和补考成绩,根据类型录入不同的成绩。如果角色为管理员,则可以录入所有课程的信息,页面与上图类似。5.4.2 成绩查询此模板也是整个项目的核心,可以由学生,任课老师,班主任和管理员操作。学生可以查看自己所学课程的所有考试成绩,任课老师可以查询自己所任课程学生成绩,管理员可以查看所有
47、课程的学生成绩,班主任可以查看自己所任课程信息,同时也可以查看自己所带班级的学生课程信息以及针对某一门课程的信息。如果角色为任课老师,则如图 5-10 所示。图 5-10 任课老师成绩查询图任课老师可以选择自己所任的所有课程,并查看各课程的学生成绩情况。选择课程后如图 5-11 所示。.图 5-11 任课老师成绩界面图同时,此处用到了 Jquery 局部刷新,选择课程后,页面不是整体刷新,而只是下拉框以上部分动态刷新。具体局部刷新代码如下:function changeCourse()$.ajax(type: “POST“, url: “score!scoreByCourse“, /conte
48、ntType: “application/x-www-form-urlencoded;charset=utf-8“,data: “courseId=“+$(“#course“).val(),success: function(data)$(“#courseScore“).empty();$(“#courseScore“).html(data);); 这里也是用的 ajax 技术实现的。用户可以编辑或者删除成绩。管理员页面与上图类型,只是管理员可以查看的课程比任课老师多,他可以查看到所有课程的学生成绩情况。如果角色是班主任,可以看到如图 5-12 所示。图 5-12 班主任成绩查询图如图 5-13,班主任可以是任课教师,所有他可以查看自己所任课程信息,