学生宿舍管理系统论文_第1页
学生宿舍管理系统论文_第2页
学生宿舍管理系统论文_第3页
学生宿舍管理系统论文_第4页
学生宿舍管理系统论文_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生宿舍管理系统

专业名称:

级:

学生姓名:

指导老师:

完成时间

目录

绪论1

1.1开发背景与现状1

1.2开发设计的意义1

开发环境介绍3

2.1开发工具MYECLIPSE3

2.2数据库MYSQL3

2.2.1MySQL概述3

2.2.2MySQL的特性3

2.2.3MySQL的应用4

3系统需求分析5

3.1功能需求5

3.1.1基本功能需求5

3.1.2总体功能模块6

3.2性能需求8

3.2.1系统安全性8

3.2.2数据库选择9

3.2.3系统稳定性9

系统设计10

4.1数据库设计10

4.1.1数据库概念结构设计10

4.1.2数据库逻辑结构设计17

4.2模块设计19

4.2.1用户管理模块19

4.2.2宿舍管理模块21

4.2.3信息维护模块22

4.2.4外来人员管理模块24

4.2.5学生注册模块29

系统的编码与实现32

5.1系统的实现平台32

5.1.1系统环境32

5.1.2后台数据库选择及配置32

5.2系统功能模块实现32

5.2.1学生注册模块34

5.2.2宿舍卫生管理44

5.3数据库操作的实现47

5.4系统测试49

5.4.1系统测试的目的50

5.4.2系统的测试环境50

结52

谢53

参考文献54

学生宿舍管理系统毕业设计论文

1绪论

1.1开发背景与现状

随着时代的发展,计算机技术越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。目前各行各业广泛使用专用系统,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,设计开发好一个专用系统对一个(机或构部门)的发展十分重要。近年来,随着用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性对化于。学校而言,学生宿舍管理是必不可少的组成部分。目前仍然存在有学校停留在宿舍管理部门人员手工记录数据的阶段,手工记录对于规模小的学校来说勉强可以接受;但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的,而且当查找某条记录时由,于数据量庞大,只能依靠人工去一条一条地查找,这样不但麻烦而且浪费许多时间,工作效率比较低。采用计算机来管理宿舍和学生的信息,大大提高了查询的速度,节约了人力和物力资源,达到了预期的要求。今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;

其次,计算机可以节省许多资源;

第三,计算机可以大大的提高人们的工作效率;

第四,计算机可以使敏感文档更加安全,等.等

1.2

开发设计的意义

随着高校办学规模的扩大,在校学生的学历层次、思想状态、文化水平呈多样化、复杂化趋势,这在很大程度上给学生管理工作带来许多新的问随题着。学生人数的增多,高校学生宿舍管理的信息量日益庞,大账本化的工作模式获取信息,慢查阅困难,准确性差,很难适应高水平。因此,如何为学生提供一个安全整、洁、舒

适的生活和学习环境,如何应用现代技术更科学高、效地对学生宿舍进行管理是各宿舍管理工作者的目标。

在传统模式下利用人工进行学生宿舍管理存,在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率,针对这些情况,我们可使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理这,一技术具有手工管理所无法比拟的优点,如:检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长,成本底等。这些优点能够极大地提高学生信息管理的效率,使我们的学校在市场经济的发展过程中具有一定的竞争优势,也是学校实现科学化,正规化,现代化的重要条件。实现了科学、统一管理,避免了人工操作产生的错误,大大提高了工作效率。

为了实现提高高校宿舍管理部门的工作效率;充分利用资源;减少不必要的人力,物力和财力的支出;方便宿舍管理部门的工作人员全面地掌握学生住宿情况等目的;为宿舍管理部门,开发设计专用系--统学生宿舍信息管理系统来进行管理学生宿舍信息,使学生宿舍信息实现标准化的管理和规范化的制度是十分要的。

2开发环境介绍

2.1

开发工具MyEclipse

MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)

是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效它率是。功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,支持完HTML整的,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。

MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,SpringHibernate,EJB3,JDBC数据库链接工具等多项功能可。以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具

2.2数据库MySQL

2.2.1MySQL概述

MySQL是一个小型关系型数据库管理系统开,发者为瑞典MySQLAB公司。目前MySQL被广泛地应用在Internet上的中小型网站中由。于其体积小速、度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

2.2.2MySQL的特性

1.使用C和C++编写,并使用了多种编译器进行测试保,证源代码的可移植

性。

支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。

为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、

Perl、PHP、Python、Ruby和Tcl等。

支持多线程,充分利用CPU资源。

优化的SQL查询算法,有效地提高查询速度。

既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。

提供TCP/IP、ODBC和JDBC等多种数据库连接途径。

提供用于管理、检查、优化数据库操作的管理工。具

可以处理拥有上千万条记录的大型数据库。

2.2.3MySQL的应用

与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL不支持视图(已经被列入5.1版的开发计划)、事件等)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说MySQL,提供的功能已经绰绰有余而,且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。

3系统需求分析

学生宿舍管理是当代学校中不可或缺的组成部分,在信息化飞速发展的今

天,它的出现已经成了一种必然本,文将从宿舍管理系统的历史和现状进行分析,

以求证本系统的设计具有实际的意义,并得到它在未来的发展,从而跟上时代的

脚步,做出一个高质量的、安全性好的宿舍管理系统,使其不仅能满足学校现在的需要,也能满足将来一段时间的需要。

学生宿舍管理系统的开发主要包括前台用户界面的开发和后台数据库的开

发,对于后台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全

性好的数据库。而对于前端应用程序的开发则要求应用程序能提供强大的数据操

纵功能,界面友好、使用简单方便等特点。本系统采用java作为前台用户界面的开发语言,java语言开源而且稳定,后台的数据库采MySql用。

3.1功能需求

3.1.1基本功能需求

主要实现的是学生宿舍管理系统,在设计该系统时,应尽可能的贴近,用户便于用户操作。系统在实现上应该具有如下功能:

系统要求宿管人员输入正确的账号和密码才能进入系统。

系统提供学生注册,并上传照片。

系统应该提供学生的入住信息及学生注册后的学生个人详细信息

系统应提供宿管员的信息查询功能。

系统应提供信息维护功能,对学生信息添加,修改,删除。

新生可以自己根据学号在入学前查找自己所在的宿舍床位。

系统提供宿舍外来人员登记的功能。

系统提供记录学生宿舍卫生管理的功能,

系统提供宿舍设备管理功能。

3.1.2总体功能模块

宿舍管理系统主要实现的功能有:宿管员登录、学生注册、治安管理、信息查询、信息维护、宿舍设备管理、外来人员进出登记管理等。

宿

宿舍

管理

宿舍

设备

管理

外来

人员

管理

管理

人员

登录

卫生

管理

查询

宿舍

修改查询

学生宿舍

评选

优秀

设备

退

宿

宿舍

宿舍

图3.1总体功能模块图

3.2性能需求

3.2.1系统安全性

对于系统为方便学校管理学生宿舍而开发,便于统一管理,对学生信息表进

行保护,没有登录的人员不能直接访问学生信息表,用于保护学生的信息。

3.2.2数据库选择

MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典

MySQLAB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由

于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,我选用了MySql作为数据库开发。

3.2.3系统稳定性

本系统采用MVC模式(ModelViewControlle),使应用程序,处理和输出分

开,他们各自处理自己的业务,不应一个部分的逻辑业务变动,而导致整体代码的重写。本系统的代码就是最典型JSP的+servlet+javabean的模式。

4系统设计

4.1数据库设计

数据库设计(DatabaseDesign)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。

数据库设计是建立数据库及应用系统的技术,是信息系统开发和建议中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。

4.1.1数据库概念结构设计

从需求分析可以看出,本系统存在以下几个实体:

学生实体:用于显示学生的属性,包括学生学号、姓名、班级、性别、户籍所在地、所在宿舍号、联系方式。

宿管员实体:用于显示宿管员的用户名和密码。

学生上传照片的实体:照片的id、照片的名字、照片对应学生的学号。导员实体:用于显示导员的姓名、所带班级和联系方式。

外来人员:用于显示外来人员的姓名、身份证号、目的、来的时刻、走的时刻。

E-R模型设计:

根据实体设计,可以得到各个实E-R体图和部分子系统E-R图。

(1)学生实体E-R图如图4.1所示。

姓名

宿舍号

性别

学生

学生ID

籍贯

班级

联系电话

图4.1学生实体E-R图

(2)宿管员实体E-R图如图4.2所示。

宿管员

用户名

密码

图4.2宿管员实体E-R图

(3)照片实体E-R图如图4.3所示。

名字

学生id

照片

照片ID

图4.3学生实体E-R图

(4)导员实体E-R图如图4.4所示。

姓名

所带班级

导员

电话

图4.4导员实体E-R图

(5)外来人员实体E-R图

姓名

来时间

身份证号

外来人员

目的

离开时间

图4.5外来人员实体E-R图

汇总后总体E-R模型图:

姓名

Id

导员

电话

班级

宿舍号

人数

辅导

学号

性别

姓名

宿舍

学生

宿舍

住宿

电话

管理

户籍

密码

宿管员

管理

使用

姓名

用户名

登记

身份证号

管理

外来人员

目的

设备

来时

走时

名称

数量

图4.6总体E-R图

4.1.2数据库逻辑结构设计

1.学生信息表

存储了学生的基本信息。

表4.1学生信息表

字段名

ID

姓名

姓名

班级

数据类型

Int

Char

Char

Char

数据长度

32

20

20

2

是否为空

N

Y

Y

Y

条件

Key

P_K

性别

户籍

联系方式

Char

Char

Char

4

100

11

Y

Y

Y

2.宿管员信息表

存储了宿管员的基本信息。

表4.2宿管员信息表

字段名

ID

用户名

密码

数据类型

int

Char

Char

数据长度

32

50

30

是否为空

N

Y

Y

条件

Uni

Key

P_K

3.宿舍信息表

存储了学生上传照片的基本信息。

表4.3学生上传照片表

字段名

ID

名字

对应学生的学

数据类型

int

Char

Char

数据长度

32

50

32

是否为空

N

Y

Y

条件

Key

P_K

4.班主任表

存储了班主任的基本信息。

表4.4班主任表

字段名班主任ID

姓名

手机号

所带班级

数据类型

Int

Char

Char

Char

数据长度

32

20

11

50

是否为空

N

Y

Y

Y

条件

Key

P_K

4.外来人员登记表

存储了外来人员的基本信息。

表4.5外来人员登记表

字段名

数据类型

数据长度

是否为空

条件

Key

ID

姓名

省份证号

目的

日期

进入时间

离开时间

Int

Varchar

varChar

varChar

Date

Date

Date

32

50

11

500

N

Y

Y

Y

Y

Y

Y

P_K

4.2模块设计

宿舍管理系统作为学校内部信息平台的一部分,系统的用户信息来源于内部信息平台。用户在内部信息平台单点登录,即可直接访问宿舍管理系统。系统数据库与内部信息平台的后台数据库保持同当步内,部信息平台的用户信息修改后,即可同步信息到本系统数据库。

用户在内部信息平台成功登录后,当访问宿舍管理系统系统时,内部信息平台将用户名等信息传给宿舍管理系统,宿舍管理系统的接口模块将传过来的用户信息进行解析和初始化,得到系统的用户认证,从而是实现系统和内部信息平台的登录。

4.2.1

用户管理模块

该模块主要是为宿管员登录设计的,在宿管员登录后进入后台管理页面,注销用户可以重新登录。

用户管理流程图如图4.7所示:

宿管员登陆

后台登录管理

Error

登录

操作

退出系统

4.2.2

图4.7用户管理流程图宿舍管理模块

该模块主要实现房间管理,包括添加,修改,删除。模块图如图4.8所示:

添加宿舍

显示添加宿舍

输入修改信息

提交

增加成功

图4.8学生信息修改流程

4.2.3

信息维护模块

该模块实现的功能是修改学生的信息。首先查询到要修改信息的学生,然后修改学生的联系方式,所在班级等。流程图如4.8图所示:

信息维护

学生信息修改

输入学生信息

查询

修改信息

确认

数据处理

结束

图4.9信息维护流程

4.2.4外来人员管理模块

该模块的功能是实现外来人员的登记和查询,将外来人员的信息保存到数据中。

(1)外来人员登记流程

外来人员登记管理

登记外来人员

提交

成功

图4.10外来人员登记流程

(2)查询外来人员信息

查询外来人员

按日期查询

按姓名查询

图4.11查询外来人员流程

4.2.5

学生注册模块

该模块实现学生注册功能。

学生注册

学生信息修改

输入学生信息

查询数

上传照片

确认

数据处理

结束

图4.12学生注册流程

5系统的编码与实现

5.1系统的实现平台

5.1.1系统环境

1、系统软件环境

(1)服务端

操作系统:MicrosoftWindows7

数据库系统:MySQL5.5

服务器:Tomcat5.0

(2)客户端

操作系统:适用于各种平台

开发工具:MyEclipse,

开发语言:Java

(3)开发模式

MVC模式,数据层、控制层、界面分开,其中一个模块逻辑业务的变动不影响到其他层,通过控制层(ActionServlet),将页面的信息保存到数据库也,可从数据库查询到的结果反馈到页面,从而使系统稳定、高效的运行。

2、系统硬件环境

服务端:CPU:酷睿四核,内存4G,硬盘500G;

客户端:Pentium1.6GHz以上CPU,512MB以上内存;

网络配置:百兆模式或以上。

5.1.2后台数据库选择及配置

本系统决定用MySQL数据库,原因有几下几点:

(1)MySQL是一个小型关系型数据库管理系统开,发者为瑞典MySQLAB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.

目前MySQL被广泛地应用在Internet上的中小型网站中由。于其体积小速、度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

(2)从自身特性来说:

1.使用C和C++编写,并使用了多种编译器进行测试保,证源代码的可移植

性。

支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。

为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、

Perl、PHP、Eiffel、Ruby和Tcl等。

支持多线程,充分利用CPU资源。

优化的SQL查询算法,有效地提高查询速度。

既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中GB文的2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。

提供TCP/IP、ODBC和JDBC等多种数据库连接途径。

提供用于管理、检查、优化数据库操作的管理工具。

可以处理拥有上千万条记录的大型数据库。

5.2

系统功能模块实现

图5.1宿舍管理系统主界面

5.2.1学生注册模块

一、学生注册

图5.2学生注册界面

代码部分

学生注册界面:regist.jsp

1、用到的工厂

Factory

2、接口

StudentDAO

获得方法:

StudentDAOdao=(StudentDAO)Factory

.getInstance("StudentDAO");

3、数据库层的方法

//通过id查找学生是否注册过publicStudentfindById(intid){

Connectionconn=null;

Students=null;

//Employeee=newEmployee();

try{

conn=DBUtil.getConnection();

PreparedStatementprep=conn.prepareStatement(

"select*fromt_studentwhereid=?");

prep.setInt(1,id);

ResultSetrst=prep.executeQuery();

if(rst.next()){

s=newStudent();

s.setAge(rst.getString("age"));

s.setId(rst.getInt("id"));

s.setName(rst.getString("name"));

s.setSalary(rst.getString("salary"));

s.setSex(rst.getString("sex"));

s.setPwd(rst.getString("pwd"));

s.setPhone(rst.getString("phone"));

}

}catch(Exceptione1){

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}finally{

DBUtil.close(conn);

}

returns;

}

//将没有注册过的学生信息保存到数据库

publicvoidsave(Students)throwsException{

Connectionconn=null;

try{

conn=DBUtil.getConnection();

PreparedStatementprep=conn.prepareStatement(

"insertintot_student(id,name,salary,sex,age,pwd,phone)

values(?,?,?,?,?,?,?)");

prep.setInt(1,s.getId());

prep.setString(2,s.getName());

prep.setString(3,s.getSalary());

prep.setString(4,s.getSex());

prep.setString(5,s.getAge());

prep.setString(6,s.getPwd());

prep.setString(7,s.getPhone());

prep.executeUpdate();

}catch(Exceptione1){

e1.printStackTrace();

}finally{

DBUtil.close(conn);

}

}

4、控制层ActionServlet

Action.equals(“/regist”){

intid=Integer.parseInt(request.getParameter("id"));

StudentDAOdao=(StudentDAO)Factory

.getInstance("StudentDAO");

try{

Students=dao.findById(id);

if(s!=null){

//学号已被注册

request.setAttribute("id_error","学号已注册,不能再注

册");

request.getRequestDispatcher("regist.jsp")

.forward(request,response);

}else{

//将没有注册过的学生信息添加到数据库

//

s=newStudent();

s.setId(id);

s.setName(request.getParameter("name"));

s.setSalary(request.getParameter("salary"));

s.setSex(request.getParameter("sex"));

s.setAge(request.getParameter("age"));

s.setPwd(request.getParameter("pwd"));

s.setPhone(request.getParameter("phone"));

dao.save(s);

为用户新建一个用来保存文件的文件加Stringpath=

getServletContext().getRealPath("upload");Filefile=newFile(path+"//"+"pic_"+id);if(!file.exists())

file.mkdirs();

HttpSessionsession=

getSession();

setAttribute("s",s);

request.setAttribute("s",s);

request.getRequestDispatcher("regsuccess.jsp")

.forward(request,response);

//response.sendRedirect("regsuccess.jsp");

}

}catch(Exceptione){

e.printStackTrace();

thrownewServletException(e);

}

}

5.2.2宿管员登录

图5.3宿管员登录界面

代码部分

宿管员登录:”/login”

用到的接口

userDAO

方法

//通过宿管员的名字查找是否有该宿管员,才能进行身份验证并登录,返回的是一个User对象。

publicUserfindByUsername(Stringname)throwsException{

Useruser=newUser();

Connectionconn=null;

try{

conn=DBUtil.getConnection();

PreparedStatementprep=conn.prepareStatement(

"select*fromt_userwherename=?");

prep.setString(1,name);

ResultSetrst=prep.executeQuery();

if(rst.next()){

user=newUser();

user.setId(rst.getInt("id"));

user.setPwd(rst.getString("pwd"));

user.setName(rst.getString("name"));

}

else{

returnnull;

}

}catch(Exceptione){

e.printStackTrace();

}finally{

conn.close();

}

returnuser;

}

3.控制层的方法

if(action.equals("/login")){

Stringname=request.getParameter("name");//获得页面的宿管员的用户名

Stringpwd=request.getParameter("pwd");//获得页面的密码UserDAOdao=(UserDAO)Factory

.getInstance("UserDAO");

try{

Useruser=dao.findByUsername(name);//调用数据库的方法

//检查用户名和密码是否正确

if(user!=null&&user.getPwd().equals(pwd)){

HttpSessionsession=request.getSession();

session.setAttribute("user",user);

mployeeDAOdao1=(EmployeeDAO)

actory.getInstance("EmployeeDAO");

response.sendRedirect("second.jsp");

}else{

request.setAttribute("login_error",用户"名或密码错误

(*_*),请检查你的用户名和密码");

request.getRequestDispatcher("login.jsp").forward(request,response);

}

}catch(Exceptione){

e.printStackTrace();

thrownewServletException(e);

}

}

5.2.3对学生的操作

图5.4操作界面

代码部分

宿舍界面:”/list

用到的接口

StudentDAO

方法

publicList<Employee>findAll()throwsException;//将所有学生的信息都查出来publicEmployeefindById(intid)throwsException;//通过学号查找学生的信息publicvoidsave(Employeee)throwsException;//保存学生信息

publicvoiddelete(intid)throwsException;//通过学号删除学生信息

publicvoidmodify(Employeee)throwsException;/修改学生信息

publicinttotalPages(introwsPerPage)throwsException;//计算总页数

publicList<Employee>findAll2(intpage,introwsPerPage)throwsException;//分页

控制层

if(action.equals("/list")){

//进行session验证,看是否已登录过

HttpSessionsession=request.getSession();

Objectobj=session.getAttribute("user");

if(obj==null){

//如果没有登录,则跳到登录页面response.sendRedirect("login.jsp");

return;

}else{

StringpageStr=request.getParameter("page");

if(pageStr==null){

pageStr="1";

}

intpage=Integer.parseInt(pageStr);

request.setAttribute("page",page);

mployeeDAOdao=(EmployeeDAO)

actory.getInstance("EmployeeDAO");

List<Employee>employees;

try{

employees=dao.findAll2(page,10);

//

获得总页数

inttotalPages=dao.totalPages(10);

request.setAttribute("totalPages",totalPages);

request.setAttribute("employees",employees);

RequestDispatcherrd=

request.getRequestDispatcher("emplist.jsp");

rd.forward(request,response);

}catch(Exceptione){

e.printStackTrace();

thrownewServletException(e);

}

}

}elseif(action.equals("/add")){

//从页面去增加的学生的信息

intid=Integer.parseInt(request.getParameter("id"));

Stringname=request.getParameter("name");

Stringsalary=request.getParameter("salary");

Stringage=request.getParameter("age");

Stringsex=request.getParameter("sex");

//将学生信息保存到employee的对象e里Employeee=newEmployee();

e.setId(id);

e.setAge(age);

e.setName(name);

e.setSalary(salary);

e.setSex(sex);

//将学生信息保存到数据库

mployeeDAOdao=(EmployeeDAO)

actory.getInstance("EmployeeDAO");

try{

dao.save(e);

response.sendRedirect("list.do");

}catch(Exceptione1){

e1.printStackTrace();

thrownewServletException(e1);}}

5.2.4

外来人员登记

图5.5外来人员登记界面

代码部分

//查找所有

publicList<Dj>findAll()/返回所有外来人员的信息

publicList<Dj>findByData(Stringdata)//通过日期来查询外来人员publicList<Dj>findByName(Stringname)//通过名字来查询外来人员publicvoidsave(Djdj)//保存外来人员系信息到数据库中

publicvoidxiugai(Djdj)/修改外来人员的信息

5.2.5宿舍卫生管理

图5.6宿舍卫生界面

代码部分

WsDAO

publicList<Ws>findAll()//将所有宿舍卫生情况查询出来返回的list是集合publicList<Ws>findJx(){

//将学生宿舍的卫生分数排名

List<Ws>wss=newArrayList<Ws>();

Connectionconn=null;

try{

conn=DBUtil.getConnection();

Statementstat=conn.createStatement();

ResultSetrst=stat.executeQuery("select*fromt_wsorderbyscore

desc");

while(rst.next()){

Wsws=newWs();

ws.setId(rst.getInt("id"));

ws.setSeh(rst.getString("seh"));

ws.setScore(rst.getDouble("score"));

wss.add(ws);

}

}catch(Exceptione){

e.printStackTrace();

}finally{

DBUtil.close(conn);

}

returnwss;

}

publicList<Ws>findPy()将//评完分后的前三名优秀宿舍评选出来

publicvoidgscore(Wsws)throwsException//修改宿舍卫生分数

publicList<Wy>pwy(){

List<Wy>wys=newArrayList<Wy>();

Connectionconn=null;

try{

conn=DBUtil.getConnection();

PreparedStatementprep=conn.prepareStatement(

//统计总分数

"selectid,seh,sum(score)sscorefromt_wygroupbysehorderbysscore

desc");

ResultSetrst=prep.executeQuery();

while(rst.next()){

Wywy=newWy();

wy.setId(rst.getInt("id"));

wy.setSeh(rst.getString("seh"));

wy.setSscore(rst.getDouble("sscore"));

System.out.println(wy.getScore());

wys.add(wy);

}

}catch(Exceptione){

e.printStackTrace();

}finally{

DBUtil.close(conn);

}

returnwys;

}

}

publicList<Ws>findPy(){//卫生评优规则

List<Ws>wss=newArrayList<Ws>();

Connectionconn=null;

try{

conn=DBUtil.getConnection();

Statementstat=conn.createStatement();

ResultSetrst=stat.executeQuery("select*fromt_wsorderbyscoredesc

limit3");//将分数高的前三名的宿舍加入到卫生优秀表

while(rst.next()){

Wsws=newWs();

ws.setId(rst.getInt("id"));

ws.setSeh(rst.getString("seh"));

ws.setScore(rst.getDouble("score"));

wss.add(ws);}

}catch(Exceptione){

e.printStackTrace();

}finally{

DBUtil.close(conn);

}

returnwss;

}

5.2.6宿舍设备管理

图5.7宿舍设备管理界面

代码部分

//按宿舍号查找

publicSbfindBySeh(Stringseh)

//修改设备信息

publicvoidxiugai(Sbsb)

5.3数据库操作的实现

在系统开发过程中,因为要多处用到对数据库的操作,如果这些操作在每次用到时在每个Java程序中去实现,将非常繁琐,因此,为了简化这些操作,在开发时设计了一个连接数据库的util包,用来连接数据库和关闭数据库

packageutil;

importdao.impl.EmployeeDAOJdbcImpl;

publicclassFactory{

publicstaticObjectgetInstance(

StringinterfaceName){

Objectobj=null;

StringclassName=

ConfigUtil.getValue(interfaceName);

try{

Classc=Class.forName(className);

obj=c.newInstance();

}catch(Exceptione){

e.printStackTrace();

}

returnobj;

}

}

packageutil;

importjava.io.IOException;

importjava.io.InputStream;

importjava.util.Properties;

publicclassConfigUtil{

privatestaticPropertiesprops=newProperties();

static{

InputStreamips=null;

ClassLoaderloader=ConfigUtil.class.getClassLoader();

ips=loader.getResourceAsStream("util/perties");

try{

props.load(ips);

}catch(IOExceptione){

//TODOAuto-generatedcatchblocke.printStackTrace();

}

}

publicstaticStringgetValue(Stringkey){

returnprops.getProperty(key);

}

packageutil;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.SQLException;

publicclassDBUtil{

publicstaticConnectiongetConnection()throwsException{Connectionconn=null;

try{

Class.forName("com.mysql.jdbc.Driver");

conn=DriverManager

.getConnection(

"jdbc:mysql://localhost:3306/sypddb?"+

"useUnicode=true&characterEncoding=utf8",

"root","");

}catch(ClassNotFoundExceptione){e.printStackTrace();

throwe;

}

returnconn;

}

publicstaticvoidclose(Connectionconn){if(conn!=null){

try{

conn.close();

}catch(SQLExceptione){

e.printStackTrace();

}

}

}

}

}

5.4系统测试

5.4.1系统测试的目的

系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案。它的任务是尽可能彻底地检查出程序中的错误,提高软件的可靠性,其目的是检验系统“做得怎样?”。这阶段又可分为三个步骤:模块测试,测试每个模块的程序是否有错误;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否满足用户功能和性能的要求。该阶段结束应交付测试报告,说明测试数据的选择,测试用例以及测试结果是否符合预期结果。测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。

一个程序并不可能达到十分完美,难免存在一些错误。如果不能及时将其找出并修改,会造成系统崩溃并造成不必要的损失。通过软件测试,尽可能多的找出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论