您好,欢迎来到华佗健康网。
搜索
您的当前位置:首页基于BS架构的大学生成绩管理系统设计与实现

基于BS架构的大学生成绩管理系统设计与实现

来源:华佗健康网
第一章 绪论

青 岛 科 技 大 学

本 科 毕 业 设 计 (论 文)

基于B/S架构的大学生成绩管理系统 题 目 __________________________________

____________________________

______

王丽丽 指导教师__________________________ 王丽丽 辅导教师__________________________ 吴小康 学生姓名__________________________ 120701011学生学号__________________________

学院 ______________________________自动化与电子工程学自动化 121

____________________________专业________________班

页脚内容1

第一章 绪论

2015 ___2月 ___日 ______年

页脚内容2

第一章 绪论 基于B/S架构的大学生成绩管理系统设计与实现

摘 要

针对大学生成绩信息管理工作,经仔细分析之后本文设计并实现了大学生成绩管理系统。本系统在功能上主要分学生端和管理员端,分别可以完成对应用户所需的功能;在技术上,本系统是采用B/S架构基于java语言开发的,数据库采用oracle

11g,web服务器采用tomcat服务器。

采用计算机对大学生成绩进行管理,能进一步提高高校办学效益和现代化水平,帮助教师提高工作效率,实现学生成绩维护工作流程中的系统化、规范化和高效化。

关键词:学生成绩管理;B/S架构;java;oracle数据库

页脚内容3

第一章 绪论 BASED ON B / S ARCHITECTURE STUDENT ACHIEVEMENT MANAGEMENT SYSTEM DESIGN AND IMPLEMENTATIONABSTRACT

Students' grades for information management,

after careful analysis of college students designed and implemented a performance management system. This

system is functionally divided students and

administrators end side, respectively, corresponding to

the user can complete the required functions;

Technically, the system is the use of B / S architecture is based on java language development, database using

oracle 11g, web server uses tomcat server. Students use computers for performance

management, to further improve the level of efficiency

and modernization of the Higher Education to help teachers improve work efficiency, maintenance workflow student achievement in the systematic,

standardized and efficient.

KEY WORDS: student achievement management; B / S

architecture; java; Oracle datebase

页脚内容4

第一章 绪论 目 录

第一章 绪论 ......................................................... 7 1.1研究背景 ......................................................... 7 第二章 系统开发相关技术介绍 ....................................... 8 2.1 系统架构 ....................................................... 8

2.1.1 B/S架构和C/S架构介绍 .......................................... 8 2.1.2 本系统架构 .......................................................... 8

2.2 java语言 .................................................... 8

2.2.1 java简介 .......................................................... 8

2.3 Oracle数据库 ............................................... 9

2.3.1 Oracle简介 ....................................................... 9 2.3.2 Oracle数据库体系结构概述 ...................................... 9

2.4 本章小结 ..................................................... 10 第三章 系统需求分析 ............................................... 10 3.1用户权限分析 .................................................. 10 3.2系统功能分析 .................................................. 11 3.3 系统数据分析 .................................................12 第四章 系统设计 .................................................... 13 4.1 系统技术架构设计 ............................................ 13 4.2数据库设计 ................................................... 14

4.2.1 项目E-R图 ...................................................... 14 4.2.2数据库表的设计 ................................................... 14

4.3底层接口设计 ................................................ 16

页脚内容5

第一章 绪论 4.3本章小结 ...................................................... 17 第五章 详细设计和实现 ............................................. 17 5.1 登录模块 ...................................................... 18

5.1.1功能分析 ............................................................. 18 5.1.2 代码实现 ............................................................ 18

5.2 学生端主页模块 .............................................. 22 5.3管理端主页模块 .............................................. 23

5.3.1 学生信息列表 ...................................................... 23 5.3.2 学生信息删除功能................................................. 29

5.4学生信息查询模块 ............................................ 31

5.4.1业务逻辑介绍 ....................................................... 31 5.4.2代码实现 ........................................................... 31

5.5新增学生模块 ................................................. 36

5.5.1业务逻辑 ........................................................... 36 5.5.2代码实现 ........................................................... 37

5.6 回收站模块 .................................................. 38 5.7 本章小结 ..................................................... 39 第六章 系统测试 ................................................... 39 6.1 测试环境 ..................................................... 39 6.2 测试工作 ..................................................... 40 6.3 本章小结 .................................................... 44

页脚内容6

第一章 绪论

第一章 绪论

1.1研究背景

随着计算机科学的发展,利用计算机来实现数据的管理已经越来越成为一种趋势。当需要管理的数据量较大时,可以通过根据自身特点设计并开发一个对应的信息管理系统来完成既定的功能。相较于传统的信息管理,计算机信息管理系统具有存储量大、查询迅速、可靠性高、成本低和使用方便等优点。

现在的大学生成绩信息管理就可通过计算机来实现。开发一个大学生成绩管理系统对于教务人员和学生有着很大的意义,可以帮助相应人员从繁重的信息管理工作中出来。

1.2研究目标

通过对学校教务系统成绩管理的研究,开发一个与学校教务成绩管理特点想适应的学生成绩管理系统。本系统设计的主要目标如下:

能满足成绩管理的功能需求。

有一定的人性化设计,方便用户使用。 操作快捷,提高办公效率。

有一定的安全机制,防止恶意篡改数据。

页脚内容

7

第一章 绪论 第二章 系统开发相关技术介绍

本系统的开发涉及到的语言和技术有:B/S框架技术、软件开发语言java、数据库技术(oracle)等。

2.1 系统架构

2.1.1 B/S架构和C/S架构介绍

C/S全称Client/Server。客户机需安装相应的客户端才可使用。C/S架构通过把任务合理分配到客户端和服务器端,来降低服务器端资源开销。但是C/S架构在系统更新时从服务器到客户机都需要更新,代价较大。

B/S全称Browser/Server。相较于C/S架构,B/S架构不需客户机安装客户端,只需安装浏览器即可,例如360浏览器、火狐浏览器等。浏览器通过Web Server 同数据库进行数据交互。B/S架构在系统进行更新时,只需更新服务器即可,但是本架构相较于C/S架构对服务器要求比较高。

2.1.2 本系统架构

本系统用户定位于高校师生,是一个小型系统,普通的PC机即可担任客户机。同时考虑到采用B/S架构用户不需客户端以及维护方便的优势,最终采用B/S架构。

2.2 java语言

2.2.1 java简介

Java语言是一种面向对象的语言,继承了c++语言面向对象的核心,同时去除了c++中难懂的指针、多重继承(以接口代替)、运算符重载等特性。Java语言真正实

页脚内容8

第一章 绪论 现了“一次编译,到处执行”的特性。

2.3 Oracle数据库

2.3.1 Oracle简介

Oracle 是殷墟出土的甲骨文(oracle bone inscriptions)的英文翻译的第一个单词。

Oracle 公司是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州 Redwood shore。

Oracle 公司因其复杂的关系数据库产品而闻名。Oracle的关系数据库是世界第一个支持SQL语言的数据库

2.3.2 Oracle数据库体系结构概述

平常所说的 Oracle 或 Oracle 数据库指的是 Oracle 数据库管理系统。 Oracle 数据库管理系统是管理数据库访问的计算机软件(Oracle database manager system). 它由 Oracle 数据库和 Oracle 实例(instance)构成。

Oracle 数据库: 一个相关的操作系统文件(即存储在计算机硬盘上的文件)集合,这些文件组织在一起, 成为一个逻辑整体, 即为 Oracle 数据库。Oracle 用它来存储和管理相关的信息。Oracle数据库必须要与内存里的实例合作,才能对外提供数据管理服务。

Oracle 实例: 位于物理内存里的数据结构,它由操作系统的多个后台进程和一个共享的内存池所组成,共享的内存池可以被所有进程访问。Oracle 用它们来管理数据库访问。用户如果要存取数据库(也就是硬盘上的文件) 里的数据, 必须通过Oracle实

9

页脚内容第一章 绪论 例才能实现, 不能直接读取硬盘上的文件。

实际上, Oracle 实例就是平常所说的数据库服务(service)。

区别:实例可以操作数据库;在任何时刻一个实例只能与一个数据库关联,访问一个数据库;而同一个数据库可由多个实例访问(RAC)。类似java里的类和对象,一个对象只属于一个类,类可以有多个对象。

表空间(Tablespace):oracle数据库是通过表空间来存储表的,一个数据库实例可以有n个表空间,一个表空间下有n个表。

用户(user):oracle数据库建好后,要想在库里建表,必须先为库创建用户,并为用户指定表空间,不指定的话默认为users表空间。

表(Table):有了数据库、表空间和用户就可以创建表,是由行和列组成的二维数据结构,用来存储行记录。

数据(Data):表中的行记录。

2.4 本章小结

本章主要对系统所用的开发工具做了简单介绍。

第三章 系统需求分析

系统在开发之前,需要和用户进行沟通了解用户所需的具体功能。需求分析不是一个简单的阶段,它是贯穿于整个系统开发过程中的。做好需求分析是系统开发的必备工作。本系统分析主要从需求分析、权限分析、功能分析以及数据分析入手。

3.1用户权限分析

随着学校招生人数的增长,随之而来的就是大量的学生信息管理问题,本论文针对的

页脚内容10

第一章 绪论 便是学生成绩信息管理。成绩管理主要涉及两方面用户的操作:学生和管理员(老师)。学生在成绩管理上的权限仅限于用户注册、个人信息查询;管理员在成绩管理上的权限有:所有学生用户的查询、增加、删除、编辑,所有学生用户成绩信息的查询、增加、删除。

图3-1 用户权限示例

Fig.3-1User permissions example

3.2系统功能分析

在对学生和教师所需功能进行分析之后,本系统分别对学生子系统和管理员子系统做了如下功能设计。

学生端功能如下: 1、登录功能

能够实现一个登录页面,提交后在后台判断用户名密码的正确性。后台处理使用Servlet实现。

(1)输入的用户名和密码是通过和数据库中信息进行比对,比对成功判断登录成功,跳转到登录成功页面,并在页面上判断用户是否已经登录,如果是已经登录状态,则显示登录用户名及登录时间。

(2)输入的用户名和密码是通过和数据库中信息进行比对,比对失败判断登录失败,此时,跳回登录页面,并在登录页面上提示用户:“用户或密码错误,请重新登录”。

2、注册功能

通过在注册页面输入自己信息,提交后通过验证可完成学生注册。 3、显示信息功能

登录成功后可以看到自己详细信息。 管理端功能如下:

1、登录功能(同学生端)

2、信息列表功能

(1)按照学号从小到大显示全部学生的列表

页脚内容11

第一章 绪论 (2)学生列表进行分页显示。

(3)在列表的“姓名”列增加链接,点击链接,可以查看对应学生的详细信息。

3、各科成绩范围查询功能

在学生列表页面的“各科”下拉框中选中某课,后面输入框中输入成绩范围,点击“查询”按钮,在学生列表页面中显示查询结果。

4、学生详细信息功能

在学生列表中,点击“姓名”列的链接,显示该学生的详细信息。 5、新增学生功能

在学生列表页面,点击“新增”按钮,跳转到新增学生页面,在页面上输入学生的信息点击“提交”按钮,将信息提交至数据库。

6、删除学生功能

在学生列表中,选中想删除的学生记录前面的复选框,点击“删除”按钮,删除选中的学生信息。页面跳转至学生列表页面,并且被删除的学生记录不再被显示。

7、回收站功能

显示被删除的学生列表,在回收站页面提供删除撤销和彻底删除等功能。

3.3 系统数据分析

本系统在开发中会使用到学生相关信息包括:学号、姓名、性别、出生日期、手机号、班级号、各科成绩。其中学号会作为学生在数据库中的主键使用,作为唯一标识。

图 3-2 系统流程 Fig.3-2 System Flow

页脚内容12

第一章 绪论

第四章 系统设计

本章主要设计了系统技术架构设计、数据库设计和底层接口设计。如果把系统比喻一颗树的话,本章的工作就是设计树干。好的系统设计可以大大减少之后的代码实现部分工作量。

4.1 系统技术架构设计

本系统采用当前主流的B/S作为系统架构,此模块中的业务层被划分为:客户层、表示层、业务逻辑层以及数据层。

数据层:为系统的最底层,存储了系统所需的数据。系统所做的操作最终都会反映到数据库中。

业务逻辑层:该层内为系统的核心代码,负责根据用户不同的指令完成对数据库对应的操作。

表示层:该层为web服务器,负责在客户层和业务逻辑层之间传输数据。

页脚内容13

第一章 绪论 客户层:该层为用户的web浏览器,表示为网页。用户可以在对应的网页上进行操作,最终会反应到数据库中。

图 4-1 系统总体架构图

Fig.4-1 System Architecture

4.2数据库设计

通过分析,可以抽取出管理员用户和学生用户两个实体类,即对应管理员用户表和学生用户表,用来管理用户信息。

4.2.1 项目E-R图

图 4-2 学生实体E-R图

Fig.4-2 Student entity E-R diagram

图4-3管理员用户实体E-R图

Fig.4-3 Administrators entity E-R diagram

图4-4 实体间关系图

Fig.4-4 Inter Entity Relationship Diagram

4.2.2数据库表的设计

数据库表设计的科学与否直接关系到项目开发的顺利与否。合理的数据库表格设计能会使项目代码实现容易、简洁,而不合理的数据库表格设计给程序员带来的工作量会大很多,且会造成代码的冗余。

本系统的数据库设计基本遵循了数据库开发的三大范式。

页脚内容14

第一章 绪论 1、第一范式:确保每列保持原子性。

2、第二范式:确保表中的每列都和主键相关。

3、第三范式:确保每列都和主键直接相关,而不是间接相关。

本系统的数据库设计基本遵循了三大范式。此设计也为之后的编码实现打好了基础,能够有效提高对代码实现的简洁性。 下表即为根据上节中所给出的E-R图设计的数据库表。

1、学生信息表

表4-1 学生信息表

Tab.4-1 Student Information Sheet

字段名称 stuid name password sex dateTime phone pce mcs epa flag 数据类型 number Vchar2 Vchar2 Vchar2 date number number number number number 字段大小 4 20 20 20 11 5,2 5,2 5,2 1 是否主键 是 否 否 否 否 否 否 否 否 否 说明 学号 姓名 密码 性别 出生日期 手机号码 运控成绩 过控成绩 嵌入式成绩 删除标志位 2.管理员信息表

表4-2 管理员信息表

Tab.4-2 Administrator information table

页脚内容15

第一章 绪论 字段名称 manid name password 数据类型 number Vchar2 Vchar2 字段大小 4 20 20 是否主键 是 否 否 说明 管理员编号 姓名 密码 4.3底层接口设计

底层接口对于系统的功能实现有决定性作用,好的接口设计对系统开发后期的编码实现不言而喻。本系统的接口设计如下:

int matchStudent(String name,String pwd);

boolean addStudent(Student student);// add student boolean delStudent0(long id[]);//delete students by id(假) boolean delStudent1(long id[]);//delete students by id(真) boolean undoDel(long id[]);//撤销

List querySubStudent(int start,int end);//分页 Student queryStudentById(long id,int flag);//通过主键和状态查询

boolean queryStudentById(long id);

boolean queryStudentByName(String name);//通过name模糊查询

boolean updateStudent(Student student);//跟新 int getRowNum();//获得总记录数 int getRowNumRB();//回收站记录

List queryStudentBySubjectScore(String subject,int scoreMin,int scoreMax);//条件查询

页脚内容16

第一章 绪论 List querySubStudentRB(int start,int end);//回收站分页

List

queryStudentBySubjectScoreRB(String subject,int scoreMin,int scoreMax);//回收站条件查询

4.3本章小结

本章主要完成了系统的框架设计工作,完成了系统的总体架构,为之后的具体编码实现打好了基础。

第五章 详细设计和实现

本系统的准备工作到此已经完毕,在本章开始对系统功能的编码实现。

页脚内容17

第一章 绪论 5.1 登录模块

本系统为成绩信息管理系统,不能被随意进入,所以需要通过登录来进行身份验证。登录页面是本系统的客户入口,所以首先被设计。

5.1.1功能分析

1、本页面要完成两种用户验证的功能,即用户需要在本页面输入用户名和密码以及用户类型。

2、本页面应该具备一定的动态效果,用来拦截错误的登录过程,比如用户名为空等;后台完成账号密码匹配功能。

3、页面设计应美观、大方。 5.1.2 代码实现

该页面的最终效果图如下图所示:

图 5-1 学生成绩管理系统登陆页面

Fig.5-1 Student achievement management system login page

用户通过在此页面输入用户名和密码及选择用户类型后(在页面上通过

javascript控制用户名和密码不可为空),在后台(LoginServlet.java)通过与数据库中信息进行匹配,匹配成功则会进入用户类型相应的用户操作界面,失败则会返回登陆页面并有提示信息:

图 5-2 管理员登陆成功页面

Fig.5-2 Administrator login success page

图5-3 学生登录成功

Fig.5-3 Student login success page

页脚内容18

第一章 绪论 图 5-4 学生成绩管理系统登陆失败

Fig.5-4 Student achievement management system login failed

1、在jsp页面为了防止用户过多的访问服务器,减少服务器的工作量,通过JavaScript实现在客户端验证登录信息的完整性:

}

function checkName(n){//验证姓名是否为空

if(n.value==\"\"){ alert(\"用户名不可为空\") }

function checkPwd(n){//验证密码是否为空 }

function checkAll(){//登录验证

if(document.getElementById(\"n\").value != \"\" && if(n.value==\"\"){ alert(\"密码不可为空\") }

document.getElementById(\"p\").value != \"\"){

return true;

}else{

alert(\"有信息为空\"); }

页脚内容return false;

19

第一章 绪论 }

2、当用户点击登录按钮之后,会把用户名等信息通过post的方式提交到LoginServlet,验证是否为真实用户;信息匹配成功时重定向到welcome.jsp页面,否则携带者“密码或用户名错误”的信息转发到login.jsp。LoginServlet关键代码如下:

// 读取request

String name = request.getParameter(\"name\"); String pwd = request.getParameter(\"pwd\"); String user = request.getParameter(\"userType\"); // 根据用户类型分别进行用户名和密码匹配 if (user.equals(\"student\")) {

int stuid = new

StudentBizImpl().matchStudent(name, pwd);

if (stuid > 0) {

SimpleDateFormat sf = new

SimpleDateFormat(\"yyyy-MM-dd\");

String loginTime = sf.format(new Date()); // 把用户名、学号、登陆时间和用户类型记录到session

request.getSession().setAttribute(\"username\",

name);

request.getSession().setAttribute(\"stuid\",

stuid);

request.getSession().setAttribute(\"loginTime\",

页脚内容20

第一章 绪论 loginTime);

request.getSession().setAttribute(\"userType\",

user);

// 重定向到welcome.jsp

response.sendRedirect(\"welcome.jsp\");

} else {

// 匹配失败转发到login.jsp

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

request.getRequestDispatcher(\"login.jsp\").forward(request,

}

if (user.equals(\"manager\")) {

Manager m = new Manager(name, pwd);

if (new ManagerBizImpl().matchManager(m)) {

SimpleDateFormat sf = new }

response);

SimpleDateFormat(\"yyyy-MM-dd\");

String loginTime = sf.format(new Date()); // 把用户名、登陆时间和用户类型记录到session

request.getSession().setAttribute(\"username\",

页脚内容21

第一章 绪论 name);

request.getSession().setAttribute(\"loginTime\",

loginTime);

request.getSession().setAttribute(\"userType\",

user);

// 重定向到welcome.jsp

response.sendRedirect(\"welcome.jsp\");

} else {

// 匹配失败转发到login.jsp

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

request.getRequestDispatcher(\"login.jsp\").forward(request, } }

}

response);

5.2 学生端主页模块

学生登录成功后可在欢迎页面点击“进入学生成绩管理系统”按钮,通过超链接的方式到后台DetailStudentServlet提取对应学生详细信息,并转发到学生主页。本页面显示学生的个人详细信息,因为业务的需求本页面只提供显示功能,并没有编辑功

页脚内容22

第一章 绪论 能。

图5-5 学生个人主页

Fig.5-5 Student Personal Home page

5.3管理端主页模块

本页面为管理端主页,承担了本系统的大部分功能:学生信息列表、成绩范围查询、新增学生用户入口、删除学生用户、回收站入口等。

图5-6 管理端首页

Fig.5-6 Administrators Home page

5.3.1 学生信息列表 1、信息显示业务逻辑

当管理员用户从欢迎页面点击“进入学生管理系统”按钮之后,会通过当前页面的location对象的href=’StudentListServlet?pageNow=1’进入到后台servlet层。在StudnetListServlet的

doGet(request,response)方法中取出request中携带的pageNow,通过dao层的分页查询函数实现相应页面数据的提取,并做好页数和显示记录数的控制。然后通过转发的方式转发到管理端首页。StudentListServlet关键代码如下:

int pageNow;// 存当前页 int pageCount;// 存总页数

int pageSize = 5;// 每页显示记录数 int rowNum;// 记录总记录数

页脚内容23

第一章 绪论

String page = \"1\";

try {

page =

request.getParameter(\"pageNow\").toString();

} catch (NullPointerException e) {

try {

page =

request.getSession().getAttribute(\"currentPage\")

// 注销查询条件

if (request.getSession().getAttribute(\"subject\") != }

.toString();

} catch (NullPointerException e1) { }

response.sendRedirect(\"login.jsp\");

null) {

request.getSession().removeAttribute(\"scoreMin\");

页脚内容 request.getSession().removeAttribute(\"subject\");

24

第一章 绪论 request.getSession().removeAttribute(\"scoreMax\");

StudentBiz bbi = new StudentBizImpl(); //得到总记录

rowNum = bbi.getRowNum(); //得到总页数

pageCount = rowNum % pageSize == 0 ? rowNum / pageNow = Integer.parseInt(page); pageNow = pageNow <= 1 ? 1 : pageNow; }

// 控制当前页码最小值

pageSize : rowNum

/ pageSize + 1;

//控制当前页最大值

pageNow = pageNow >= pageCount ? pageCount :

pageNow;

int start = (pageNow - 1) * pageSize + 1;

int end = start + pageSize -1> rowNum ? rowNum : //控制分页查询条件

start + pageSize-1;

// 封装request并转发到index.jsp

页脚内容25

第一章 绪论 request.setAttribute(\"list\",

bbi.querySubStudent(start, end));

request.setAttribute(\"lastPage\", pageNow - 1); request.setAttribute(\"nextPage\", pageNow + 1); request.setAttribute(\"endPage\", pageCount); request.getSession().setAttribute(\"currentPage\",

pageNow);

request.getRequestDispatcher(\"index.jsp\").forward(request, response); 2、列表外加功能 (1)全选功能

为了管理员用户在使用本列表进行操作时的易用性,在列表设计时在表格第一列添加了全选等复选框来完成多选和全选等操作。

当用户点击全选复选框时,本业内所有记录被选中,释放全选则所有记录同时被释放;当所有记录被选中时,全选复选框也同时被选中。代码如下:

/* * 全选

* checked则全选 * 否则松开全部 */

function chooseAll(n){

var ids=document.getElementsByName(\"stuId\");

页脚内容26

第一章 绪论

} /*

if(n.checked){

//$(\"[name=stuId]\").checked=true; for(var i=0;iids[i].checked=true;

}else{ }

for(var i=0;iids[i].checked=false;

* 单选

* 如果都选中触发全选 */

function choose(){

var stuIds=document.getElementsByName(\"stuId\"); var flag=0;

for(var i=0;iif(flag==stuIds.length){

if(stuIds[i].checked){ }

flag++;

document.getElementById(\"checkAll\").checked=true;

}else{

页脚内容27

第一章 绪论

document.getElementById(\"checkAll\").checked=false;

}

}

(2)详细信息功能

用户可以通过点击学生用户的姓名来到达用户详细信息页面,来查看对应学生的所有信息。当用户点击该按钮之后,会触发onclick函数,页面会跳转到DetailStudentServlet,得到学生详细信息然后转发到detailStudent.jsp页面,在此页面实现学生详细信息的显示。

(3)选中变色功能

为了用户在使用时的使用体验,通过JavaScript的方式给表格中每行添加了onmouseover事件:当鼠标移动到相应的行时,该行颜色改变。关键代码如下:

/*

* 鼠标over则变色 */

$(document).ready(function () {

$('tbody tr').hover(function() { $(this).addClass('odd'); }, function() {

$(this).removeClass('odd'); });

});

(4)跳页功能

页脚内容28

第一章 绪论 用户可以通过点击表格下方的“首页”、“尾页”、“上页”、“下页”超链接来分别实现对应的跳转功能。用户还可以用在表格下方的文本框中输入到相应的页码来跳转到对应的页码。

关键代码如下:

首页 href=\"StudentListServlet?pageNow=${requestScope.lastPage }\">上一页

href=\"StudentListServlet?pageNow=${requestScope.nextPage }\">下一页 href=\"StudentListServlet?pageNow=${requestScope.endPage }\">尾页

5.3.2 学生信息删除功能

用户通过在任意页面选中一个或一个以上的学生后,点击删除按钮即可完成相应的删除操作。

1、业务逻辑介绍

当用户选中学生信息不为空时,点击删除submit按钮,会把选中的信息通过post的方式提交到后台DelStudentServlet,通过在后台调用StudentDaoImpl类的

delStudent1(int id[])方法,来实现对相应学生用户flag属性的修改,完成在显示学

29

页脚内容第一章 绪论 号列表的隐藏操作。并在页面内显示删除成功与否信息。

图5-7 删除成功

Fig.5-7 successfully deleted

2、后台关键代码

//提取学号数组

String[] stuIds=

request.getParameterValues(\"stuId\");

int[] ids=new int[stuIds.length]; for(int i=0;iString msg=\"\";

//调用删除方法完成删除操作,并根据返回值来确定是否删除成功 if(new StudentBizImpl().delStudent0(ids)){

msg=\"删除成功\";

ids[i]=Integer.parseInt(stuIds[i]);

}else{ }

//封装删除结果重定向到

msg=\"删除失败\";

QueryStudentBySubjectScoreServlet

response.sendRedirect(\"QueryStudentBySubjectScoreS

页脚内容 request.getSession().setAttribute(\"msg\", msg);

30

第一章 绪论 ervlet\");

5.4学生信息查询模块

用户通过下拉列表框选择想要查询的科目,并通过在文本框中输入最低分和最高分,点击查询按钮完成相应科目成绩范围查询功能。查询结果会在queryStudent.jsp页面显示。

5.4.1业务逻辑介绍

当用户完成查询条件选择和输入时,点击查询按钮会把查询条件通过get的方式提交到后台QueryStudentByStudentScoreServlet,在后台取出request里封装的查询条件并调用StudnetDaoImpl类的 queryStudentBySubjectScore(String subject,int

scoreMin,int scoreMax)方法来完成查询,并把查询结果封装到response中,转发到queryStudent.jsp页面显示。

前台完成查询信息不为空和最小值、最大值数值控制。

图5-8 查询结果显示页面 Fig.5-8 Query results page

5.4.2代码实现 1、前台查询条件控制代码

//跳转到查询QueryStudentBySubjectScoreServlet

function toFind(){

var

页脚内容31

第一章 绪论 s=document.getElementById(\"s\").selectedIndex;

var

subject=document.getElementById(\"s\").options[s].value;

var

smin=parseInt(document.getElementById(\"smin\").value);

var

smax=parseInt(document.getElementById(\"smax\").value);

if(subject != \"\"){

if(smin == \"\"){ }

if(smax == \"\"){ }

var r=/^[0-9]+(\\.[0-9]{1,2})?$/; if(r.test(smin)){

if(r.test(smax)){

if(smin<=smax){ smax=100;//最高分默认为100 smin=0;//最低分默认为0

window.location.href=\"QueryStudentByStudentScoreServlet?subject=\"+subject+\"&scoreMin=\"+smin+\"&scoreMax=\"+smax;

页脚内容32

第一章 绪论 }

}

}else{ }

alert(\"拜托最低分比最高分还高了\")

}else{ }

alert(\"最高分格式不对\")

}else{ }

alert(\"最低分格式不对\")

2、后台关键代码 try{

int smin,smax; String subject;

if(request.getParameter(\"scoreMin\")==null){

subject=request.getSession().getAttribute(\"subject\").toString();

smin=Integer.parseInt(request.getSession().getAttribute(\"scoreMin\").toString());

页脚内容33

第一章 绪论 smax=Integer.parseInt(request.getSession().getAttribute(\"scoreMax\").toString());

}else{

smin=Integer.parseInt(request.getParameter(\"scoreMin\"));

subject=request.getParameter(\"subject\");

smax=Integer.parseInt(request.getParameter(\"scoreMax\"));

request.getSession().setAttribute(\"scoreMin\",smin);

request.getSession().setAttribute(\"scoreMax\",smax);

request.getSession().setAttribute(\"subject\",

}

//记录smin和smax

subject);

StudentBiz bbi=new StudentBizImpl(); //获得查询结果 List

list=bbi.queryStudentBySubjectScore(subject, smin, smax);

页脚内容34

第一章 绪论

int rowNum=list.size();

int pageSize=5;//每页显示记录条数 int

pageCount=rowNum/pageSize==0?rowNum/pageSize:rowNum/pageSize+1;//控制总页数

//当前页码设置和读取和控制 int pageNow=1;

if(request.getParameter(\"pageNow\")!=null){

pageNow=Integer.parseInt(request.getParameter(\"pageNow\"));

pageNow=pageNow>=pageCount?pageCount:pageNow;

pageNow=pageNow<=1?1:pageNow; int startIndex=(pageNow-1)*pageSize; int

}

endIndex=startIndex+pageSize>rowNum?rowNum:startIndex+pageSize;

//封装request

request.setAttribute(\"startIndex\",startIndex); request.setAttribute(\"endIndex\" , endIndex);

页脚内容35

第一章 绪论

request.setAttribute(\"lastPage\", pageNow-1); request.setAttribute(\"nextPage\", pageNow+1); request.setAttribute(\"endPage\", pageCount); request.setAttribute(\"list\",list ); //转发到

request.getRequestDispatcher(\"queryStudent.jsp\").forward(request, response);

}catch(NumberFormatException e){

response.sendRedirect(\"StudentListServlet\");

}catch(NullPointerException e1){ }

response.sendRedirect(\"StudentListServlet\");

5.5新增学生模块

5.5.1业务逻辑

用户在点击主页或者查询页面中的新增按钮之后,会触发一个超链接指向

addStudent.jsp,用户在此页面完成信息的确诊录入提交后即可完成在数据库中完成学生用户的新增功能。

前台控制关键信息的不为空控制,以及相应信息的格式控制。

图5-9 新增学生页面

Fig.5-9 New Students page

页脚内容36

第一章 绪论 5.5.2代码实现 1、后台关键代码

//实例化一个student

stu.setDateTime(request.getParameter(\"dateTime\"));

stu.setPhone(Long.parseLong(request.getParameter(\"phone\")));

stu.setPce(Double.parseDouble(request.getParameter(\"pce\")));

stu.setMcs(Double.parseDouble(request.getParameter(\"mcs\")));

stu.setClassNo(request.getParameter(\"classNo\")); try{

Student stu=new Student();

stu.setName(request.getParameter(\"name\")); stu.setSex(request.getParameter(\"sex\"));

页脚内容37

第一章 绪论 stu.setEpa(Double.parseDouble(request.getParameter(\"epa\")));

//调用新增学生函数,并得到返回值

if(new StudentBizImpl().addStudent(stu)){

request.getSession().setAttribute(\"msg\", \"添加成

功\");

}else{

request.getSession().setAttribute(\"msg\", \"添加失

败\");

response.sendRedirect(\"QueryStudentBySubjectScoreServlet\");

}catch(NumberFormatException e){ } }

response.sendRedirect(\"StudentListServlet\");

}

//转发到条件查询

5.6 回收站模块

考虑到用户可能有误删的操作,设计了回收站功能。用户第一次删除的用户会显示在回收站中,在回收站页面用户可完成已删除用户的恢复和彻底删除等操作。

图5-10 回收站页面

页脚内容38

第一章 绪论 Fig.5-10 Trash page

5.7 本章小结

本章通过对系统各个功能的详细分析,进行编码设计,基本实现了需求分析的所需功能。

第六章 系统测试

6.1 测试环境

软件测试通常是软件开发中的最后一个阶段,承担着检测软件功能是否实现、可靠性是否良好、是否存在bug的重要责任。对于任何系统,在实际交付用户之前都应做详细的系统测试。本系统的测试环境为:

(1)硬件环境:CPU Pentium(R) Dual-Core/ 内 存 8GB/ 硬 盘 500GB/ 计 算 机 名SinclairWu.

39

页脚内容第一章 绪论 (2)软件环境:Windows 10 家庭版系统下 Oracle 11g 作为后台数据库,在 Internet 信息服务(IIS)下测试的。

6.2 测试工作

1、登录模块测试 测试用例序号 测试功能描述 01 测试用例名称 1、运行登录页面 2、检验账号和密码是否匹配 测试用例描述 测试步骤 1、运行大学生成绩管理系统 2、打开登录页面,输入账号、密码和选择用户类型。 期待输出结果 1、可以显示登录页面 2、输入正确信息可以成功登录 3、反之,登录失败,并提示。 具体测试情况: 输入与测试用例 输入用户名,不输入密码 不输入用户名,输入密码 输入错误用户名和错误密码 输入正确用户名和正确密码 测试总结 2、管理员主页模块测试 测试用例序号 02 测试用例名称 管理员主页模块测试 测试功能描述 1、正确显示学生信息 2、具有分页功能 页脚内容登录模块测试 被测试模块 登录模块 测试结果 密码为空 用户名为空 用户名或密码错误 显示登录成功 所有测试用例得到期望输出 被测试模块 管理员主页模块 40

第一章 绪论 3、全选功能 4、通过管理员主页可成功进入添加、查询、回收站、登出等页面 测试用例描述 测试步骤 1、输入管理员用户名和密码,登录本系统 2、进入管理员主页 3、测试全选功能 4、分别点击页面内各按钮 期待输出结果 1、可成功进入到管理员主页 2、学生信息分页显示 3、学生列表具有全选功能 4、各个按钮工作正常 具体测试情况: 输入与测试用例 登录管理员账户,进入到主页 点击全选 释放全选 点击添加按钮 不选学生,点击删除按钮 选择学生,点击删除按钮 输入查询信息,点击查询按钮 点击回收站按钮 点击注销登录按钮 测试总结 3、新增学生模块测试 测试用例序号 测试功能描述 03 测试用例名称 新增学生模块测试 被测试模块 新增学生模块 测试结果 显示管理员主页 本页面内列表所有信息被选择中 本页面内列表所有信息无被选中 跳转到添加页面 提示请选择学生 提示删除成功 显示查询结果 跳转到回收站页面 跳转到loginOut.jsp 所有测试用例得到期望输出 1、每一项信息在输入后给与提示 41

页脚内容第一章 绪论 2、新增学生学号不可重复 3、全部信息正确,提交后可正确添加 4、反之,添加失败 测试用例描述 测试步骤 1、通过管理员主页跳转到新增页面 2、验证每一项信息在输入后的提示信息 3、验证学号是否可以重复 4、全部信息正确,点击提交。 5、有错误信息,点击提交。 期待输出结果 1、每一项信息当格式符合对应的要求后给予输入正确提示 2、反之,给予错误提示 3、全部信息正确,可成功添加学生 4、反之,不可成功添加学生 具体测试情况: 输入与测试用例 进入到新增学生页面 每一项输入正确信息 每一项输入错误信息 全部输入正确信息,点击提交 有错误信息,点击提交 测试总结 4、查询模块测试 测试用例序号 测试功能描述 04 测试用例名称 查询模块测试 被测试模块 查询模块 测试结果 显示新增学生用户页面 提示输入正确 提示输入错误 提示添加成功 页面不跳转,页面内提示有错误信息 所有测试用例均得到期望输出 检测可否完成:输入想要查询的条件,可得到正确的查询结果,并以列表的方式显示 测试用例描述 页脚内容42

第一章 绪论 测试步骤 1、打开管理员主页 2、输入查询条件 3、点击查询 期待输出结果 具体测试情况: 输入与测试用例 得到正确的查询结果,并以列表的方式显示 测试结果 选择查询科目为过控,不输入最高分和最低显示所有学生信息 分,点击查询 选择查询科目为过控,输入最高分50,最低分100,点击查询 选择查询科目为过控,输入最高分100,最得到正确的查询结果 低分50,点击查询 测试总结 5、回收站模块测试 测试用例序号 测试功能描述 测试用例描述 测试步骤 1、进入到回收站页面 2、选择学生,并点击撤销 3、选择学生,点击彻底删除 期待输出结果 1、可以完成已删除信息的恢复 2、可以完成已删除信息的彻底删除 具体测试情况: 输入与测试用例 选择学生,并点击撤销 选择学生,并点击删除 测试结果 提示撤销删除成功 提示删除成功 页脚内容提示最低分不可大于最高分 所有测试用例均得到期望输出 05 测试用例名称 回收站模块测试 被测试模块 回收站模块 检测在回收站页面完成删除信息的撤销和彻底删除操作 43

第一章 绪论 不选学生,并点击撤销 不选学生,点击删除 测试总结 提示请选择学生 提示请选择学生 所有测试用例均得到期望输出 6.3 本章小结

本章完成了本系统主要功能的测试工作。经测试本系统各功能达到了预期目标,工作良好,系统可以交付使用。

参考文献:

[1] 徐庆华,刘国光.学生成绩管理系统的设计与实现[J].黄石高等专科学校学报,2001,

17(2):20.21.

[2] 贾树刚,刘长琦.通用学生成绩管理系统设计和实现[J].太原城市职业技术学院学报,

2010(4): 165-166.

[3] 肖朝晖.基于 B/S 模式的学生成绩管理系统的设计与实现[J].科技信息,

页脚内容44

第一章 绪论 2010(13):69.70.

[4] Anand Ritu,Kapadia Nikhil,John Sindhu S.Performance management system[M].Tara Consultancy Services Limited Publication,2012. [5] Yu Yixiu,Liang Sisheng.Sale system analysis and design for the online cosmetic store based

on JSp[c].2011 IEEE 2nd International Conference on Software Engineering and Service Science(ICSESS 2011),2011,438—441.

[6] 岳连德,孔令举.基于通用模式的高校学生成绩管理系统设计[J].计算机工程与设计,

2006,27(8):1476—1478

[7] 王成良.何玉林 基于 B/S 模式应用系统下的资源访问控制[J].计算机应用研究 2000(4)

[8] Digital library billing management system design and implementation Nie Ying ,Communications in Computer and Information Science[J].2011, Proceedings (20)

[8] 徐方,邓敏.内容管理系统 (CMS)的发展与应用[J].孝感学院学报,2007,(03).

[9] 沈炜,赵君.基于 B/S 模式下的学生体育成绩管理系统研发[J].信息与电脑,2012(2):52.53.

[10] 沈济南,梁芳.基于 c/S 与 B/S 混合模式的学生成绩管理系统设计与实现

页脚内容45

第一章 绪论 [J].牡丹江师范学院学报(自然科学版),2006(4):18.19.

[11] KurniawanBudi.JavaServerFaces 编程. 译:刘克科 王.北京:清华大学出版社,2008,5-6

[12] Ma Nan,Fang Chao,Liu WenQiang.Storage and display system of relic information based on JSP and

MVC[C] . Advanced Materials Research Advanced Materials and Information Technology Processing(AMITP 20 1 1),2011,657—662.

[13] H.M.Deitel,P.J.Deitel.Java 程序设计教程[M] .北京:清华大学出版社,2004:917-945.

[14] Li Min—Song.Realization of electronic ticket service system based on JSP[J].Advanced Materials Research,2011,820-824.

页脚内容46

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务