使用Java Swing的学生宿舍管理系统

1.学生宿舍管理系统

学生宿舍是同学最为熟悉的领域,假定学校有多栋宿舍楼,每栋楼有多层,每层有多个寝室,每个寝室可住多名学生,学生宿舍管理系统对学校的学生宿舍进行规范管理,其管理的对象如下:

·宿舍信息:编号、楼层、床位数、单价等。

·学生:学号、姓名、性别、年龄、所在院系、年级、电话等。

每个宿舍最多可以住4位同学,每个同学只能在一个宿舍,不同宿舍的费用标准可以不同。不同院系、年级的同学可以住同一间宿舍。

系统要能够对宿舍、学生、住宿信息进行登记、调整,并能随时进行各种查询、统计等处理。包括:

·寝室分配:根据院系、年级分配寝室。

·学生管理:实现入住学生信息的登记、维护和查询功能。

·信息查询:按公寓楼号、学生姓名等查询住宿信息。  

·出入登记(可选):对学生进出公寓的情况进行登记、实现基本的出、入监控功能。

需求说明及功能分析

需求说明:假定学校有多栋宿舍楼,每栋楼有多层,每层有多个宿舍,每个宿舍可住多名学生,设计一个学生宿舍管理系统对学校的学生宿舍进行规范管理。

用户群体有:学生、宿管。

管理对象有:宿舍楼、宿舍、学生等。

要求每个宿舍最多可以住4位同学,每个同学只能在一个宿舍,不同类型宿舍的床位可以不同、费用标准可以不同,不同年级、院系、班级的学生也可以住同一间宿舍。系统要能够对宿舍楼、宿舍、宿管、学生、住宿信息等进行各种操作,并能随时进行各种查询、统计等处理。包括:宿舍管理、学生管理、住宿管理、寝室分配、出入登记和各种信息查询等。不同的用户群体有不同的功能,其中宿管的管理权限能实现管理功能。

功能分析:系统分为三个模式:学生模式、宿管模式

学生模式的功能有:查看个人信息、宿舍报修、建议与反馈、修改密码、退出。

宿管模式的功能有:宿舍管理、学生管理、住宿管理、出入登记、退出。

其中,在管理各种数据的同时,要求能对其进行查询,例如:宿舍楼管理,要能增删改查宿舍楼信息;寝室分配功能要求能一键实现宿舍的自动分配,分配规则按照同一年级、院系进行分配,不同年级或院系或班级的学生在没有满足上一要求的宿舍分配时才会分配到同一宿舍。

3.2 概念结构设计

概念结构的设计使用E-R模型进行设计,从系统管理模式的视角下看,本系统主要可分为:宿舍管理、学生管理、住宿管理,共3个子系统。

住宿管理子系统可对住宿信息进行增删改查操作。

一个学生住在一个宿舍中,一个宿舍可住有多名学生。

学生管理子系统可对学生进行增删改查操作,以及宿舍报修、建议与反馈等功能。

宿舍管理子系统可对宿舍信息进行增删改查操作。

总体E-R图

上述3个子系统集成总系统,总体E-R图如上,各实体详细属性可见图中

3.3 逻辑结构设计

根据以上总体E-R图,可获得以下5个关系模型。

宿舍(楼号,楼层,宿舍号,总床位数,剩余床位数,单价)

宿管(编号,密码,姓名,性别,手机)

学生(学号,密码,姓名,性别,年级,院系,手机)

住宿信息(学号,楼号,楼层,宿舍号,入住时间)

出入信息(学号,楼号,类别,时间)

基于以上5个基本表,设计了3个视图用于某部分功能。

含学生姓名的住宿信息(学号,姓名,楼号,楼层,宿舍号,入住时间)

含学生姓名的出入信息(学号,姓名,楼号,类别,时间)

含楼号的住宿学生信息(学号,密码,姓名,性别,出生年份,年级,院系,班级,手机,是否入住,楼号)

系统流程图:

3.4 数据库物理设计与实施

数据库的硬件使用本人电脑,操作系统为Win10;软件使用SQLServer数据库进行数据管理。

物理结构设计:

宿舍表dormitory

字段名

数据类型

约束

注释

BuildingNo

varchar(50)

主键

楼号

Storey

varchar(50)

主键

楼层

Dno

varchar(50)

主键

宿舍号

BedNum

varchar(50)

非空

总床位数

RGN

int

非空

剩余床位数

price

int

非空

单价

学生表student

字段名

数据类型

约束

注释

Sno

varchar(50)

主键

学号

Sname

varchar(50)

非空

姓名

Ssex

varchar(50)

非空

性别

Sdept

varchar(50)

非空

院系

Grade

varchar(50)

非空

年级

Phone

varchar(50)

非空

电话

Age

varchar(50)

非空

年龄

住宿信息表Lodging

字段名

数据类型

约束

注释

Sno

varchar(50)

主键,外键,非空

学号

BuildingNo

varchar(50)

外键,非空

楼号

Storey

varchar(50)

外键,非空

楼层

Dno

varchar(50)

外键,非空

宿舍号

Scheckin

date

非空

入住时间

出入信息表Leave

字段名

数据类型

约束

注释

Sno

varchar(50)

外键,非空

学号

BuildingNo

varchar(50)

外键,非空

楼号

time

datetime

非空

时间

出入信息表Enter

字段名

数据类型

约束

注释

Sno

varchar(50)

外键,非空

学号

BuildingNo

varchar(50)

外键,非空

楼号

time

datetime

非空

时间

数据库的建立和表、视图的建立,使用了sql语句。数据库建立时,表的物理结构采用上述结构。

3.5数据操作及实现(源代码分析及查询截图)

1. 源代码分析

数据查询操作:

本系统可以对宿舍、宿管、学生、住宿信息进行查询操作,在程序中编写sql语句,通过JDBC连接数据库进行查询,然后获取查询结果,将结果显示于应用系统界面中。

在代码中本人主要运用String类型数据去编写sql语句并结合java中sql类中已有的PreparedStatement,ResultSet类再加上sql的select语句完成了数据查询的功能操作。

如:住宿信息的查询

图1数据查询

数据修改操作:

本系统可以对宿舍、宿管、学生、住宿等信息进行改操作,在程序中编写sql语句,通过应用系统界面用户输入的数据获取sql语句中的参数,再通过JDBC连接数据库进行更新操作,最后将操作结果显示于应用系统界面中。

在代码中本人主要运用String类型数据去编写sql语句并结合java中sql类中已有的PreparedStatement,ResultSet类再加上sql的select和update语句完成了数据查询的功能操作。

如:住宿信息的修改

图2.数据修改

数据增加操作:

本系统可以对宿舍、宿管、学生、住宿等信息进行增加操作,在程序中编写sql语句,通过应用系统界面用户输入的数据获取sql语句中的参数,再通过JDBC连接数据库进行更新操作,最后将操作结果显示于应用系统界面中。

在代码中本人主要运用String类型数据去编写sql语句并结合java中sql类中已有的PreparedStatement,ResultSet类再加上sql的select和insert语句完成了数据查询的功能操作。

如:宿舍信息的增加

图3.数据增加

数据删除操作:

本系统可以对宿舍、宿管、学生、住宿等信息进行删除操作,在程序中编写sql语句,通过应用系统界面用户输入的数据获取sql语句中的参数,再通过JDBC连接数据库进行更新操作,最后将操作结果显示于应用系统界面中。

在代码中本人主要运用String类型数据去编写sql语句并结合java中sql类中已有的PreparedStatement,ResultSet类再加上sql的select和delete语句完成了数据查询的功能操作。

如:宿舍信息的删除

图4.数据删除

数据维护操作:

程序对用户输入的数据进行了限制或判误,以防止用户输入非法数据,从而导致系统错误;对数据库中的数据也进行了相应的保护,以防误删,随时可进行数据的转储和恢复。某些数据维护操作需人工进行。

寝室分配:

寝室分配:可一键实现宿舍的自动分配,分配规则按照优先同一年级、院系进行分配如果没有符合条件的宿舍再按照同一年级或院系去分配,最后还没有就查询是否还有空宿舍去分配

图5. 寝室分配关键代码

结合多个SQL语句再加上判断语句去实现寝室分配功能。

数据库连接方法:

本程序使用Java进行编写,故数据库连接方法使用JDBC,用到了jar包:mysql-connector-java-8.0.26。

先写好JDBC驱动名、数据库URL、用户名、密码,然后使用jar包中的相应方法进行数据库连接,将连接信息放在Connection对象中,以便后续数据操作时可用,后面可使用PreparedStatement类对象来执行sql语句,使用ResultSet类对象来存放获取的结果集等。

6.数据库连接

出入登记操作:

本系统可以对学生进出宿舍进行登记操作,在程序中编写sql语句,通过应用系统界面用户输入的数据获取sql语句中的参数,再通过JDBC连接数据库进行更新操作,最后将操作结果显示于应用系统界面中。

在代码中本人主要运用String类型数据去编写sql语句并结合java中sql类中已有的PreparedStatement,ResultSet类再加上sql的select和insert语句完成了数据查询的功能操作。

7.出入登记

Swing图形界面操作:

本系统实现了使用swing图形化界面,在程序中利用JLabel,JTxtField,JButton等常用的按键和文本框的代表。再利用CardLayout,JPanel,JTabbedPane等常用的布局方式(例如卡片式布局等……)。

查询截图

图9.登录界面

宿舍管理系统的登录界面

图10.登录成功

图11.宿舍管理查询

图12.学生管理查询

图13.住宿信息查询

图14.出入信息表

  • 49
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
信息的网络化和商业经济的高效化促使计算机深入到现实生活中的各行各业,计算机的工作效率更是传统的手工操作的成几何倍数,在信息科技的冲击下,几乎所有的行业都在使用计算机代替手工工作,大量的节省了人力物力财力,大大提高了工作效率,同时带来更多的经济效益。与此不想对应的是,学校作为科学技术的传播者,却并没有好好的利用信息科技,特别是学生宿舍,大多数学校目前还停留在需要宿舍管理员手工记录一些信息的低效率阶段,对于一所每年培育无数学子的学校来说,学生信息量实在是太过庞大,如果想要把一届届的学生记录在案,不能通过手工的方式,这种方式不仅工作效率低,浪费大量的时间,需要大量的资源,并且这种管理往往是不稳定,不安全的,也许宿舍管理员的一个不小心,就有不法分子潜入宿舍,也许记录在册的学生信息因为一次涨潮全部变为废纸。 在这样的前提条件下,我们设计了一套完整的宿舍管理系统,对学生的管理计算机化、规模化。利用数据库具有稳定性、安全性高、运行速度快等优点,由管理员将学生信息输入到数据库,这样的数据安全、永久、稳定、存储数据量巨大、可扩展性强,并且能够很快的查询,修改,删除学生记录等。宿舍管理员只需要掌握简单的计算机基础和熟练掌握软件环境,就可以上岗工作,入门需求低。 二、 建设目标 通过简单的数据库的应用,对学校学生进行格式化、规模化管理,加强学校宿舍管理效率,加强学校宿舍的安全管理,加强学校对学生的约束高度。学校通过宿舍管理系统能够实时掌握学生动态,更好的制定和完善出宿舍管理意见和规章,管理员通过学生信息管理系统,可以随时随地的接收学生的需求,并把需求分类传递给相关部门。 三、 系统的主要功能 本系统主要由门禁机、宿舍管理员模块和学生模块3部分组成 3.1 楼栋闸机模块 在本模块中,学生需要通过校园卡刷卡的方式进入宿舍,同时也是学生正常出入宿舍的唯一方式,如果校园卡遗失,需要在用身份证宿舍管理员处进行登记,经过同意后才能进入宿舍 3.1.11 学生验证 学生刷卡进出时,闸机会获取校园卡的信息,判断该学生是否属于该楼栋,如果验证成功,者允许通过,验证不成功,则不允许通过,提示学生重新刷卡。学生在多次验证不成功的情况下,可以向管理员申请。 3.1.12 学生信息管理 闸机需要记录每个学生每天的出入信息,对于24小时未刷卡进入宿舍的学生记录在数据库,同时把消息提醒给管理员,管理员通过一定的整理后把消息发送给学生的辅导员,同时闸机监控这位学生的下次进入时间,把消息传递给管理员进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-Initiation

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值