学生宿舍管理系统(毕业设计_论文)介绍

更新时间:2024-05-01 21:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

XXXXXXXX 大 学 系 统 设 计 说 明 书 设计(论文)题目:学生宿舍管理系统

系 别: 信息工程学院 专 业: 软件技术 姓 名: XXXXX 学 号: XXXXXXXXX 指导教师: XXXXX 完成时间: XXXX年XX月

摘要

摘要

当今大学校园内的学生公寓,其数据量大,各种信息管理内容复杂,查询和管理学生信息和校园内的公寓信息等工作由人工完成将是很累的,不仅浪费了许多人力物力资源,而且还很容易出现差错,有一个软件对学生公寓管理不仅节省了人力物力,而且对各种信息的把握和操作也更加方便。

该学生宿舍管理系统主要包括前台用户界面的开发和后台数据库的开发,对于后台数据库要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。管理人员需要做的就是将数据输入到系统的数据库中去。经过分析,本系统运用了MySQL为后台数据库,以eclipse为前端开发工具,系统实现了权限管理、学生信息管理、来访者管理、学生离校返校管理、卫生情况检查管理等必需的功能,其操作简单,界面友好,运行比较稳定,适用于大学院校大学生宿舍管理。

关键词: 宿舍管理 、来访者管理、学生离校返校管理

I

目录

目录

第1章 系统分析 ......................................................... 1

1.1系统开发的背景 ................................................... 1 1.2系统需求分析 ..................................................... 1

1.2.1功能需求 .................................................... 1 1.2.2性能需求 .................................................... 2 1.3 可行性分析 ....................................................... 3

1.3.1经济可行性 .................................................. 3 1.3.2技术可行性 .................................................. 3 1.3.3总结 ........................................................ 3 1.4系统的开发平台及开发工具 ......................................... 3

1.4.1 开发工具Eclipse ............................................ 3 1.4.2 数据库MySQL ................................................ 4 1.4.3 三层架构技术介绍 ........................................... 5 1.5实现系统的平台 ................................................... 5

1.5.1系统环境 .................................................... 5 1.5.2后台数据库选择机配置 ........................................ 6

第2章 系统总体设计 ..................................................... 7

2.1数据库设计 ....................................................... 7

2.1.1 数据库设计概念 ............................................. 7 2.1.1 E-R模型设计 ................................................ 7 2.2数据库的逻辑设计 ................................................ 10 2.3模块设计 ........................................................ 12

2.2.1用户管理模块 ............................................... 13 2.2.2学生信息管理模块 ........................................... 13 2.2.3报修管理模块 ............................................... 15 2.2.4来访者登记模块 ............................................. 15 2.2.4学生进出校管理模块 ......................................... 16

第3章 系统详细设计 .................................................... 17

3.1子系统功能模块的实现 ............................................ 17

3.1.1 包的创建 .................................................. 17 3.1.2 java架包的构建 ............................................ 19 3.1.3 公共模块设计 .............................................. 19 3.1.3 数据库连接配置 ............................................ 21 3.2主窗体模块设计 .................................................. 22

3.2.1 学生宿舍管理系统主界面 .................................... 22 3.2.2 学生信息管理模块 .......................................... 23 3.2.3 报修管理管理模块 .......................................... 28 3.2.4 来访者登记管理模块 ........................................ 29

II

目录

3.2.5 进校出校管理模块 .......................................... 30 3.3数据导出Excel和导入Excel数据 .................................. 33 第4章 系统调试 ........................................................ 36

4.1系统调试的目的 .................................................. 36 4.2系统的调试 ...................................................... 36 结束语 ................................................................. 40 谢词 ................................................................... 41 附录 ................................................................... 42 参考文献 ............................................................... 43

III

第一章 系统分析

第1章 系统分析

1.1系统开发的背景

随着时代的发展,计算机技术越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。目前各行各业广泛使用专用系统,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,设计开发好一个专用系统对一个机构(或部门)的发展十分重要。近年来,随着用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性化。

对于学校而言,学生宿舍管理是必不可少的组成部分。目前仍然存在有学校停留在宿舍管理部门人员手工记录数据的阶段,手工记录对于规模小的学校来说勉强可以接受;但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的,而且当查找某条记录时,由于数据量庞大,只能依靠人工去一条一条地查找,这样不但麻烦而且浪费许多时间,工作效率比较低。采用计算机来管理宿舍和学生的信息,大大提高了查询的速度,节约了人力和物力资源,达到了预期的要求。

1.2系统需求分析

学生宿舍管理是当代学校中不可或缺的组成部分,在信息化飞速发展的今天,它的出现已经成了一种必然,本文将从宿舍管理系统的历史和现状进行分析,以求证本系统的设计具有实际的意义,并得到它在未来的发展,从而跟上时代的脚步,做出一个高质量的、安全性好的宿舍管理系统,使其不仅能满足学校现在的需要,也能满足将来一段时间的需要。

学生宿舍管理系统的开发主要包括前台用户界面的开发和后台数据库的开发,对于后台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。本系统采用java作为前台用户界面的开发语言,而后台的数据库采用MySql。 1.2.1功能需求 1. 基本功能需求

1

第一章 系统分析

第2章 系统总体设计

2.1数据库设计

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

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

人们把数据库设计分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行与维护6个阶段。概念结构设计就是对信息世界进行建模,常用的概念模型是E-R模型,它是P.P.S.Chen 于1976年提出来的。

概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型,即概念模型。概念模型使设计者的注意力能够从复杂的实现细节中解脱出来,而只集中在最重要的信息的组织结构和处理模式上。从需求分析可以看出,本系统存在以下几个实体:

学生实体:用于显示学生的属性,包括学生姓名、学生性别、学号、联、宿舍编号、入住日期等。

宿管(即管理员)实体:用于显示宿管的属性,包括管理员编号、姓名、所管辖的楼栋等

拜访者实体:用于拜访者的信息,包括拜访者编号、拜访者姓名、拜访时间、离开时间等

用户实体:登录用户的信息,包括用户名、密码和用户权限 2.1.1 E-R模型设计

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

7

第一章 系统分析

姓名 性别 管理员编号 学生 班级 学号 院系 宿舍号

图2.1 学生实体图

宿管实体图如图2.2所示。

宿管 宿管ID 姓名 宿舍编号

图2.2 宿管实体图

拜访者实体图如图2.3所示。

拜访ID 楼栋号 来访时间 拜访者 离开时间 姓名

图2.3 拜访者实体图

8

第一章 系统分析

用户实体图如图2.4所示。

用户 用户ID 用户权限 用户名 密码

图2.4 用户实体图

用户实体图如图2.5所示。

宿舍 宿舍编号 图2.5 用户实体图

宿管编号

宿舍管理系统全局E-R图如图2.6所示。

宿管 1 管理 来访者 M 拜访 N N 学生 N 宿舍 1 图2.6 宿舍管理系统E-R图

9

入住

第一章 系统分析

2.2数据库的逻辑设计

数据库逻辑设计是整个设计的前半段,包括所需的实体和关系,实体规范化等工作。设计的后半段则是数据库物理设计,包括选择数据库产品,确定数据库实体属性(字段)、数据类型、长度、精度确定、DBMS页面大小等。

数据库是需要设计的,数据库设计反映在两方面:

数据库逻辑设计:设计数据库的逻辑结构,与具体的DBMS无关,主要反映业务逻辑。

数据库物理设计:设计数据库的物理结构,根据数据库的逻辑结构来选定RDBMS(如Oracle、Sybase等),并设计和实施数据库的存储结构、存取方式等。 数据库逻辑设计决定了数据库及其应用的整体性能,调优位置。如果数据库逻辑设计不好,则所有调优方法对于提高数据库性能的效果都是有限的。为了使数据库设计的方法走向完备,数据库的规范化理论必须遵守。规范化理论为数据库逻辑设计提供了理论指导和工具,在减少了数据冗余的同时节约了存储空间,同时加快了增、删、改的速度。

另外,在规范的数据库逻辑设计时,还应考虑适当地破坏规范规则,即反规范化设计,来降低索引、表的数目,降低连接操作的数目,从而加快查询速度。常用的反规范技术有增加冗余列、增加派生列、重新组表等。

1. 学生信息表 存储了学生的基本信息。

表4.1 学生信息表 字段名 学号 管理员编号 姓名 院系 手机 班级 宿舍号 数据类型 Char Char Varchar Varchar Char Varchar Char 数据长度 10 10 20 20 11 20 10 是否为空 N N N N Key P_K F_K 2. 管理员信息表 存储了管理员的基本信息。

表4.2 管理员信息表 字段名 管理员编号 数据类型 Char 数据长度 10 10

是否为空 N Key P_K 第一章 系统分析

续上表 姓名 楼号 Varchar Char 15 10 N N 3. 报修管理表 存储了报修基本情况信息。

表4.3 报修管理表 字段名 报修编号 管理员编号 宿舍号 报修时间 解决时间 数据类型 Char Char Char Datetime Datetime 数据长度 10 10 10 是否为空 N N N Key P_K F_K 4. 用户信息表 存储了用户的类型。

表4.4 用户信息表

字段名 用户ID 用户名 密码 数据类型 Char Varchar Varchar 数据长度 10 20 10 是否为空 N N N Key P_K 5. 来访者登记表

存储了来访者登记的基本信息。

表4.5 来访者登记表

字段名 来访者登记编号 管理员编号 姓名 来访日期 数据类型 Char Char Varchar Datetime 数据长度 10 10 20 是否为空 N N Key P_K F_K 6. 学生出校登记表

存储了学生离校登记的基本信息。

表4.6 学生离校登记表 字段名 离校编号 学号 姓名 出校时间日期

数据类型 Char Char Varchar Datetime 数据长度 10 10 20 是否为空 N N Key P_K F_K 11

第一章 系统分析

7. 学生返校登记表

存储了学生进校登记的基本信息。

表4.7 学生进校登记表 字段名 进校编号 学号 姓名 返校时间日期 8. 宿舍表

数据类型 Char Char Varchar Datetime 数据长度 10 10 20 是否为空 N N Key P_K F_K 存储了宿舍的基本信息。

表4.8 宿舍信息表 字段名 宿舍编号 宿管编号 数据类型 Char Char 数据长度 10 10 是否为空 N N Key P_K F_K 2.3模块设计

宿舍管理系统作为公司内部信息平台的一部分,系统的用户信息来源于内部信息平台。用户在内部信息平台单点登录,即可直接访问宿舍管理系统。系统数据库与内部信息平台的后台数据库保持同步,当内部信息平台的用户信息修改后,即可同步信息到本系统数据库。系统主要模块用例图如图2.7所示:

图2.7 系统主要模块UML用例图 12

第一章 系统分析

2.2.1用户管理模块

该模块主要是为管理员登录设计的,在用户登录后进入后台管理页面,如果是普通用户只可以查看一些信息不能修改密码和增加用户,注销用户可以重新登录。超级用户可以修改普通用户密码,增加用户,这是超级用户和普通用户的区别。用户管理流程图如图2.8所示:

管理员 后台登陆管理 N 登陆 Y 后台管理 (增删改查操作)

图 2.8 用户管理流程图

2.2.2学生信息管理模块

该模块主要实现对学生信息管理,包括学生信息录入,修改,删除。模块图如图2.9所示:

学生信息管理 学生信息录入 学生信息查询 学生信息删除 学生信息修改 根据查询条件查询 生成报表 导成Excel表格

图 2.9 学生信息管理模块

13

第一章 系统分析

学生信息的修改删除功能可修改班级号,宿舍号,删除完成学业的或退学的学生等等信息。学生信息修改功能如图2.10所示:

图2.10 学生信息修改流程

学生信息删除功能如图2.11所示:

图2.11 学生信息删除流程

14

第一章 系统分析

2.2.3报修管理模块

该模块主要实现对报修信息管理,包括对报修宿舍信息的添加、查询和确认。 详细描述:对报修宿舍的登记,记录主要信息宿舍号、宿舍损坏物品、报修时间、详情描述等等。学生可以查看报修情况何时被解决,员工解决保修情况时候需要及时登记解决时间。模块图如图2.12所示:

报修信息管理 报修宿舍信息录入 对报修宿舍信息的查询 对保修宿舍解决时间的确认

图2.12 来访者登记管理模块

2.2.4来访者登记模块

该模块主要实现对来访者信息管理,主要是对来访者信息的登记,和学校对来访者信息的查看。

详情描述:记录下列主要信息姓名、与被访者关系,证件名称、证件号码、来访时间、被拜访者的姓名。当住宿的被拜访的学生带有贵重物品出入宿舍楼时,需要出楼登记。等来访者信息记录错误时,可以修改相关信息。模块图如图2.13所示:

来访者信息的登记管理 来访者信息的录入 对来访者信息的查询 登记物品的出入

图2.13 来访者登记管理模块

15

第一章 系统分析

2.2.4学生进出校管理模块

该模块主要实现对学生进校和离校两方面信息的管理。

详情描述:主要包括学生离校时间、进校时间和携带东西的录入,查询学生的进校离校记录,学校需要时可以进行查看最近学生出校返校情况。模块图如图2.14所示:

学生进校、出校信息的登记管理 信息的录入 对学生进校、出校信息的查询 图2.14 学生进校离校管理模块

16

第3章 系统详细设计

第3章 系统详细设计

3.1子系统功能模块的实现

3.1.1 包的创建

本宿舍管理系统采用三层架构(即分层)的思想,分为三层:

(1)数据访问层:顾名思义,就是用于专门跟进行交互。执行数据的添加、删除、修改和显示等。需要强调的是,所有的数据对象只在这一层被引用,如

System.Data.SqlClient等,除数据层之外的任何地方都不应该出现这样的引用。

需要创建以下包dao包、daoimpl包,Dao包中存放数据访问的接口,例如:执行数据的添加、删除、修改和显示接口等,DaoImpl中存放对Dao中接口的实现即实现从数据库读取数据

例如实体学生StuDao中的接口

public interface StuDao extends Dao, PageDao { boolean insertMany(List list);

List selectTotal(PageParamBean param); DefaultPieDataset readpiedate(); DefaultCategoryDataset readlinedate();

}

例如实体学生StuDaoImpl中向数据库发送的SQL语句:

public static final String INSERT_TB_STU_SQL = \(Sid,Mid,Sname,Sdepart,Sclass,dor) VALUES (?,?,?,?,?,?)\ ;

public static final String DELETE_TB_STU_BY_ID_SQL = \public static final String UPDATE_TB_STU_SQL = \public static final String SELECT_TB_STU_ALL_SQL = \public static final String SELECT_TB_STU_BY_ID_SQL = \

public static final String SELECT_BASE_TB_STU_BY_COND_COUNT_SQL = \public static final String SELECT_BASE_TB_STU_CURR_PAGE_SQL = \ public static final String SELECT_TB_STU_GROUP_BY_MID_SQL = \tb_manager.Mname ,count(*) FROM tb_stu left join tb_manager on tb_stu.mid=tb_manager.mid group by tb_stu.mid\ ;

Sid = ? \ ;

Sname=?,Sdepart=?,Sclass=?,dor=? WHERE Sid = ?\ ; Sid,Mid,Sname,Sdepart,Sclass,dor FROM tb_stu\ ;

Sid,Mid,Sname,Sdepart,Sclass,dor FROM tb_stu WHERE Sid = ?\ ; COUNT(*) FROM tb_stu WHERE 1=1 \ ;

Sid,Mid,Sname,Sdepart,Sclass,dor FROM tb_stu WHERE 1=1\ ;

17

第3章 系统详细设计

(2)业务逻辑层:对一些业务的实现,用于做一些有效性验证的工作,以更好地保证程序运行的健壮性。如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格 式是否正确及数据类型验证;用户的权限的合法性判断等等,通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。

需要创建一下包server包、serverimpl包,Service包中存放需要实现的业务接口,例如:数据的删除,修改,查询,分页等业务的接口,ServicImple中存放对Service中接口中的实现,需要调用数据访问层中DaoImpl的具体方法的返回值来获得数据。

例如实体学生StuService中的接口:

public interface StuService extends SuSheManageService { }

PageResultBean selectCurrPage(PageParamBean param); boolean insert(Stu newstu); boolean update(Stu entity); boolean delete (Serializable id) ; boolean importExcel(String filePath);

List selectTotal(PageParamBean param); DefaultPieDataset readpiedate(); DefaultCategoryDataset readlinedate();

例如实体学生StuServiceImpl中的从daoimpl中获取数据的主要代码:

private StuDao dao=new StuDaoImpl();

(3)表示层:负责直接跟用户进行交互,一般也就是指系统的界面,用于数据录入,数据显示等。意味着只做与外观显示相关的,不属于他的工作不用做。

这个项目创建了view包,存放数据显示的窗体。需要调用serviceimpl中的业务实现方法的返回值来获得数据

所谓的三层开发就是将系统的整个业务应用划分为表示层——业务逻辑层——数据访问层,这样有利于系统的开发、维护、部署和扩展。 宿舍管理系统所创建的包如3.1所示:

图3.1分层思想包的结构创建

18

第3章 系统详细设计

3.1.2 java架包的构建

在写宿舍管理系统时我们需要加一些我们项目中所需要的架包,通过选择“工程”→“右键”→”build path” 命令即可进行添加。本系统程序中需要添加的选项和需要使用的对应jar包,如图3.2所示。

图3.2 项目需要构建的架包

项目需要构建的架包的简单说明:

1. mysal-connector-java-3.0.17-ga-bin,jar是用于连接数据MySql的对应架包; 2. Jcommon-1.0.21.jar 是用来显示关于应用程序信息的用户界面类,布局定制管理器,一个日期选择面板,序列化工具类,XML解析器支持类.

3. hamcrest-library-1.3RCO.jar和junit-4.8.1.jar是用于单元调试所需要的架包

4. jxl.jar是用于导入导出EXCEL文件的架包

5. jfrechart-1.0.jar是用于把数据生成图文形式的架包 3.1.3 公共模块设计

在项目中创建了这样一个包sushemanage.util。这个包中存放工具类,因为这些代码可以重复调用,避免代码的冗余我们创建这些工具类。 util包中有这些工具类如3.3所示:

19

第3章 系统详细设计

图 3.3 项目需要工具类

1. DbUtil.java是数据库连接工具类。下面写数据库交互是具体写。 2. ExcelUtil.java是将数据导入导出成Excel的工具类。 将Excel中数据读入数据库主体代码:

public List read(String filePath){

} //read方法,需要传String类型的路径名作为参数

将表中数据导出成到Excel中主体代码:

public boolean write(List list,String targetfile){

} //write方法,需要传一个list的集合和一个String类型的目标文件参数

3. JfreeChatUtil。Java是生成统计柱状图、折线图、饼图的工具类

生成饼图的主体代码:

public static void createPie(String TITLE_EMPS_PER_DEPT,DefaultPieDataset

dataset){

// create a chart... }

//DefaultPieDataset dataset = new DefaultPieDataset();

生成折线图的主体代码:

public static void createLine(String TITLE_EMPS_PER_DEPT,DefaultCategoryDataset linedataset,String xName,String yName){

}

生成柱状图的主体代码:

public static void createBar(String TITLE_EMPS_PER_DEPT,DefaultCategoryDataset linedataset,String xName,String yName){

}

4. MD5Util.java是MD5加密技术的工具类。 MD5加密主要代码:

public static String md5(String pswd){

try {

MessageDigest md=MessageDigest.getInstance(\); byte[] byteArray=md.digest(pswd.getBytes());

return ByteArrayToString(byteArray); // TODO Auto-generated catch block

20

} catch (NoSuchAlgorithmException e) {

第3章 系统详细设计

}

}

e.printStackTrace();

return null;

用这个技术后数据库用户登录的密码应是加密后的数据如图3.4所示:

图 3.4 加密后的密码

3.1.3 数据库连接配置

数据库连接采用单例设计模式,单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。数据库连接主要代码:

/**

* 使用单例 设计模式,实现 获得数据库连接,和数据连接关闭方法

* 单例中 读取 配置文件只做一次,解析该jdbc.properties只做一次 注册加载数据库厂商提供的工具类 ,只做一次 **/

private DbUtil() {

// 读取jdbc.properties 文件 try {

InputStream is =

\);

DbUtil.class.getClassLoader().getResourceAsStream(

// properties 工具类 索引,内容 Properties prop = new Properties(); // 读取jdbc.properties文件 prop.load(is);

username = prop.getProperty(\); password = prop.getProperty(\); url = prop.getProperty(\);

String driverClass = prop.getProperty(\); Class.forName(driverClass); e.printStackTrace();}

21

} catch (Exception e) {

第3章 系统详细设计

这样数据库连接只要写一次,每一次从数据库中读取数据,知道连接这个数据库连接工具类DButil就可以了。

数据库需要的连接、用户名、密码写在jdbc.properties文件中:

url=jdbc:mysql://localhost:3306/java54 driverClass=com.mysql.jdbc.Driver username=root password=root

3.2主窗体模块设计

3.2.1 学生宿舍管理系统主界面

学生宿舍管理系统主界面如图3.5所示:

图3.5 宿舍管理系统主界面

9. 功能模块说明:通过点击左边的树结构,来显示右边是子窗体。

10. 设计思路:树状结构,常用于菜单,或是文件管理等等具有层次关系的内容。这样设计就可以很简单的用左边的树来控住右边各个功能的子窗体的显示。 11. 主窗体通过左边的树来控制右边子窗体的显示主要代码:

final JTree tree = new JTree();

tree.addMouseListener(new MouseAdapter() {

public void mousePressed(MouseEvent e) {

22

第3章 系统详细设计

int selRow = tree.getRowForLocation(e.getX(), e.getY()); TreePath selPath = tree.getPathForLocation(e.getX(), e.getY()); if(selRow != -1) {

String nodeName =

if(\学生信息管理\.equals(nodeName)){ }

if(\宿舍报修情况管理\.equals(nodeName)){} if(\学生进校管理\.equals(nodeName)){} if(\学生出校管理\.equals(nodeName)){} if(\来访登记管理\.equals(nodeName)){} if(\管理员权限设置\.equals(nodeName)){} } } });

mainJPanel.removeAll();

StuJPanel stuJPanel = new StuJPanel(); mainJPanel.add(stuJPanel) ; mainJPanel.updateUI() ;

((TreeNode)selPath.getLastPathComponent()).toString();

3.2.2 学生信息管理模块 一、显示学生数据如图3.6所示:

图3.6 学生宿舍管理界面

23

第3章 系统详细设计

1. 功能模块说明:通过点击左边的树结构中的学生信息管理,从数据库检索数据显示在学生信息子窗体中。

2. 设计思路:当点击树的时候,将stuJPanel子窗体显示出来,初始数据、查询、修改、删除分页、导入导出Excel等一系列功能的封装条件都存放在stuJPanel视图类中。 3. 代码部分:

学生信息显示界面:StuInfoJFrame.java 用到的接口

List selectTotal(PageParamBean param); 方法

public List selectTotal(PageParamBean param) {}

二、新增学生信息如图3.7所示

图3.7 新增学生信息

1. 功能模块说明:点击新增学生按钮,更具需求将所要添加的学生信息添加进数据库(一次添加一个,批量添加可以用Excel导入后面详细说明)。

2. 设计思路:当点击树的时候,将stuJPanel子窗体显示出来,初始数据、查询、修改、删除分页、导入导出Excel等一系列功能的封装条件都存放在stuJPanel视图类中。当点击添加按钮时调用StuAddJFrame.java类,进行学生信息的添加。 3. 代码部分:

添加学生信息显示界面:StuAddJFrame.java 用到的接口

boolean insert(Stu newstu);

24

第3章 系统详细设计

方法

public boolean insert(Stu entity) {}//添加一个学生对象

三、删除学生信息

选中要删除的学生的信息点击删除,如图3.8所示:

图3.8删除学生信息

1. 功能模块说明:首先需要选中一个或多个数据再点击删除学生信息按钮,显示提示信息“删除成功”,不然会显示提示信息“请选着一条或多条数据”。

2. 设计思路:当点击树的时候,将stuJPanel子窗体显示出来,初始数据、查询、修改、删除、分页、导入导出Excel等一系列功能的封装条件都存放在stuJPanel视图类中。 3. 代码部分: 用到的接口

boolean delete (Serializable id) ; 方法

public boolean delete(Serializable id) {}////删除一个学生的ID

四、修改学生信息

点击修改是要选中一条记录如图3.9所示:

25

第3章 系统详细设计

图3.9 修改学生信息

1. 功能模块说明:首先需要选中一条数据再点击修改学生信息按钮,该条数据显示到修改窗体中在进行修改,修改后确认。不然会显示提示信息“请选着一条或多条数据”。

2. 设计思路:当点击树的时候,将stuJPanel子窗体显示出来,初始数据、查询、修改、删除等一系列功能的封装条件都存放在stuJPanel视图类中。但点击修改按钮时,调用StuRepJFrame.java类,进行学生信息的修改。 3. 代码部分

修改学生信息界面:StuRepJFrame.java 用到的接口:

IRoomForcastSe public boolean update(Stu entity) { 方法

public boolean update(Stu entity) {} ////修改一个学生对象

26

第3章 系统详细设计

五、 查询学生信息

可以按学号、姓名、宿管编号、学院等模糊查询查看学生信息。图3.10是查询的宿管编号为3,学院为土木工程的学生信息:

图3.10 查询学生信息

1. 功能模块说明:可以根据学号、姓名、宿管编号、学院等条件模糊查询,来显示所需要的数据。

2. 设计思路:当点击树的时候,将stuJPanel子窗体显示出来,初始数据、查询、修改、删除、分页、导入导出Excel等一系列功能的封装条件都存放在stuJPanel视图类中。 3. 主要代码部分:

private List dySqlCond(Stu cond, StringBuilder sb) {

List paramList = new ArrayList() ; //根据姓名模糊查询

if(cond.getSname()!=null && !\.equals(cond.getSname())){ }

//根据宿管编号模糊查询

if(cond.getMid()!=null &&!\.equals(cond.getMid())){ sb.append(\) ; }

//根据学生编号模糊查询

if(cond.getSid()!=null &&!\.equals(cond.getSid())){ sb.append(\) ; }

if(cond.getSdepart()!=null &&!\.equals(cond.getSdepart())){

sb.append(\) ;

27

sb.append(\) ; paramList.add(\+cond.getSname()+\);

paramList.add(cond.getMid()+\) ;

paramList.add(\+cond.getSid()+\) ;

第3章 系统详细设计

}

}

paramList.add(\+cond.getSdepart()+\) ;

return paramList;

3.2.3 报修管理管理模块

显示报修情况管理数据如3.11所示:

图3.11 报修情况信息

1. 功能模块说明:通过点击左边的树结构中的报修情况管理,从数据库检索数据显示在保修情况子窗体中。

2. 设计思路:当点击树的时候,将RepairJPanel子窗体显示出来,初始数据、查询、修改、删除分页等一系列功能的封装条件都存放在RepairJPanel视图类中。 3. 代码部分:

报修信息显示界面:RepairInfoJFrame.java 用到的接口

List selectTotal(PageParamBean param); 方法

public List selectTotal(PageParamBean param) {} 主体代码

28

第3章 系统详细设计

public void actionPerformed(ActionEvent e) {

String strPageSize = (String)cbPageSize.getSelectedItem(); System.out.println(\+strPageSize); if(!((String)cbPageSize.getSelectedItem()).equals(\请选择:\)) {

int pageSize =Integer.parseInt(strPageSize); param.setPageSize(pageSize) ; }

PageResultBean result2 = repairService

.selectCurrPage(param);

List currList2 = result2.getCurrList(); table.setModel(new DefaultTableModel(

convertListToArray(currList2), new String[] { \报修编号\, \

报修宿舍号\, \报修时间\, \解决时间\, \宿管编号\}));} }) ;

3.2.4 来访者登记管理模块

显示来访者登记情况管理数据如3.12所示:

图3.12 来访者登记信息

1. 功能模块说明:通过点击左边的树结构中的来访者登记信息管理,从数据库检索数据显示在来访者登记子窗体中。

2. 设计思路:当点击树的时候,将VisitorJPanel子窗体显示出来,初始数据、查询、修改、删除、分页等一系列功能的封装条件都存放在VisitorJPanel视图类中。 3. 代码部分:

来访者信息显示界面:VisitorInfoJFrame.java

29

第3章 系统详细设计

用到的接口

List selectTotal(PageParamBean param); 方法

public List selectTotal(PageParamBean param) {} 主体代码

public void actionPerformed(ActionEvent e) {

String strPageSize = (String)cbPageSize.getSelectedItem(); System.out.println(\+strPageSize); if(!((String)cbPageSize.getSelectedItem()).equals(\请选择:\)) {

int pageSize =Integer.parseInt(strPageSize); param.setPageSize(pageSize) ; }

PageResultBean result2 = visitorService

.selectCurrPage(param);

List currList2 = result2.getCurrList(); table.setModel(new DefaultTableModel(

convertListToArray(currList2), new String[] {\来访编号\, \

来访者\, \来访时间\, \宿管编号\}));} }

3.2.5 进校出校管理模块 显示进校管理数据如3.13所示:

图3.13进校信息

30

第3章 系统详细设计

1. 功能模块说明:通过点击左边的树结构中的学生进校信息管理,从数据库检索数据显示在学生进校子窗体中。

2. 设计思路:当点击树的时候,将JXJPanel子窗体显示出来,初始数据、查询、修改、删除、分页等一系列功能的封装条件都存放在JXJPanel视图类中。 3. 代码部分:

进校信息显示界面:JXJFrame.java 用到的接口

List selectTotal(PageParamBean param); 方法

public List selectTotal(PageParamBean param) {} 主体代码

public void actionPerformed(ActionEvent e) {

}

String strPageSize = (String)cbPageSize.getSelectedItem(); System.out.println(\+strPageSize); if(!((String)cbPageSize.getSelectedItem()).equals(\请选择:\)) {

int pageSize =Integer.parseInt(strPageSize); param.setPageSize(pageSize) ; }

PageResultBean result2 = jxService

.selectCurrPage(param);

List currList2 = result2.getCurrList(); table.setModel(new DefaultTableModel(

convertListToArray(currList2), new String[] { \进校编号\, \

学号\, \姓名\, \进校时间\ }));

}) ;

显示离校管理数据如3.14所示:

31

第3章 系统详细设计

图3.14离校信息

1. 功能模块说明:通过点击左边的树结构中的学生进校信息管理,从数据库检索数据显示在学生进校子窗体中。

2. 设计思路:当点击树的时候,将JXJPanel子窗体显示出来,初始数据、查询、修改、删除、分页等一系列功能的封装条件都存放在JXJPanel视图类中。 3. 代码部分:

进校信息显示界面:LXJFrame.java 用到的接口

List selectTotal(PageParamBean param); 方法

public List selectTotal(PageParamBean param) {} 主体代码

public void actionPerformed(ActionEvent e) {

String strPageSize = (String)cbPageSize.getSelectedItem(); System.out.println(\+strPageSize); if(!((String)cbPageSize.getSelectedItem()).equals(\请选择:\)) {

int pageSize =Integer.parseInt(strPageSize); param.setPageSize(pageSize) ; }

PageResultBean result2 = lxService

32

第3章 系统详细设计

}

.selectCurrPage(param);

List currList2 = result2.getCurrList(); table.setModel(new DefaultTableModel(

convertListToArray(currList2), new String[] { \离校编号\, \

学号\, \姓名\, \离校时间\}));

}) ;

3.3数据导出Excel和导入Excel数据

例如将学生信息导出成excel,保存到桌面如图3.15,3.16,3.17所示:

图3.15 导出Excel

图3.16 导出Excel

33

第3章 系统详细设计

图3.17导出Excel

1. 功能模块说明:当数据需要打印的或导入批量数据时,就需要用到Excel的导入导出。

2. 设计思路:主要就是通过IO流的读写操作完成的,可能每个模块的数据多要导入导出,我就把它设计成工具类,只要需要用时调用工具类ExcelUtil.Java就可以将数据导入或导出成Excel 3. 代码部分:

需要调用工具类:ExcelUtil.Java 主体代码

public void actionPerformed(ActionEvent e) {

JFileChooser chooser = new JFileChooser();

chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

34

第3章 系统详细设计

int returnVal = chooser.showSaveDialog(null); if(returnVal == JFileChooser.APPROVE_OPTION) { String filepath=chooser.getSelectedFile().getPath();

List result = stuService.selectTotal(param);

boolean flag= new ExcelUtil(Stu.class).write(result, if (flag==true){ } }

JOptionPane.showMessageDialog(null, \导出成功\); JOptionPane.showMessageDialog(null, \导出失败\);

}else{

filepath);

Excel中的数据导入上述代码也实现了,导入和导出的方法都写在工具类ExcelUtil.Java中。上述代码只是调用参数实现数据导入导出。

35

第4章 系统测试

第4章 系统调试

4.1系统调试的目的

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

一个程序并不可能达到十分完美,难免存在一些错误。如果不能及时将其找出并修改,会造成系统崩溃并造成不必要的损失。通软件调试,尽可能多的找出系统中的错误,以便与及时修改。宿舍管理系统是对学生宿舍进行管理的系统,一旦系统无法运行,对学校的宿舍管理带来很多的影响。所以通过软件调试的手段,尽可能排除程序中的错误,已达到程序运行稳定的目的,使学校的工作不会因此受到影响。

4.2系统的调试

1.系统调试的性能要求

系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安全性,运行效率等方面的考虑。

本系统运行环境为网络版,在运行时对系统整体性能要有一定的要求。要求:软硬件要求:系统环境winXP+MySQL+eclipse 硬件系统环境P4 2.4、512MB内存、80G硬盘

系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其

36

本文来源:https://www.bwwdw.com/article/xaeg.html

Top