您的当前位置:首页基于Web的评奖评优管理系统的设计与实现

基于Web的评奖评优管理系统的设计与实现

来源:小侦探旅游网
摘要

高校学生评奖评优管理系统是一种方便高校管理评定奖学金以及荣誉称号 的系统。随着信息技术的发展,网上管理已经成为一种习惯,一系列的管理系统 也应运而生。评奖评优是将学校,学院以及学生密切联系起来的一个重要环节, 如果也能够实现在网上操作,无疑也会给评奖评优这项工作带来极大的方便。本 系统是采用MySQL数据库,Java开发语言进行开发的。主要由系统用户管理, 学院基本信息管理,班级基本信息管理,评奖评优项LI信息管理,奖项的各级分 配,班级提交,学院审核这7个部分组成。应用本系统可以明显的提高学校评奖 评优的效率,减少了很大程度上的人工宣传,实际情况进行设 定的,较能满足各大高校评奖评优的需求。

关键词:评奖评优管理系统学院管理信息管理JavaWeb 发

I

并且本系统是根据Abstract

University evaluation system is a convenient management of colleges and universities to assess the scholarship and honorary title system. With the development of information technology, online management has become a habit, a series of management system also came into being. Evaluation and evaluation is the school, college and students closely linked to an important part, if you can also achieve online operation, will undoubtedly give the evaluation of this work to bring great convenience・ The system is the use of MySQL database, Java development language for development. Mainly by the system user management, college basic information management, class basic information management, evaluation and evaluation project information management, awards at all levels of distribution, class submission, college audit of these seven parts. The application of the system can significantly improve the efficiency of school evaluation and evaluation, to reduce the extent of manual publicity, and the system is based on the actual situation set, more able to meet the needs of major university awards evaluation.

Key Words: Evaluation and evaluation management system College management

Evaluation of the awards project information Java Web DevelopeMent

2

摘要

Abstract ------------------------------------------------------------------------------------------------------------- II 1绪论 --------------------------------------------------------------------------- 1

1.1开发背景 ----------------------------------------------------------------- 1 1.2系统简介 ----------------------------------------------------------------- 1 1.3系统的主要特点 ----------------------------------------------------------- 2 1.4发展趋势 ----------------------------------------------------------------- 2 2系统的开发工具 ----------------------------------------------------------------- 3

2. 1 JAVA 简介 -------------------------------------------------------------- 3 2.2 MySQL 简介 ------------------------------------------------------------- 3 2.3 SQL语言简介 ------------------------------------------------------------ 3 2.4 JSP 简介 ---------------------------------------------------------------- 3 2. 5 Servlet 简介 -------------------------------------------------------------- 4 2. 6 JavaScr ipt 简介 ---------------------------------------------------------- 4 3系统分析 ----------------------------------------------------------------------- 5

3.1可行性分析 --------------------------------------------------------------- 5

3.1.1经济可行性 ---------------------------------------------------------- 5 3.1 ・ 2 扌支口J 彳丁*1*^

5

3. 1.3操彳乍可彳亍性----------------------------------------------------- 5 3. 1.4社会可行性 -------------------------------------------------------- 5 3. 2需求分析 ---------------------------------------------------------------- 6 3.3数据流分析 --------------------------------------------------------------- 6 4系统总计设计 ------------------------------------------------------------------- 8

4.1系统功能模块设计 --------------------------------------------------------- 8 4. 2概念结构设计 ------------------------------------------------------------ 8 4. 3数据库的逻辑结构设计 --------------------------------------------------- 12 5系统的详细设计及实现 ---------------------------------------------------------- 15

5. 1登录模块 --------------------------------------------------------------- 15 5. 2管理员主页面 ----------------------------------------------------------- 16

5. 2.1管理用户 ---------------------------------------------------------- 16 5. 2.2管理评奖评优项目信息 ---------------------------------------------- 18 5. 2.3管理学院信息 ------------------------------------------------------ 19 5.2.5评奖评优评定结果 --------------------------------------------------- 20 5. 2. 5设定评定时I、可--------------------------------------------------- 21 5.3学院负责人主页面 -------------------------------------------------------- 21

5. 3.1查看评奖评优项目信息 ---------------------------------------------- 21

3

5. 3.2管理班级信息 ------------------------------------------------------ 22 5. 3.3管理班级用户 ------------------------------------------------------ 23 5. 3. 4待审核 ------------------------------------------------------------ 24 5. 3. 5查看评定结果 ------------------------------------------------------ 25 5. 3.6查看评奖评优历史 --------------------------------------------------- 26 5.4班级负责人主界面 --------------------------------------------------------- 26

5. 4.1评奖评优项目信息 --------------------------------------------------- 26 5. 4.2管理获奖学生信息 --------------------------------------------------- 27 5. 4. 3查看评定结果 ------------------------------------------------------ 28 5. 4.4查看评奖评优历史 --------------------------------------------------- 29

6总结与展望 -------------------------------------------------------------------- 30

6. 1 总结 ------------------------------------------------------------------- 30 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ^^0 参考文献 ------------------------------------------------------------------------ 31 致谢---------------------------------------------------------------------------- 32

4

1绪论

1.1开发背景

现如今是信息时代,计算机已经存在于各行各业,网上办公已经成为一种潮 流一种习惯。为了减少人工造成的错误而导致管理错乱的情况,为了能更好的以 及保密的管理数据信息,各种领域的管理系统应运而生,为各行各业管理上带来 了极大的方便。

学校是一个培养学生思维习惯的重要基地,因此顺应信息现代化潮流是义不 容辞的,高校评奖评优管理系统从大的方面来说顺应了时代潮流,培养学生的思 维习惯,从小的方面来说提高了学校办事效率,减少了各级负责人的工作量,使 得管理更加的系统化。

1.2系统简介

高校评奖评优管理系统的模块主要有:管理用户,管理学院信息,管理班 级信息,管理评奖评优项U信息,为学院、班级分配奖项名额,班级提交获奖人 员,学院审核获奖人员。

系统分为三种角色登录:管理员,学院负责人,班级负责人。

管理员管理管理员和学院用户,管理学校的学院信息,管理评奖评优项LI 信息,然后及时的为每个学院分配规定的奖项的名额,设置评奖评优的时间段, 班级和学院必须在规定的时间内完成提交和审核的工作,管理员还可以查看评定 的结果以及奖项评定的历史。

各学院负责人只能对各自的学院进行管理,管理本学院的班级用户;查看本 学院被分配的奖项名额以及各评奖项的详细信息;管理本学院的班级信息并且给 各班级分配奖项名额,这边的奖项必须是本学院被分配到的奖项并且分给各班级 总的名额数不能超过本学院本分配到的总的此项名额;学院对班级提交上来的获 奖学生进行审核,然后可以查看到所有审核通过的获奖信息,一轮评奖评优结束 将其获奖信息封存历史再进行新的一轮的评比,可以查看往年的历史记录。

各班级负责人只能对各自的班级进行管理。查看本班级被分配奖项及名额 的详细信息;提交本班级获奖学生给学院审核,可以查看审核的结果,查看评比 的最终结果。

此系统减少了学校各级人员的工作量,并且减少工作中不可避免的失误,符 合现在信息时代的需求。

1

1.3系统的主要特点

本系统是经典的管理系统类型,清晰的分为儿大模块,各个模块下分为相对 应的儿大功能。不同的用户采用不同的身份登录系统,不同身份登入到系统里呈 现的模块功能不同,只能操作本身份应该执行的工作,这样避免了其他身份模块 功能的保密性。此系统具有保存历史数据的功能,想要查询过去儿年的数据都可 以在系统中查询到,比如:某个学生想看自己大学四年一共获得了多少次评奖评 优,就可以通过在历史记录里面根据学号查询到。本系统界面简单明了,功能直 接明确,操作简单。

1-4发展趋势

随着计算机的不断普遍化,网上办公越来越成为人们的一种办公习惯,学校 也不得不跟随时代的步伐,跟得上学生的习惯需求。现如今评奖评优的工作也越 来越繁琐,不仅要班级班主任同意负责而且还要学院负责人来审核,并且要严格 按照奖项的要求来评定,所以各级领导的工作越来越难做,所以一套完整的评奖 评优管理系统将会给评奖评优这项工作带来极大的方便,而且会减少人工带来的 不必要的麻烦,使得评奖评优更加系统和规范。

2

2系统的开发工具

2. 1 JAVA 简介

Java是跨平台的语言,Java编写出来的程序,能够强大到运行在任何的设 备和平台

上面,已经成为当今Internet中最好用,最受欢迎以及最具影响力的 语言之一。

Java和C++以及C语言在语法上类似,但是和这些语言相比,Java还是有 自己的优

点的,Java语言和他们相比更为简洁,而且可靠性更强,因为除去了 最大的程序错误根源,除此之外,Java的安全性相对来说更高,算得上有史以 来的最卓越的编程语言了。发展至今,按照应用范围来分Java有3个版本, JavaSE> JavaEE> JavaMEo SE是标准版,是

Java的基础版。EE是企业版,开发 网络程序的,ME是开发嵌入式系统的⑴。本系统就

是采用的EE,涉及到了客 户层(浏览器),服务器层,系统层(数据库)。

2. 2 MySQL 简介

MySQL是小型的关系数据库管理系统,和Oracle. SQL Server等相比,MySQL 规

模小但体积小而且速度相比而言较快,虽说功能有限,但是对于一些中小型企 业来说还是够用的,所以MySQL很受中小型企业欢迎。

MySQL不仅速度快容易使用,而且它的安全性和连接性都十分安全和灵活, 允许

基于主机的验证。其次他不仅提供了对Java的接口还提供了对其他变成语 言的接口,比如C++、C、PHP等,它可工作在不同的系统平台上,Windows>Linux> Mac OS等⑵。

2.3 SQL语言简介

SQL是一种数据库操作语言,20世纪70年代初在IBM的San Jose实验室开 发出来

的,实际应用中,每一种关系型数据库管理系统实现了这个功能,由于部 分原因被美国国家标准协会和国际标准化组织接纳为关系型数据库中的标准查 询语言⑶。

SQL集数据査询,数据操纵以及数据定义、数据控制于一身,所以它是综合 统一的。

除此之外,SQL进行操作时,无须了解存放路径,只要提出做什么即可, 而不需说明怎么做,提高了数据的独立性,高度非过程化°SQL语言比较容易懂, 学起来更容易。

2. 4 JSP简介

Java Server Pages简称为JSP,是Sun公司及其他公司一起建立的动态网 页技术标准,

它是基于Java的动态网页技术。JSP III HTML语句和Java语言嵌 入标记组成。

JSP增强了 Web程序的独立性和重用性,与传统的ASP相比,它不仅编写简 单,而

且它是跨平台的,因为是基于Jas语言的,运行在Java虚拟机上,所以 任何平台只要支持

3

Java语言JSP就可以在此平台上运行。此外JSP的执行效率 相比而言还是比较高的,因

为Java虚拟机会将JSP页面解析成Servlet, Servlet 有提供自动销毁的线程,所以提高了系统的利用率,降低了系统的负载同。

2. 5 Serv I et 简介

Server Applet简称为Servlet,它是一种在服务器上运行的小程序oServlet 是基于Java

语言的Web程序的核心,是JSP实现的基础,还有一些Web框架的 底层也是基于Servlet设计实现的,比如:Struts, Webworko

Servlet是J2EE规范的重要组成部分,所有Servlet类都必须实现Servlet 接口及接口

中的5个方法,由于5个方法不一定都会使用到,每次重复实现会使 代码冗余,所以提供了 GenericServlet抽象类,此类实现了除了 service之外 的其他4个方法,因此现在的

Servlet类只需要从GenericServlet继承即可, 而且只需实现service方法,其中service是Servlet的核心方法,不管客户端 向服务端发送什么HTTP请求都会经过service方法闻,

所以一般只在Servle t类中写一个service方法,而不耳doPost或doGet方法。

2. 6 JavaScr i pt 简介

JavaScript是基于Web的语言,最早在HTML页面上使用,给HTML页面提 供动

态功能。是Netscape公司的Brendan Erich在1995年设计实现的。由于与 Sun公司合作,Netscape公司的管理层希望它更像Java,所以取名为JavaScript。

JavaScript是面向对象的,而且它与众不同之处是它没有类,这使得编程 更为简洁,

因为创建一个对象无需要先拥有一个类就可以创建对象,然后可以给 该对象添加基本类型、函数以及其他对象作为该对象的属性⑹。一般JavaScrip t都会和jQuery技术结合使用,更好的发挥其作用。

3系统分析

3.1可行性分析 3.1.1经济可行性

本系统的设计主要是为了实现在网上直接进行评奖评优操作,省去了人工繁 琐的程序,人工操作不仅浪费时间而且容易产生管理上的混乱,反而增加了各级 负责人的工作量。此系统操作简单,功能清晰,容易理解,开发成本低,和传统 的人工相比具有很大的经济可行性。

3.1.2技术可行性

编程语言采用JAVA,开发工具使用的是MyEclipse,数据库开发工具采用 MySQL,这

4

两个都是相当成熟且开源的开发工具,MyEclipse连接MySQL数据库 只需要添加一个

connect Driver驱动即可,曲于MySQL体积小,速度快,所以 一般中小型网站都愿意使

用MySQL。页面设计主要用JSP,页面交互操作主要用 Servlet来实现,在学校参加达内公司的关于JAVA课程的培训,所以对这些知 识相对来说比较熟悉,实习期间的工作就是数据库操作,所以对数据库的操作比 较熟练,所以具有一定的技术可行性。

3.1.3操作可行性

本系统不同身份进去的界面功能是不同的,功能模块清晰明了,功能明确, 也容易理解,操作简单,只要能熟悉计算机的简单的一些操作就可以直接上手管 理,无需时间去研究,很容易就可以熟练掌握,因此操作可行性很高。

3.1.4社会可行性

随着计算机的发展,使用计•算机来解决社会上的事情已经成为一种习以为 常的方式,并且讣算机管理数据信息确实比人工来的方便,更重要的是计算机管 理儿乎不会出现低级的错误,具有强大的精确度,这是人工永远比不上的。学校 是培育社会人才的场所,必定要学会与时俱进。评奖评优和学生息息相关,让学 生习惯使用讣算机处理生活中的事情,让学生也能与时俱进,感受信息化时代带 来的方便之处。

从经济、技术、操作、社会这四个可行性来分析来看,此评奖评优管理系统 的设计是可行的。

3. 2需求分析

通过访问本院的评奖评优负责的老师,经过了解,分别从功能角度和性能 角度进行了需求分析。

(1) 功能角度

首先登陆系统的有三种身份,管理员、学院负责人、班级负责人,三种身份 分别操控不同的功能。

班级负责人可以查看班级所分配到的奖项及相对应的名额,然后添加获得被 分配到的奖项的学生,并且提交给学院领导审核,对未提交的学生可以进行修改 和删除,但是一旦提交就不可以再修改删除了,提交的人数不可以超过本班级此 奖项被分配到的名额,然后可以查看审核结果以及历年本班级的评奖评优历史。

学院负责人可以查看本学院所分配到的奖项及相对应的名额,然后将奖项和 名额分别分给本学院里的各个班级,分给班级的某个奖项总的名额不能超过本学 院这个奖项被分配到的总名额,所以班级可以对本学院的班级用户进行一个管 理,本学院某个班级由某一个用户负责。学院要对班级提交上来的学生进行审核 是否通过,学院可以查看到本学院的总的一个评定结果,一轮评奖评优过去学院 负责将此轮评定结果封存历史,这样方便以后

5

查看。

管理员对使用系统的管理员及学院用户进行管理,对学院的一些基本信息的 管理,以及对本年的一些评奖评优的一些信息的管理,然后将奖项和名额分配给 各个学院,同样的,名额不能超过总名额限制。管理员需要设定评定时间,学院 审核的时间以及班级提交的时间,提交截止时间需要比审核截止时间早,超过相 对应的截止时间就不可以提交和审核了。

为了保密性,各个用户都可以修改自己的登录密码。

(2) 性能角度

操作简单,界面友好,功能模块清晰,系统要具有一定的可操作性和可黑性, 并且系统要能具有很好的可维护性,这样方便以后的维护和修改。

3. 3数据流分析

清楚系统的功能需求和性能需求之后,就要对系统中的数据流向有所掌握, 这边主要用四个数据流图来描述整个系统的数据流向。

1•评奖评优管理系统的顶层数据流图,如图3-1所示。

6

___________ /-C

1rwA )~I, 班级奖项分配信息

班级信息 待提交的获奖学生 获奖学生

学院获得奖顶及綁名额魁/;细优「班级获得奖顶及綢分配魁 !管甘系统〕 评定结果

待审垓的更奖学生一 i 结果 、 评奖评优历史

班级

评哭旳尤用史

'

审核获奖学生

学 • 3 管理员

图3-1系统顶层数据流图

2•评奖评优管理系统零层数据流图,如图3-2所示。 设定评定时

L

.评钏间

评定稠

审 管理学院4

---------- 学院信息表

核 I

茯奖

7

学 统计学牒

::

生 息 曾理员 奖顶信息

学院

管理類__奖躺息表 统计奖筛 息

査看

统计学锻顶施肌 奖项

_______________ 了管理学院L

分配 >学院奖顶」 为学院分配奖项和名额奖顼贏\\ 信息

分配表

V J 图3-2系统零层数据流图

7

査看评定时间

粳提交

管理获奖学

J

管理班级4 奖项

分配丿为班级分' 配奖项名

班圾

査看 班圾 奖顶 分配

►刁士 -

4系统总计设计

完成可行性分析和需求分析,系统“做什么”就清楚了,接下来就是决定 “怎样做”的时候了即总结设讣。总体设计的重要任务就是设计系统的大概组成 情况,主要包括哪些大的模块,并且确定下各个模块之间的关系是什么,便于后 面的详细设计和实现⑺。

4. 1系统功能模块设计

模块化即将程序分成儿个可独立进行访问的模块,各个模块再分别完成各个 自己的模块功能,将系统模块化最大的好处是使系统的结构更加的清晰,并且使 后期的编码实现更加的方便。

通过之前的需求分析,可以确定此评奖评优管理系统可山以下儿个模块组 成,如图

4-1所示。

高校评奖评优管理系统

登 录 学院 班级

查<看理奖班学级金学顼生目获馆奖息信 息

图4-1功能模块图

4. 2概念结构设计

将需求分析得到的应用需求进行模块化,进而再在模块化的基础上将其抽象 为信息世界中的结构,这样才能更好、更清晰的用数据库管理系统来实现这些应

8

看坊年评定:g呆 T-用需求。概念模型是各种数据模型的基础,并且概念模型比数据模型更抽象,更 稳定[叭

E-R图是描述概念模型的最佳工具,通过E-R图可以清晰的看出实体、属性、 实体

间的联系。

整体的E-R图如图4-2所示。

/年份1第院标弟

T

z-

分配

学宦班坂

用户名

学号: 是否歼献

、一•丿

下面是主要的几个实体的E-R图。

2•班级负责人E-R图,如图4-4所示。

9

2•班级负责人E-R图,如图4-4所示。

10

图4-4班级负责人实体图

3. 学院信息E-R图,如图4-5所示。

图4-5学院信息实体图

4•班级信息E-R图,如图4-6所示。

班级标

班级们息

班级

专业

图4-6班级信息实体图

6•学院的奖项分配E-R图,如图4-8所示。

11

图4-8学院的奖项分配实体图

7•班级的奖项分配E-R图,如图4-9所示。

图4-9班级的奖项分配实体图 8•获奖的学生E-R图,如图

4-10所示。

图 4-10获奖学生实体图

9•评定时间限制E-R图,如图4-11所示。

12

开始时何

图4-11评定时间实体图

4. 3数据库的逻辑结构设计

完成此系统的概念设计,画出了 E-R图,就要进行数据库的逻辑结构设计, 采用的是MySQL数据库,本系统数据库的名字为handan,下面是handan这个数 据库中的一些表结构。

1.管理员用户(admin)表:用来存储系统管理员用户的登录信息,如表4-1 所示。

表4-1管理员用户表 列名 序号 用户名 数据类型 int varchar varchar 长度 11 20 20 允许空 否 主键 是 否 密码 2•学院负责人用户(xuey)表:用来保存学院负责人用户登录信息,如表 4. 2所示。

表4-2学院负责人用户表 列名 序号 用户名 密码 学院标号 数据类型 int varchar varchar varchar 长度 11 20 20 10 允许空 否 否 否 是 主键 是 3•班级负责人用户(cla)表:用来保存班级负责人用户登录信息,如表4-3 所示。

表4-3班级负责人用户表 列需 序号 用户名 密码 学院标号 班级标号 数拯类型 int varchar varchar varchar varchar 长度 11 20 20 10 10 允许空 否 主键 是 否 否 是 是 4•学院基本信息(xy.details)表:用来保存高校各个学院的基本信息,如

13

表4-4所示。

表4-4学院基本信息表 列需 序号 学院标号 学院需称 数拯类型 int varchar varchar 长度 11 10 50 允许空 否 主键 是 否 是 3•班级基本信息(cX_details)表:用来保存各个学院各个班级的基本信 息,如表4-5

所示。

表4-5班级基本信息表 列名 序号 班级标号 班级名称 届 专业名称 学院标号 数据类型 int varchar varchar varchar varchar varchar 长度 11 10 20 10 50 10 允许空 否 否 是 是 是 是 主键 是 6•奖项详细信息(proj.details)表:用来保存评奖评优各个奖项的基本信 息,如表4-6

所示。

表4-6奖项详细信息表 列名 序号 奖项标号 奖项名称 获奖要求 奖金 名额 年份 数据类型 int varchar varchar varchar double int varchar 长度 11 10 50 1021 0 11 10 允许空 否 否 否 否 主键 是 否 否 否 7•学院的奖项分配(xy_p)表:用来保存管理员分配给各个学院的奖项以及 对应的名

额。如表4-7所示。

表4-7学院的奖项分配表 列名 序号 学院标号 奖项标号 名额 年份 数据类型 int varchar varchar int varchar 长度 11 10 10 11 10 允许空 否 是 是 是 是 主键 是 8•班级的奖项分配(ch』)表:用来保存学院分给班级的奖项以及对应的

14

名额。如表4-8所示。

表4-8班级的奖项分配表 列需 序号 学院标号 班级标号 奖项标号 名额 年份 数拯类型 int varchar varchar varchar int varchar 长度 11 10 10 10 11 10 允许空 否 是 是 是 是 是 主键 是 9•评定时间(b_e_time)表:用来保存班级提交的限定时间和学院审核的限

定时间,如表4-9所示。

表4-9评定时间表 列名 开始时间 结束时间 数据类型 氏度 允许空 是 主键 datetime datetime int 0 0 11 是 身份 是 10•获奖学生(student)表:用来保存某位学生获得某个奖项的信息,如表 4-10所示。

列名 序号 学号 姓名 学院标号 班级标号 奖项标号 是否确认 确认人 确认时间 是否封存 封存人 封存时间 数据类型 int varchar varchar varchar varchar varchar int varchar varchar int varchar varchar varchar 表4-10获奖学生表 长度 允许空 11 20 50 10 10 10 11 20 30 11 20 30 10 否 是 是 主键 是 是 是 是 是 是 是 是 是 是 是 年份 15

5系统的详细设计及实现

通过对系统的总体设计,清楚了要怎么实现需求,接下来就是要进行系统 的详细设计,具体的实现系统需求,对总体设计中的每一个模块进行详细的描述 和设计,为源程序打下基础。

系统的实现即编码和测试,程序编写相当于软件开发的生产步骤,将软件 转化为计算机代码,用特定的语言比如Java来对其功能进行描述⑼。

5.1登录模块

登录界面是整个系统的主界面,只有通过登录页面才可以进入各自身份的主 页面。登录由用户名,密码和登录身份组成,有三种身份可供选择,管理员身份, 学院身份,班级身份。只有用户名和密码以及身份都匹配才可以登录成功,否则 提示“用户名或密码错误”。登录界面如图5-1所示。

高校评奖评优

管理系统

图5-1登录界面

登录界面的主要代码:

〃在数据库中寻找是否存在这样匹配的用户名和密码(学院负责人身份登录) public boolean

findByName(Xuey xuey) {

boolean b=true;

Connection conn=DB.getConnection();

String sql=\"select * from xuey where username=? and password二?”; PreparedStatenient pm=null; ResultSet rs=null;

pm=conn.prepareStatement(sql);

pm.setString(l ,xuey.getUsername()); pm.setString(2,xuey.getPassword()); rs=pm.executeQuery();

16

}

相对应的Servlet类中的UserLogin.java代码如下:

〃如果dao层返回true,说明用户名和密码匹配,登录成功,进入管理员主页面, 〃如果返回false,说明用户名或者密码错误,登录失败,提示用户名或密码错 〃误,需要重新输入用户名和密码再登录

if(adminDao.findByName(xuey)){

session.setAttribute(,,xuey,\\ xuey);

〃将用户对象带到页面中以便获取对象的信息

response.sendRedirect(H./page/xueyMain.jspH); }else{

request.setAttribute(\"xueyMsg\用户名或密码错误!\");

}

JSP页面主要代码://分三种方式登录

5. 2管理员主页面

管理员身份登录进来的主页面,可以看到一共有五大模块功能,管理用户, 管理学院基本信息,管理评奖评优项LI信息,设定评定时间以及查看评定结果。

管理员主页面如图5-2所示

图5-2管理员主界面

5.2. 1管理用户

管理员管理管理员用户和学院负责人用户,其中负责人用户除了用户名和 密码,还有他是负责哪个学院的。可以对用户进行查询,添加,修改和删除。

学院负责人用户一栏就相当于查询了所有的学院负责人用户,然后可以根据 学院或者用户名进行条件查询,如图5-3所示。

点击添加,可以添加学院负责人用户,输入用户名和密码,下拉选择负责的 学院。如图54所示。

图5-3学院负责人用户

17

图5-4添加学院负责人用户

查询学院负责人主要代码如下:

public List findAHXueyByPage(String username, String xno, int currentPage, int pageSize) {

List xs=new AiTayList(); String sql=Hselect * from xuey where 1 = 1\";

if(!\" \" .equals(username))//判断是否要根据用户名进行查询 sql+=M and username=,,+MU+usemame+HU; if(!-'\".equals(xno))//判断是否要根据学院进行查询 sql+=” and xno=,,+,,,,+xno+,,u; sql+=\" limit ?,? • • •

JSP页面端主要代码:

〃获取Servlet传来的学院对象

<%List xs=(List)request.getAttribute(HxsM); for(Xuey x:xs){

Xy_Details xds=(Xy_Details)dao.findxy_DetailsByXno(x.getXno()); %>

<%=x.getPassword()%x/td>

H>修改

” onclick='Javascript:retum confirmC确定删除此用户?,);\">删除v/a>

<%) %>

添加、修改、删除学院用户的sql语句分别如下: (添加用户的时候先判断用户名是否已经存在)

18

String sql=\"insert into xuey(username5password,xno) values(?,?,?)H;

String sql=Hupdate xuey set usemame二?,password二?,xno=? where xid二?”; String sql=Hdelete from xuey where xid=?H;

5. 2.2管理评奖评优项目信息

分别管理当年奖项信息和历年奖项信息,可以对当年奖项信息进行增删改 查,历年的只能进行查询,不可以修改,一轮评奖评优结束就可以将这些奖项封 存入历史中,便于以后查询历史数据,所以设有封存历史的按钮。

当年的评奖评优项U信息可根据奖项来查询,如图5-5所示。

图5-5奖项信息

历史的奖项信息可根据年份或者奖项来查询,如图5-6所示。

管理用户

用 P -学院®责人用户

年怡

年馀

奖项名齐 生

奖顶:I

■ M

名詼

2015

勿15

”分配奖项名覇 \"彦看奖项才配

200 100 100

0.0 o.o 2000.0 $)0.0 WO.O

智n成筝桥屯

忧刊干

1•与合栄质评分在班级前

20b 3.无挂科

在班编

名・2.综台黑质计廿在班 级前

勿乩3•无桂科

20】5 2015

二^*金 三等娑学金

-it奖项牙配历臾 簷

理评奖评优顶目佶息 -评奖评优为目信息 奖许他。目历史 评奖评优评

1•排名在班级前20各2.

无挂料.

1・申洁在班痂20為2. 无

壮科.

200 800

20】5

圭络果

莒页上一页E=S ££共2页

图5-6奖项历史信息

封存历史的存储过程代码如下:

DELIMITER //

create procedure closePro( ) begin

insert into proj_Details_alI ( pno , pname , details , money , counts , years ) select pno , pname , details , money,counts , years from proj.Details ; delete from proj_Details; end

DELIMITER ;

DAO层实现代码如下:

CallableStatement callableStatement = null;

//

19

callableStatement = ( CallableStatement) conn.prepareCall (H{ call closePro() }H ); callableStatement .execute ();

5. 2. 3管理学院信息

管理学院信息主要管理学院的基本信息,为学院分配奖项和名额,査看分 配的历史记录。

为学院分配奖项和名额的时候只能给系统中存在的学院分配系统中口前已 经存在的奖项(不包括历史数据),并且分配的名额不能超过此奖项的总的名额。 一旦超过就会报错提醒,重新分配。分配的名额不能小于0,否则也会报错提醒, 为了防止重复分配某一个奖项给某一个学院,在分配的时候先判断重复分配,也 设有报错提醒,如图5-7所示。

图5-7为学院分配奖项和名额

主要代码如下:

int counts=Integer.parseInt(request.getParameter(ncountsH)); int alI=dao.getPreCounts(pno);

if(dao.findxy_pByXno(xno,pno)){// 先查找是否已经分配过了 request.setAttribute(\"d\重复分配\");

request.setAttribute(HpageMainH, HaddXy_p.jspM); }else if(counts<0){

request.setAttribute(\"c\H加失败!分配的奖项数不能小于0\"); request.setAttribute(HpageMainH, MaddXy_p.jspn);

〃获取数据库里已经分配了多少,然后加上这次分配的是否超过额度

}else if((all+counts)>(dao.getTotalCounts(pno))){

request.setAttribute(\"p\添加失败!分配的奖项数总和不能超过奖项的总数”); request.setAttribute(HpageMainH, MaddXy_p.jspn); }

查看奖项分配的时候可以根据学院或者奖项来作为条件查询。这边也有封存 历史的按钮,供查看历史数据。历史数据可以根据年份查询。

查看奖项分配的页面如图5-8所示。

图5-8査看奖项分配

条件查询的sql语句如下: 〃按学院和奖项查询

String sql二”select * from xy_p where 1 = 1”;

20

if(!\"nuH,,.equals(xno)) sql+二” and xno二“+'\"'+xno+\";〃是否按照学院查询 if(!unuir'.equals(pno)) sql+二” and pno=“+““+pno+\";〃是否按照奖项查询 sql+=\" order by xno,pno limit ?,? ”;〃按照学院,奖项排序

〃获取按奖项和学院查询的总记录数

String sql=Hselect count(*) from xy_p where 1 = 1\";

if(!\"null\".equals(xno)) sql+=\" and xno=\"+H\"+xno+\"\"; if(!HnuHH.equals(pno)) sql+=M and pno=H+MM+pno+,H'; JSP页面shareXy_p.jsp代码如下:

学院:

奖项:

5. 2.5评奖评优评定结果

查看评定结果分为两个,一是查看本次的评定结果,二是查看历史的奖项评 定结果记录。管理员可以查看全校的评定结果。本次的评定结果可以根据学院和 奖项进行查询,历史结果还可以根据年份进行查询。

本次的评定结果如图5-9所示。

图5-9本次的评定结果

5. 2.5设定评定时间

设定评定时间分为两种,一是设定学院的审核时间,二是设定班级提交的时 间,必须要在这个时间段内进行提交和审核,否则会报错提醒。在学院和班级的 主界面上会显示相对应

21

的审核或提交提醒消息,提醒审核或提交的截止时间,督 促尽快完成评定。

开始时间和截止时间可以修改。如图5-10所示。

图5-10设定班级提交时间

修改时间的主要代码如下:

〃注意要将Java中的Date时间类转化成数据库中的Date

String sql=\"update b_e_Time set beginTime=?,endTime=?\"; pstmt=conn.prepareStatement(sql);

pstmt.setDate( 1, new java.sql.Date(time.getBegin().getTime())); pstmt.setDate(2, new java.sql.Date(time.getEnd().getTime()));

5. 3学院负责人主页面

学院负责人身份登录进来的主页面,可以看到一共有六大模块功能,管理 系统班级用户,查看评奖评优信息项口,管理班级信息,查看待审核的信息并进 行审核,查看评定结果,查看评奖评优历史,各个用户都可以修改自己的登录用 户名和密码。

学院负责人主页面如图5-11所示

图5-11学院负责人主页面

5.3.1查看评奖评优项目信息

只能査看本学院分配到的奖项信息,这边的名额是本学院被分配到的名额 数。如图

5-12所示。

图5-12査看奖项基本信息

主要代码如下:

关联两个表,一个是学院奖项分配表一个是奖项项信息表,通过分配表中 关联的奖项标号来查询奖项表中的奖项详细信息。

List vXy_p> xs=dao.findXueyXy_pByPage(xno,pno,currentPage,pageSize); <%

for(Xy_p xp:xps)

{

Xy_Details xd=dao.findxy_DetailsByXno(xu.getXno()); Proj_Details pd=dao.findproj_DetailsByPno(xp.getPno()); %>

22

学院还可以查看自己学院奖项使用的情况,总名额是学院此奖项被分配到的 总名额,已使用是本学院奖项分配到各个班级的总的名额,剩余即总名额-已使 用的,如果还有剩余的名额会在备注中提示。如图5-13所示。

图5-13査看奖项使用情况

主要代码:

for(Xy_p xp:xs){

Proj_Details pd=dao.findproj_DetailsByPno(xp.getPno()); Xy_Details xd=dao.findxy_DetailsByXno(xp.getXno()); suni=xp.getCounts();

use=dao.getProUseCountsByPno(xp.getXno(),xp.getPno()); res=sum-use;

if(res>0) remark=\"有\"+res+\"名额,请及时分配! ”; else remark=HH;

5.3. 2管理班级信息

管理班级信息包括管理班级的基本信息,管理班级的奖项分配。

管理班级的基本信息,可以添加班级,但是只能添加本学院的班级,班级 信息主要包括班级代码,专业,哪届的,班级名称,可以对班级信息进行更新, 修改的时候学院是固定的不可以修改的。如图5-14所示。

图5-14管理班级基本信息

学院在给班级分配奖项的时候只能分配给自己院里面的班级且这个班级是 在这个系统里面存在的,除此之外,分配的奖项只能是本学院有这个奖项和名额 的,分配的名额数也不能超过本学院被分配的总名额,否则会报错。如图5-15 所示。

图5-15为班级分配奖项

和管理员给学院分配奖项名额类似的,名额总数有限制,并且不能分配为0 的以及不能重复分配。查看奖项分配的时候可以根据班级和奖项进行查询,评定 结束之后进行封存历

23

史。可以在奖项分配历史中查询到历史数据,同样可以根据 年份进行查询。如图5-16所示。

图5-16査看奖项分配历史

5.3.3管理班级用户

管理班级系统用户,只能管理本学院的班级的用户,比如添加班级用户, 班级那栏下拉框只有本学院的班级可供选择,并且学院那栏也固定为本学院,不 可以修改。如图5-

17所示。

图5-17添加班级用户

主要代码如下:

〃因为只能添加本学院并且本班级的用户,所以首先要获得自己的学院标号, 然后通过表字段的关联获取本学院的班级有哪些。

Xuey x=dao3.findXueyByUsername(xu.getUsername(),xu.getPassword()); Xy_Details xd=dao.findxy_DetailsByXno(x.getXno());

H name=HxnameH readonly/>

//Servlet层代码如下:

String xname = request.getParameter(HxnameH);

String xno=dao.findXy_DetailsByXname(xname).getXno();

5. 3. 4待审核

待审核就是班级那边提交了获奖学生,学院这边还没有对此获奖学生进行 审核是否通过。这边也设有班级和奖项的查询方式。如图5-18所示。

在student这个表中有一个字段是submit如果已经提交了,就会将submit 置为1,如

24

果审核通过的话会将close字段置为1,如果不通过会置为2,所以在 查询待审核的时候的要查询submit=l的并且close=0的。

图5-18査看待审核

Sql语句如下:

String sql二\"select * from student where xno=? and submit=l and closed=0M;

〃是否根据班级查询

if(!HnuHH.equals(cno)) sql+=M and cno=H+M,,+cno+MH;

〃是否根据奖项查看

if(! HnullH.equals(pno)) sql+=H and pno=,'+n,l+pno+MH; sql+=\" order by cno,pno limit ?,? ”;

〃记录总数

String sql=Hselect count(*) from student where xno=? and submit=l and closed=0n; if(!

H

nullH.equals(cno)) sql+=\" and cno=\"+H,,+cno+H\";

if(!HnullH.equals(pno)) sql+=M and pno=,,+,,M+pno+HM;

如果审核通过:

〃将closed字段置为1,并且记录审核的时间和审核人

String sql二\"update student set closed=l,closedBy=?,closedTime=? where sid=?H; 如果审核

不通过:

〃将closed字段置为2,并且记录审核的时间和审核人

String sql二\"update student set closed=2,closedBy=?,closedTime=? where sid=?H; 全部审核

通过的sql语句:

String sql=Hupdate student set closed= 1 ,closedBy=?,closedTime=? where xno=? and submit=l and closed=On;

5. 3. 5查看评定结果

审核的时候会有通过和失败,通过的记录就会出现在审核通过里面一旦审核 通过就不可以再进行修改。

可以根据班级和奖项进行查询,评定结束之后封存进历史,存入历史中之后就 不会在审核通过这一栏出现,要到评定历史中进行查询,其中只有审核通过的会 存入到历史中,没有通过的对以后的历史查询没什么价值,所以不会存入历史数 据中。如图5-19所示。

25

图5-19査看审核通过

主要代码如下:

//封存历史的存储过程(只能封存本学院的数据)

DELIMITER //

create procedure closeStudent(

//设置学院参数

in param Begin

varchar( 10))

〃先将获奖学生表中的数据插入到历史表中

insert into student(sno,sname5cno,pno,submit,submitBy,subinitTime, closed,closedBy,closedTime,xno,nian)

select sno5sname,cno,pno,submit5submitBy,subniitTime,

closed5closedBy,closedTime5xno,nian from student_all where xno=param;

〃再将获奖学生表中原来的数据删除

delete from student where xno=param; end //

DELIMITER ;

学院可以查看H前为止的奖项统计信息,名额是本班级此奖项被分配到的名 额,提交是班级总共提交上来的(一般提交的名额不会超过名额,除非提交的名 单中有审核不通过的),剩余二名额-通过。如果学院有未审核的备注1会提示, 如果有剩余名额没用备注2会提示。如图5-20所示

图5-20査看统计信息

主要代码:

for(Cla_p cp:cps){

Cla_Details cd=dao2.findCla_DetailsByCno(cp.getCno());

Proj_Details pd=dao.findproj_DetailsByPno(cp.getPno()); sum=cp.getCounts(); submit=dao2.getSubmitedCounts(cp.getXnoO,cp.getCno(),cp.getPno()); pass=dao2.getPassCounts(cp.getXno(),cp.getCno(),cp.getPno()); fail=dao2.getFailCounts(cp.getXno(),cp.getCno(),cp.getPno()); res=sum-pass;

if((pass+fail)if(pass26

else remark2=n V H;

5. 3. 6查看评奖评优历史

评奖评优历史就是每次评定完之后将评定通过的结果存入到历史时候产生 的记录,在这边可以根据年份,班级,奖项查询到某年某班获得某奖项的是哪儿 个人,和管理员相比。学院只能查看自己本学院的。如图5-21所示。

图5-21査看评奖评优历史

5. 4班级负责人主界面

班级负责人登录进来的主界面,一共有四大模块功能,查看评奖评优项LI信 息,管理获奖学生,查看评定结果,查看评奖评优历史。中间显示提交的开始时 间和截止时间提醒信息。如图5-22所示。

图5-22班级负责人主界面

5.4.1评奖评优项目信息

班级负责人可以查看到本班级获得的奖项和名额以及奖项的基本信息悄况, 但是只能查看,不可以对其作任何修改。如图5-23所示。

图5・23査看评奖评优项目信息

主要代码如下: <%

List vCla_p> cps=dao2.findAHCla_pByCno(ca.getCno()); for(Cla_p cp:cps)

{

Xy_Details xd=dao.findxy_DetailsByXno(ca.getXno());

Proj_Details pd=dao.findproj_DetailsByPno(cp.getPno()); Cla_Details cd=dao2.findCla_DetailsByCno(ca.getCno()); %>

届<%=cd.getCname() %>

27

<%}%>

5. 4. 2管理获奖学生信息

管理获奖学生信息可以添加获奖的学生(只能添加本班级的学生,体现为添 加的时候班级和学院是固定的不可以修改),主要包括信息为学院,班级,学号, 姓名,奖项,其中奖项只能选择本班级被分配到的奖项。

添加成功的获奖学生信息会将submit置为0,等待提交。提交之前信息可以 修改和删除,一旦提交之后就不可以再修改和删除了。提交之后会将submit置 为1, close置为0,等待审核。提交的时候一是要检验你提交的获得某个奖项的 人数是否超过本班级此奖项被分配到的名额数,二会检验是否已超过截止时间 To待提交的界面如图5-24所示。

图5-24待提交获奖学生信息

主要代码如下:

int all=dao2.getPreCountsByCno(pno,cno); if((all+1 )>(dao2.getTotalCountsByCno(pno,cno))){

request.setAttribute(\"p'\\\"提交失败!提交人数已超过限制! ”); }else{try {

if(sdf.parse(submitTime).getTime()>sdf.parse(endTime).getTime()){ request.setAttribute(\"t\提交时间已截止\");

request.getRequestDispatcher(H./QueryServlet.do?action=daiSubmit&xno 二\"+xno+” & cno=H+cno+\"&pno=n+MH).forward(request, response);;

}else if(sdf.parse(submitTime).getTime()request.getRequestDispatcher(H./QueryServlet.do?action=daiSubmit&xno 二\"+xno+” & cno=H+cno+M&pno=”+z)・forw£Hd(2quest, response); }else{dao2.subniitStudent(sid,subinitBy,submitTinie); request.setAttribute(\"result'\\\"提交成功\");

request.getRequestDispatcher(H./QueryServlet.do?action=daiSubmit&xno 二\"+xno+” & cno=H+cno+M&pno=”+z)・forwaid(wquest, response); }

提交的sql语句如下:

String sql二\"update student set submit= 15submitBy=?,submitTime=?,closed=0 where sid=?\"

28

5. 4. 3查看评定结果

此功能和学院的查看评定结果功能类似,只是学院的可以查看整个学院的评 定结果情况,但是班级的只能查看本班级的评定情况,并且班级没有封存历史的 权限。可以根据奖项和学号进行查询。

查看审核通过的获奖学生信息界面如图5-25所示。

图5-25査看审核通过的获奖学生信息

主要代码如下:

〃审核通过的标志为:closed字段为1 〃审核未通过的标志:closed字段为2

String sql二”select * from student where xno=? and cno=? and pno=? and closed= 1 order by xno limit ?,? ”;

String sql二”select count(*) from student where xno=? and cno=? and pno=? and closed=l ;

班级可以查看本班级奖项的统计信息,如图5-26所示。

图5-26査看统计信息

5.4.4查看评奖评优历史

查看评奖评优的历史记录,只能查看本班级的评奖评优历史,可以查看某年 某个奖项是哪些人获得的,或者可以查看某一位学生在大学期间获得过哪些奖和 荣誉称号。如图5-27所示。

图5-27査看评奖评优历史

主要代码如下: 〃通过学号查询

String sql=Hselect * from student_all where xno=? and cno=? and sno=? and closed= 1 order by eno limit ?,?H;

String sql=Hselect count(*) from student_all group by xno,cno,sno,closed having xno=? and cno=? and sno=? and closed=ln;

〃通过年份和奖项进行查询

String sql=Mselect * from student_all where xno=? and nian=? and cno=? and pno=? and closed=l order by eno limit ?,?”;

String sql=Hselect count(*) from student_all group by xno,nian,cno,pno,closed having xno=? and nian=? and cno=? and pno=? and closed=lH;

29

6总结与展望

6.1总结

评奖评优管理系统我是根据一般的软件开发流程进行设汁与实现的,先研 究他的可行性然后进行系统的需求分析,确定本系统需要实现哪些功能,掌握大 概的方向,然后进行系统的总结设计确定功能模块,对数据库进行设计,然后对 每一个模块进行详细设计并进行编码实现,每编码一个功能就对其进行测试,及 时调试功能。大概完成之后再进行听取指导老师的意见进行系统的完善。

6.2展望

本系统采用Java作为开发语言,数据库采用MySQL,主要实现了管理员进 行发布奖项信息,然后为系统中的每一个学院进行分配奖项和名额,学院获得奖 项和名额之后为本学院的班级进行分配奖项和名额,班级可以查看到本班级获得 的奖项和名额,然后添加获奖学生并提交给学院审核,提交之后学院用户就可以 收到待审核的信息,学院和班级都可以查看到审核的结果,每年的评定结果都将 封存到历史中,学院和班级都可以查看到历史数据,并且可以根据年份或者奖项 等条件进行筛选查询。本系统还有很多的不足和可扩展之处,比如班级负责人可 以添加班级一般用户,班级的一般用户可以申请自己想争取的奖项,然后由班级 的所有用户进行投票,投票最多的人提交学院审核。乂或者将学生的成绩录入系 统,然后根据学生的智育成绩和综合素质先选取出来儿位候选人,然后再山班级 所有用户进行投票。所以为了系统更加的方便和人性化,还需今后更多的努力和 学习进行更好的完善系统。

30

参考文献

[1] 明日科技• Java从入门到精通[M].北京:清华大学出版社,2012:3-4. [2] 刘增杰,张少军.MySQL5. 5从零开始学[M].北京:清华大学出版社,2012:5-7. [3] Jan L.Harrington.SQL语言详解[M].北京:清华大学出版社,2011:40-41. [4] 马建红,李占波.JSP应用与开发技术[M].北京:清华大学出版社,2011:4-7. [5] 李宇.独门架构Java Web开发应用详解[M].北京:中国铁道出版 社,2010:2-12. [6[ Stoyan Stefanov.JavaScript 模式[M].北京:中国电力出版社,2012:5-8. [7] 张海藩,牟永敏.软件工程导论[M].北京:清华大学出版社,2013:91. [8] 王珊,萨师煩.数据库系统概论[M].北京:高等教育出版社,2014:215. [9] 瞿中,吴渝,刘群等.软件工程[M].北京:机械工业出版社,2007:13.

31

致谢

即将毕业,平时和老师接触很少,最后的毕业设计中,和老师接触的挺多的, 而且我特别想感谢老师,首先感谢她在一开始毕业设讣选题定题的时候对我的耐 心指导,并且不厌其烦的询问我们的意见,其次感谢她在毕业设计进展过程中对 我的督促,她每次都会耐心的看完我的系统然后给出修改意见,对于我提出的疑 问每次都能给出很好的回答。每次毕业设计遇到关卡的时候她都会帮我想出改进 的方法,虽然做的很不好但是还是会鼓励我,可以说老师就是我毕业设讣过程中 的精神支柱啊,对于毕业实习和实习工作中,老师作为我的毕业实习指导老师, 也给了我很多的意见,平时说话超级温柔,在我的大学生涯中留下了深刻的印象, 真的很感谢梁老师。

毕业设计结束毕业就来临了,也要和四年的大学生活告别了,我想向所有的 老师和同学、舍友说声感谢!向所有的学弟学妹说声加油!

32