(项目设计开发在进行中......)
(原型源代码、数据库、设计文档、安装使用说明、安装配置视频等)
(数据库应用系统-《华夏-宿舍管理系统》开发原型(重要参考!)
(要求同学们要调试通过,并尽可能整体提升质量!)
《华夏-宿舍管理系统》设计开发文档
一、宿舍管理系统需求分析
随着社会的发展,21世纪人类已经进入信息时代,走向信息化的社会,在这日新月异、千变万化的新时代,我们需要更加广博的知识,全面而突出的能力与综合素质,这一切均与知识的学习、信息的利用有着密切联系。如何从浩如烟海的信息资源中获取所需的知识与信息,并据此做出正确的决策,是衡量一个人的能力与综合素质的重要标志。迄今为止,数据库技术仍是信息处理、数据管理最有效的方法之一。而关系数据库是最实用,应用最广泛的数据库。目前,国内使用的中小型关系数据库管理系统中,SQLServer系统占据了重要的地位,其应用范围广,普及程度高,而且是学习和应用关系型数据库管理系统较为理想的对象。
设计和实现一个功能强大的学生宿舍管理信息系统,主要实现对入住人员的管理及对宿舍的其它管理。系统要求功能齐全,操作简便,实用性强。经过对学生宿舍管理信息进行调查,发现了随着近几年的高校招生人数的不断扩大,学生宿舍管理工作也越来越繁重和琐碎,手工管理已不能满足当前的需要,因此要对学生宿舍管理信息系统进行改善。
随着计算机的应用与普及,现在越来越多的学校学生宿舍都是利用计算机来控制和管理的,学校的不断发展,人数的不断增长,生活水平的提高,要求也越来越高。为了改善学校的宿舍管理,为此开发了学生宿舍管理信息系统软件。本系统要学生用户对它进行查询,管理员有效地对它进行管理用户,即随时可以对它进行添加与删除,在没有旁人指导的情况下,用户也可以进入这个系统并且知道该如何使用它,比如,用户点击进入后就会出现一个系统登陆对话框,根据用户的用户名和密码,点击“登陆”按钮,就可进入系统。这个系统可以适用于各大院校,具有管理权限的用户可以对系统进行修改,没有此权限的用户只能对系统进行查询。
功能需求:
(1)注册入住 (输入数据:学号,姓名,宿舍号,床号,任职情况,联系电话,出生日期,性别,民族,身份证号,等)
(2)学生离校 如,毕业、退学等
(3)学生查询 如,根据姓名查询等
(4)学生更新 如,修改学生相关信息
(5)人数统计 如,统计某类学生人数
(6)健康打卡 如,输入健康码,体温,体测地点,等
(7)人员报表 输出各类人员报表等
(8)健康报表 输出各类人员健康报表
(如,包括:健康码,最高体温,最低体温,平均体温,健康报告(建议结论))
(9)卫生评比 如,输入:学号,评比时间,评比得分,宿舍号,备注,等数据)
(10) 卫生报表 输出卫生评比报告表
(包括:学号,评比时间,卫评分数,宿舍号,卫生评比结论,备注)
(11)费用管理 (输入各种费用,如:水费、电费、网络费、卫生费,等,输出各类费用报表)
要求:用户进入系统,要通过用户名及密码审查合法才可进入。
要求人机界面(UI)友好,操作简便、快捷,安全性好。
根据调研,要求后台数据库采用SQL SERVER 2014,开发工具采用 JAVA。
对学生宿舍管理是一个很大的项目,在早期,还没有利用计算机管理时,一切都是利用人工进行管理的,这样管理起来既烦琐又复杂,资料也很容易被丢失,而且耗时、耗资金。而利用本系统,可以高效地对学生宿舍进行统一管理与控制,可以根据情况随时修改和删除,也不容易被丢失,这样大大节省了人力与资源,提高了管理效率,给工作人员带来很多方便。在条件成熟时,引入人工智能(AI)技术(如,与手机连接,自动扫脸,与体温仪联接自动测体温),提升自动化管理水平。
综上所述,项目开发是可行的。
二、系统功能的设计与划分
本程序主要针对管理员而设计,其可进行管理的功能有:
(0)处理管理员登录等
(1)注册入住 (输入数据:学号,姓名,宿舍号,床号,任职情况,联系电话,出生日期,性别,民族,身份证号,等)
(2)学生离校 如,毕业、退学等
(3)学生查询 如,根据姓名查询等
(4)学生更新 如,修改学生相关信息
(5)人数统计 如,统计某类学生人数
(6)健康打卡 如,输入健康码,体温,体测地点,等
(7)人员报表 输出各类人员报表等
(8)健康报表 输出各类人员健康报表
(如,包括:健康码,最高体温,最低体温,平均体温,健康报告(建议结论))
(9)卫生评比 如,输入:学号,评比时间,评比得分,宿舍号,备注,等数据)
(10)卫生报表 输出卫生评比报告表
(包括:学号,评比时间,卫评分数,宿舍号,卫生评比结论,备注)
(11) 退出系统
要求:用户进入系统,要通过用户名及密码审查合法才可进入。
要求人机界面(UI)友好,操作简便、快捷,安全性好。
根据调研,要求后台数据库采用SQL SERVER 2014,开发工具采用 JAVA。
本次课程设计的主体是由小组全体成员共同讨论协商而定下的,具体分工完成如下:
(1)需求分析 负责人:
(2)系统设计 负责人:
(3)系统实现 负责人:
(4)系统测试 负责人:、
各功能模块实现负责人:
涉及技术:E-R图设计、流程图设计、数据库设计、界面设计、文档编写、源代码编写。
SQL SERVER 创建数据库表的SQL 程序(脚本):
(一 )数据库设计
数据库名称:qqhou
数据表:
(1)系统用户表 [useps]
(2)宿舍人员表 [Person]
(3)[同学表]
(4)[宿舍表]
(5) [健康表]
(6)[卫生表]
(二)数据库其他对象设计(视图,存储过程,触发器,函数,等)
三、《华夏-宿舍管理系统》安装使用说明书
《华夏-宿舍管理系统》后台数据库采用SQL SERVER,开发工具使用JAVA。
一、先初始化数据库
1、进入SQL SEVER 2012(或2005、2008、2014、2016等)的SSMS。
2、 在数据库新建一个qqhou数据库。
/** 附注说明:也可以利用SQL命令创建数据库 [qqhou] ,可先在硬盘上建好存放数据库的目录,如:D:\HXRMIS */
USE [master]
GO
CREATE DATABASE [qqhou]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'qqhou', FILENAME = N'D:\HXRMIS\qqhou.mdf', SIZE = 5120KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'qqhou_log', FILENAME = N'D:\HXRMIS\qqhou_log.ldf', SIZE = 2048KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
或者简单地执行SQL命令:
USE [master]
GO
CREATE DATABASE [qqhou]
GO
3、 新建数据库初始化表,将文件夹SQL表复制到初始化表中,并执行,最终创建数据库。
(注:将其SQL命令复制到新建查询表,并执行)。
--(1)创建系统用户表 [useps]
USE [qqhou]
GO
CREATE TABLE [dbo].[useps](
[userid][varchar](20) NOT NULL,
[password][varchar](20) NOT NULL,
[name][nchar](10) NULL
) ON [PRIMARY]
GO
--插入模拟数据
INSERT INTO [dbo].[useps]([userid],[password],[name])
VALUES ('admin','admin','gzwangmz')
INSERT INTO [dbo].[useps]([userid],[password],[name])
VALUES ('admin1','admin1','admin1')
--(2)创建宿舍人员表 [Person]
USE [qqhou]
GO
CREATE TABLE [dbo].[Person](
[Id][varchar](20) NOT NULL, --学号
[Name][varchar](20) NULL, --姓名
[Department][varchar](8) NULL, --宿舍号,如 1-101
[Renzhi][char](20) NULL, --角色或职务,任职情况
[Score][char](20) NULL, --床号
[Tel][varchar](11) NULL -- 电话
) ON [PRIMARY]
GO
--插入模拟数据到 [Person]表
insert intoPerson(Id,Name,Department,Renzhi,Score,Tel)
values('2020101','林秀芳','1-101','舍员','5','13711238866')
insert intoPerson(Id,Name,Department,Renzhi,Score,Tel)
values('2020102','谢彬华','1-102','舍长','3','13711236655')
insert intoPerson(Id,Name,Department,Renzhi,Score,Tel)
values('2020103','李红芳','2-101','舍员','2','13522356798')
insert intoPerson(Id,Name,Department,Renzhi,Score,Tel)
values('2020104','李四','2-102','班长','1','13688762311')
--(3)创建 [同学表]
USE [qqhou]
GO
CREATE TABLE [dbo].[同学表](
[学号][varchar](11) PRIMARY KEY ,
[姓名][nchar](4) NOT NULL,
[性别][nchar](1) CHECK (([性别]='女'OR [性别]='男')) NULL,
[出生日期][date] NULL,
[民族][nchar](8) NULL ,
[身份证号][char](18) NULL,
[宿舍号][char](8) NULL )
GO
--(4)创建[宿舍表]
USE [qqhou]
GO
CREATE TABLE [dbo].[宿舍表](
[宿舍号][char](8) PRIMARY KEY ,
[宿舍电话][char](11) NULL,
[可住人数][int] NULL,
[已住人数][int] NULL
)
--插入模拟数据
insert 宿舍表 ([宿舍号],[宿舍电话],[可住人数],[已住人数])values('1-101', '87864505',6,0)
insert 宿舍表 ([宿舍号],[宿舍电话],[可住人数],[已住人数])values('1-102', '87864565',6,0)
--插入模拟数据
NSERT INTO [同学表]
([学号],[姓名],[性别],[出生日期],[民族],[身份证号],[宿舍号])
VALUES ('2020101','林秀芳','女','2001-06-15','汉族','44010652345585669','1-101')
update 宿舍表 set 已住人数=已住人数+1where 宿舍号='1-101'
--(5)创建 [健康表]
USE [qqhou]
GO
CREATE TABLE [dbo].[健康表](
[健康码][varchar](18) NULL,
[日期][datetime] NULL,
[体温][float] NULL,
[体测地点][varchar](50) NULL,
[备注][varchar](50) NULL,
[报告][nvarchar](50) NULL
) ON [PRIMARY]
GO
--模拟数据
INSERT INTO [dbo].[健康表]([健康码] ,[日期] ,[体温] ,[体测地点] ,[备注]) VALUES (2020101,GETDATE(),36.7,'广州从化','正常')
INSERT INTO [dbo].[健康表]([健康码] ,[日期] ,[体温] ,[体测地点] ,[备注]) VALUES (2020102,GETDATE(),36.7,'广州从化','正常')
--(6)创建[卫生表]
USE [qqhou]
GO
CREATE TABLE [dbo].[卫生表](
[学号][varchar](11) NULL,
[日期][datetime] NULL,
[卫评分数][float] NULL,
[宿舍号][varchar](20) NULL,
[报告][varchar](20) NULL,
[备注][varchar](50) NULL
) ON [PRIMARY]
GO
--模拟数据
INSERT INTO [dbo].[卫生表]([学号],[日期],[卫评分数],[宿舍号],[备注] ,[报告]) VALUES ('2020101','2020-05-20',91,'1-101','内务有待提升','优秀')
(7)创建[费用表]
CREATE TABLE [dbo].[费用表](
[学号] [varchar](11) NOT NULL,
[姓名] [varchar](10) NULL,
[费用项目名称] [nchar](20) NULL,
[金额] [float] NULL,
[备注] [nchar](30) NULL
) ON [PRIMARY]
INSERT INTO [dbo].[费用表]([学号] ,[姓名],[日期],[费用项目名称] ,[金额] ,[备注])
VALUES ('2020101','林秀芳','2020-05-23','5月份网络费',36.86 ,'已交纳')
GO
4、 若想查看表的模拟数据,可在新建查询打开,并查询。
--例:
SELECT * FROM [Person]
SELECT * FROM [useps]
5、设计创建数据库其他对象(视图,存储过程,触发器,函数,等)
--(1)创建视图 [健康报告表V]
USE [qqhou]
GO
/**View [dbo].[健康报告表V] ***/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW[dbo].[健康报告表V]
AS
SELECT 健康码,姓名,最高体温,最低体温, 平均体温,报告
FROM [健康报告视图] K, 同学表T
WHERE K.健康码=T.学号
GO
-- 调用示例 SELECT * FROM [dbo].[健康报告表V]
--(2)创建函数 [dbo].[转换报告]
USE [qqhou]
GO
/****** Object: UserDefinedFunction [dbo].[转换报告] ***/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[转换报告](@体温float,@日期 datetime)
RETURNS CHAR(60)
AS
BEGIN
DECLARE @报告CHAR(60),@报告日期 CHAR(30)
SET @报告日期=CONVERT(CHAR(20), @日期)
--SET @报告日期=str(year(@日期),4)+'年'+str(month(@日期),2)+'月'+str(day(@日期),2)+'日'
SELECT @报告=CASE
WHEN @体温>=39THEN '体温严重异常!! '+@报告日期
WHEN @体温>=37.3AND @体温<39 THEN '体温异常! '+@报告日期
WHEN @体温<37.3 THEN ' 正常'
WHEN @体温IS NULL THEN '没有体测'
END
RETURN (@报告)
END
GO
--(3)创建[健康表]的[体温触发器]
USE [qqhou]
GO
/****** Object: Trigger [dbo].[体温触发器] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[体温触发器]
ON [dbo].[健康表]
FOR INSERT,UPDATE
AS
BEGIN
DECLARE @体温float,@日期 datetime
SELECT @日期=日期,@体温=体温FROM INSERTED
IF @体温>37.3
PRINT '华夏小信 特别警告!体温异常!!'+STR(@体温,6,3)
UPDATE 健康表
SET 报告='警告!体温异常!!' WHERE 体温>37.3 and @日期=日期
END
--模拟触发数据
INSERT INTO [dbo].[健康表]([健康码],[日期] ,[体温],[体测地点] ,[备注]) VALUES (190501,GETDATE(),37.8,'广州从化','??')
--(4)创建 [健康报告视图]
USE [qqhou]
GO
/****** Object: View [dbo].[健康报告视图] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[健康报告视图]
AS
select [健康码],最高体温= max(体温),最低体温= min(体温),平均体温= avg(体温),dbo.转换报告(体温,日期) AS 报告
from 健康表
GROUP BY [健康码],dbo.转换报告(体温,日期)
GO
-- 调用示例 SELECT * FROM [dbo].[健康报告视图]
--(5)创建存储过程 [dbo].[输出健康报告表]
USE [qqhou]
GO
/****** Object: StoredProcedure [dbo].[输出健康报告表] *****/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[输出健康报告表]
@JNUM VARCHAR(18)
AS
DECLARE @NUM VARCHAR(18),@NAME VARCHAR(12),@HMAXfloat,@HMIN float ,@HAVG float, @报告VARCHAR(60)
DECLARE Cr1 CURSOR FOR
SELECT 健康码,姓名,最高体温,最低体温, 平均体温,报告
FROM [健康报告视图] K, 同学表T
WHERE K.健康码=T.学号 AND K.健康码>=@JNUM
OPEN Cr1
PRINT SPACE(20)+'============= 大学生健康报告 ============='
PRINT ' '
PRINT '健康码 姓名 最高体温 最低体温 平均体温 报告(建议结论)'
PRINT REPLICATE('-',96)
FETCH NEXT FROM Cr1 INTO @NUM,@NAME ,@HMAX,@HMIN,@HAVG , @报告
WHILE @@FETCH_STATUS=0
BEGIN
PRINT@NUM+SPACE(3)+CONVERT(CHAR(6),@NAME)+SPACE(3)+STR(@HMAX)+SPACE(3)+STR(@HMIN)+SPACE(3)+STR(@HAVG)+SPACE(8)+ @报告
PRINTREPLICATE('-',96)
FETCHNEXT FROM Cr1 INTO @NUM,@NAME,@HMAX,@HMIN ,@HAVG , @报告
END
CLOSE Cr1
DEALLOCATE Cr1
GO
二、连接数据库与java程序。
1.打开控制面板,选择管理工具。
2.选择数据源,连接数据库。
3.在系统DSN中添加数据源(qqhou)
4.选择sql server native client10.0 (或sqlserver native client 11.0)
5.将数据源命名为qqhou,选择本地服务器(或本地的可用SQL 服务器)。
(若本地服务器安装多个,则选用数据库可用的那一个)
或例:
6.更改默认数据库,最终连接上数据库。
或:
上面表示连接数据库测试成功。
三、打开java程序并运行。
1、打开MyEclipse(或 eclipse或中文版eclipse)。
2、进入并导入。
3、导入qq文件。
导入文件
Run运行java
三、最终运行成功。
(注:用户测试 用户名admin 密码:admin)
通过审核合法用户,成功出现系统主菜单:
根据工作需要,选择运行相应功能。
四、《宿舍管理系统》测试报告
3.1目的
本测试报告为宿舍管理系统报告,目的在于总结评价阶段的测试以及分析测试结果,描述系统是否符合需求(或达到宿舍管理的目的),预期参考人员包括测试人员,开发人员,项目管理者,其他质量管理人员和需要阅读本报告的老师。
3.2参考资料
《行业数据库开发案例应用》
《数据库开发经典案例解析》
《数据库技术教程》
3.3 测试计划
(1)人员和职责
角色 | 人员 | 职责(主要负责 |
测试人员 | 注册入住、学生离校、统计、查询等模块代码测试 | |
测试人员 | 健康管理等功能模块代码测试 | |
测试人员 | 卫生管理等功能模块代码测试 | |
测试人员 | 集成测试 | |
测试人员 | 安全测试 | |
测试人员 | 报表输出相关模块测试 |
(2)测试周期和轮次
事件 | 测试时间 |
第一轮测试:执行功能测试 | |
第二轮测试:执行功能测试 |
(3) 测试方法和范围
系统功能测试:宿舍管理功能
3.3 测试详细记录
(1)安全测试
测试环境及工具:Microsoft SQL Server ,JAVA
测试人员:第一组全员
测试用例 | 测试结果 |
密码设置 | 通过 |
身份认证 | 通过 |
用户权限 | 通过 |
(2 功能测试
测试环境及工具:Microsoft SQL Server ,JAVA
测试人员: 全组人员
测试用例 | 测试结果 |
功能测试 | 成功 |
(3 遗留和未解决缺陷
功能单一
(4) 测试通过准则
1) 基本流程能通常完成,核心功能可以实现;
2)基本界面符合术语规范,不存在错误和明显歧义;所有可使用的流程中的界面设计工作已完成;
3) 按照标准流程没有出现各种非正常提示;
4) 关键流程和流程中的基本数据恢复没有问题;
备用资料:
win7下JAVA环境变量配置方法
1、首先,根据自己的需要下载1.6或者1.7的JDK,安装JDK。(安装的时候记一下安装目录,后面会用到)
2、右键计算机→属性→高级系统设置→高级→环境变量,在系统变量部分新建名为"JAVA_HOME"的变量,变量值为之前安装jdk的目录,例如本人的为"D:\Java\jdk1.6.0_10"。
3、在系统变量部分新建名为"classpath"的变量,变量值为".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar"。(可直接复制双引号之间的内容)
4、在系统变量部分找到名为"Path"的变量,点击编辑,变量值中增加";%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin"。(可直接复制双引号间的内容)
5、经过上面3个变量的配置,JAVA环境变量的配置就完成了,这时候还需要验证下配置是否成功。
选择开始→运行…→输入cmd→在弹出的运行命令框输入javac,看到下面的画面就表示配置成功了。