java swing 组织机构_课内资源 - 基于Java Swing的小型社团成员管理系统

一、需求分析

1.1 个人信息

学号、姓名、性别、年级、系别、专业、出生日期、联系方式、个性签名、地址、照片。

6688e326f55dd3ba069bfc1958d72f41.png

1.2 基本功能要求管理员信息管理

登录、注销功能

修改密码功能

部落成员信息管理

添加成员

删除成员

修改成员信息

按条件查找筛选成员

2c79b5755a7513ee303f1db5a6607b63.png

1.3 高级特性管理员权限管理

成员信息包含照片

连接数据库性能的优化,比如:Connection

二、详细设计

2.1 数据库设计字段名

字段描述

数据类型

备注

psw

密码

nvarchar(30)

不为空

idNumber

学号

char(9)

主键

name

姓名

nvarchar(10)

不为空

sex

性别

char(2)

不为空

grade

年级

nvarchar(10)

不为空

dept

性别

nvarchar(30)

不为空

major

专业

nvarchar(30)

不为空

iden

身份

nvarchar(20)

不为空

born

出生日期

datetime

phone

联系方式

char(11)

pSignature

个性签名

nvarchar(50)

pAddress

地址

nvarchar(50)

picture

照片

nvarchar(150)

sql建表语句

create tablePersonInfo(

psw nvarchar(30)notnull,

idNumberchar(9)notnullprimary key,

name nvarchar(10)notnull,

sexchar(2)notnull,

grade nvarchar(10)notnull,

dept nvarchar(30)notnull,

major nvarchar(30)notnull,

iden nvarchar(20)notnull,

born datetimenull,

phonechar(11)null,

pSignature nvarchar(50)null,

pAddress nvarchar(50)null,

picture nvarchar(150)null

)

2.2 界面设计

登陆界面

a4d407eb0c894524c7c9c19d753d308a.png

主界面

3de0b1e5e2830c3ce02ac766cd4e2dfa.png

修改密码

aa0d09d3b169665ac6f17d70ec25a282.png

查询信息

e113e6c4a64cf0aaab10bbb7d5610123.png

修改信息

9e23c63132482a7d0cc699b19558947a.png

删除信息

df3ab2396c4678124b3ba8abbe1e61ee.png

2.3 分 包

2.3.1 视图层包View

9b35aa00970a0170482eb0abd663b998.png

2.3.2 控制层包Control

6c594a87712f3450f7556bf5f5192a17.png

2.3.3 模型层包Model

39b5297b440301d43f545d519e054d9a.png

2.4 分类

2.4.1 视图层类LoginView.java登录界面设计类

InfoManagerView.java信息管理系统主界面设计类

InfoPanel.java信息面板设计类

InfoSelectPanel.java查询信息面板设计类

InfoInsertPanel.java添加信息面板设计类

InfoUpdatePanel.java修改信息面板设计类

InfoDelPanel.java删除信息面板设计类

UpdatePasswordPanel.java修改密码面板设计类

2.4.2 控制层类InfoManager_01.java信息管理系统主类

LoginActEvents.java登录界面动作事件类

InfoManagerActEvents.java信息管理系统主界面动作事件类

InfoSelActEvents.java查询信息面板动作事件类

InfoInsActEvents.java添加信息面板动作事件类

InfoUpdActEvents.java修改信息面板动作事件类

InfoDelActEvents.java删除信息面板动作事件类

UpdPswActEvents.java修改密码面板动作事件类

ListSelEvents.java列表框选项事件类

2.4.3 模型层类Constants.java sql server数据库连接信息

DBUtil.java连接数据库操作类

DaoPattern.java操作数据库信息功能类(底层模型类)

InfoSelect.Java查询数据库信息类(业务逻辑处理类)

InfoUpdate.java更新数据库信息类(业务逻辑处理类)

三、开发实现

3.1 开发说明开发环境:eclipse

数据库:sql server 2008

项目UI界面使用eclipse的windowBuilder插件来设计

使用JDBC方式连接数据库

信息管理系统所涉及到的照片信息的处理,在项目路径下开一个文件夹picture,用来存储成员的照片信息,而在数据库中存储的是对应照片的路径。

使用mvc模式,按照功能和类型分类分包,使结构清晰。

提高系统安全性,系统要登录成功才能操作,对数据的增删改只有指定管理员才可以操作,以防止其他使用者随意更改数据,保证数据的安全性。

程序框架图

26b4be0bedaf7f6751c9e0104c999d1b.png

3.2 功能实现

3.2.1 数据库操作方面(对数据库操作即是crud)

将JDBC技术所需使用的数据库连接信息(数据库驱动程序,URL,用户名,密码等)封装成一个类,方便项目在不同数据库下使用时进行数据库信息修改。

设计一个操作数据库的模型类DaoPattern.java,里面是操作数据库信息的底层模型,包含两个方法,更新(包含增删改)数据库中的信息,和查询数据库中的信息,其中查询数据库信息返回的是结果集。这两个方法不提供具体的增删改查的sql语句,反而是把这些功能交到数据库业务逻辑层去实现。

设计操作数据库的业务逻辑类(InfoUpdate.java;InfoSelect.Java),这些类根据对数据库信息的不同操作而提供不同的sql语句来操作数据库。

对数据库信息的查询,尽量避免使用*查询所有信息而减慢查询的相应速度。

3.2.2 照片信息处理方面

在项目路径下开一个文件夹picture,用来存储成员的照片,而数据库中存储的是对应照片的路径。

添加/修改照片的处理:

点击选择照片按钮时,弹出打开文件选择对话框,此打开文件选择对话框设置文件过滤器,显示图片文件

对所选择的图片文件,还要做处理,处理所选择的文件是否存在

图片文件存在:还要做处理,处理项目路径下picture文件夹是否存在与当前图片文件同名的文件不存在同名文件:将所选择的图片复制到picture文件夹下,并获取图片路径,将路径添加到数据库中,并在标签上显示该照片

存在同名文件:提示用户所选文件不可用,要么更改所选文件的名称,要么另选文件

查询照片的处理:

从数据库中取出照片的路径,根据此路径创建图标图像对象:public ImageIcon(String filename) 根据指定的文件创建一个 ImageIcon

设置此图标图像的缩放,照片以适当大小显示在相应位置

将照片显示在标签上

3.2.3 登录模块输入学号和密码,选择登录的身份,点击“登录”按钮

初始学号是:111111111,初始密码:123456,初始身份:管理员

若学号为空,弹出提示对话框,提示“学号不能为空”

若学号不为空:但输入的学号不存在,提示“信息不存在”

而若是输入的信息不正确,则提示“您的信息有误!请重新输入”

若信息无误,释放登录界面,同时对用户权限进行设置;进入主界面,并显示当前使用者信息

若登录的是管理员,将“修改密码”, “添加成员信息”,“删除成员信息”,“修改成员信息”等菜单项设置为可编辑,允许用户操作

而若登录的是普通成员,则无法进行 修改密码 和 增删改信息操作

“重置”按钮:所以内容还原成默认

3.2.4 修改密码模块此模块只有管理员才可操作

若选择的是“设置”菜单下的“修改密码”菜单项,则进入修改密码界面

输入要修改密码的学号,设置新密码,并再次输入密码确认。

点击“修改”按钮:

如果新密码与确认密码不匹配,弹出提示对话框,提示“请准确输入您要修改的密码”

如果两个密码匹配:而要修改密码的学号不存在,弹出提示对话框提示“该学号不存在”

而若存在,会返回是否成功的信息。如果修改成功,弹出提示对话框提示“密码修改成功”,如果不成功,则提示“密码修改失败,请确认输入的信息是否正确!”

若要继续修改,点击“重置”按钮

点击“重置”按钮:清空文本框内容

3.2.5 查询成员信息模块

若选择的是“操作”菜单下的“查询成员信息”菜单项,有多种查询方式。

选择查询条件:年级、性别、系别;点击“泛查找”按钮

根据条件到数据库中查询信息,返回满足条件的学号如果集合为空,则没有查询结果,弹出对话框提示“找不到信息”

如果集合不为空,则有查询结果,在查询模板左侧的列表框中显示查询后的学号,并记录满足条件的学号共有几条

根据学号查询:

输入所要查询的学号,点击“根据学号查找”按钮

或在列表框中选择要查询的学号

如果是输入学号查询,还有防止输入的学号为空的情况。

获取输入或选中的学号,到数据库中去查询,返回查询后的结果集如果结果集为空:没有查询到任何信息。弹出提示对话框提示“该学号不存在,请确认后重新输入!”

如果结果集不为空:从结果集中取出信息显示在界面的相应位置。特别地,对于照片的处理,根据获取的照片路径创建图标图像对象,同时为了照片以适当的大小显示,设置了图像的缩放,然后把照片显示在对应标签上

3.2.6 添加成员信息模块填写成员基本信息,如果需要上传照片,点击“选择图片”按钮,将会弹出打开文件选择对话框,此文件选择器设置了文件过滤器(打开图片文件),并对于 所要打开的文件,先判断其在当前路径下是否存在。在存在的情况下,将其文件复制到项目路径下的picture文件夹中,但前提也要判断改文件夹是否存在同名文件。复制好后获取该文件在项目路径下的路径,存入到数据库中

点击“录入”按钮:录入 信息前,对于数据库中某些不允许为空的字段,先强制用户必须填写;然后对于所录入的学号,先到数据库中查询该学号是否已经存在。在不存在的情况 下,将填写的信息录入数据库中,并返回操作是否成功的提示

点击“重置”按钮:将内容清空还原成默认

3.2.7 修改成员信息模块用户要修改信息,必须先输入要修改信息的学号

点击“搜索”按钮:但前提要保证学号不为空,然后根据用户输入的学号,到数据库中去查询该学号成员的基本信息,返回结果集

如果结果集为空,弹出对话框提示“该学号不存在!请确认后重新输入!”

如果结果集不为空,将查询到的信息显示出来。用户就可以根据需要修改某些信息,对于照片的修改,与照片添加的操作类似,但有不同的一点是,一旦更换了照片,那么之前提供的照片要删除掉

点击“录入修改”按钮:获取用户修改后的信息,到数据库中去修改,并返回是否修改成功的提示信息

点击“重置”按钮:将全部内容清空还原默认

3.2.8 删除成员信息模块用户要删除信息,必须先输入要删除信息的学号

点击“搜索”按钮:但前提要保证学号不为空,然后根据用户输入的学号,到数据库中去查询该学号成员的基本信息,返回结果集

如果结果集为空,弹出对话框提示“该学号不存在!请确认后重新输入!”

如果结果集不为空,将查询到的信息显示出来。

点击“删除”按钮:为防止用户使用时由于某些不小心操作而删除数据,提高系统的安全性。所以在点击删除按钮的时候,还要弹出确认对话框,咨询用户是否删除。用户确认删除后,才到数据库中去删除信息,并返回删除是否成功的提示

点击“重置”按钮:文本内容清空还原默认

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/541889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos下安装pip时失败:

2019独角兽企业重金招聘Python工程师标准>>> [rootwfm ~]# yum -y install pip Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirrors.tuna.tsinghua.edu.cn * extras: mirrors.tuna.tsinghua…

java写手机游戏_如何将自己编写的JAVA小游戏写到手机里?

2019-06-19怎么用java编写获取星期几的程序&#xff1f;import java。util。*; public class WeekDay { Calendar date Calendar。getInstance(); private int getMaxDate(int moth){ moth moth -1; if(moth > 12 || moth < 0){ System。 out。println("输入月份错…

gitlab修改默认端口

部署gitlab的时候&#xff0c;一启动&#xff0c;发现80和8080端口已经被占用&#xff0c;无奈&#xff0c;只得先将监听80端口的nginx和监听8080端口的jenkins停止。这会儿有空&#xff0c;琢磨一下如何修改gitlab的默认端口。 修改主要分为两部分&#xff0c;一部分是gitlab总…

深入理解Netscaler INat

深入理解Netscaler INatNetscaler的INat主要是用作基于目的地址的转换&#xff0c;将client访问的公网IP通过Netscaler转换成服务器的私网IP&#xff0c;与DNAT作用类似。由于Netscaler默认的工作机制就是同时做源IP&#xff1a;【源端口】目的IP&#xff1a;【目的端口】的转换…

为什么玩我的世界老提示Java se错误_我的世界error错误信息 error could解决方法

我的世界是一个及其开放的沙盒游戏&#xff0c;而在这个游戏中有不少的问题&#xff0c;比如说遇到error该如何解决呢&#xff0c;看小编给大家带来的我的世界error错误的解决方法&#xff0c;希望大家喜欢。error应用程序错误信息。包括“Error:Unable to access jarfile mcpc…

javascript OOP(下)(九)

一、javascript模拟重载 java中根据参数类型和数量的区别来实现重载&#xff0c;javascript弱类型&#xff0c;没有直接的机制实现重载&#xff0c;javascript中参数类型不确定和参数个数任意&#xff0c;通过判断实际传入的参数的个数来实现重载。 <script> function Pe…

Linux如何查找大文件或目录总结

转载&#xff1a;http://www.cnblogs.com/kerrycode/p/4391859.html 在Windows系统中&#xff0c;我们可以使用TreeSize工具查找一些大文件或文件夹&#xff0c;非常的方便高效&#xff0c;在Linux系统中&#xff0c;如何去搜索一些比较大的文件呢&#xff1f;下面我整理了一下…

java需要会的工具_Java开发者必备的几款工具,一定要掌握!

原标题&#xff1a;Java开发者必备的几款工具&#xff0c;一定要掌握&#xff01;NotepadNotepad是用于编辑xml、脚本以及记笔记的最佳工具。这个工具的最好部分在于&#xff0c;你在Notepad上打开的任何一个文档&#xff0c;在关闭后都会有一个残留文档&#xff0c;它有助于在…

Android推荐的几本书

2019独角兽企业重金招聘Python工程师标准>>> 第一阶段 <<第一行代码Android>><<疯狂Android>>第二阶段 <<Android开发艺术探索>><<Android群英传>>Android源码 第三阶段 <<Android开发艺术探索>><&…

tdr上升时间什么设定_TDR的完整形式是什么?

tdr上升时间什么设定TDR&#xff1a;时域反射仪/车票寄存收据/定期存款收据 (TDR: Time Domain Reflectometer/ Ticket Deposit Receipt/ Term Deposit Receipt) 1)TDR&#xff1a;时域反射仪 (1) TDR: Time Domain Reflectometer) TDR is an abbreviation of the "Time D…

【java】反射+poi 导出excel

2019独角兽企业重金招聘Python工程师标准>>> 反射 导出的数组转变成对象 private static Object expexcelMaptobean(Class<?> cobj,Map<String,String> map,int[] expColums,String[] params) throws InstantiationException, IllegalAccessException…

css设置背景图片大小_如何使用CSS设置背景图片大小?

css设置背景图片大小Introduction: 介绍&#xff1a; As we all know that the images are a very responsive yet very creative way to display your web page or website to the users. The images also play a major role in indulging users to websites or web pages. T…

avr计数_使用8位LCD创建计数器| AVR

avr计数This type of counter may be also used in the EVM machines. A counter can be used to count the number of times a button is pressed. It can have many applications. The most widely used counter application is in EVM and also in customer feedback machin…

php将字符变为数字,数字字符怎么转化为数字 php 怎么将字符转成数字

java中&#xff0c;String字符串转化为数字我现在想把一个String字符串转化为数字&#xff0c; String s"00000123" 我直接使java中String字符串转化为数字&#xff1a; 转换为浮点型&#xff1a; 使用Double或者Float的parseDouble或者parseFloat方法进行转换 Strin…

用U盘作为启动盘做系统步骤

步骤一&#xff1a;BIOS设置U盘启动 制作好Win10 U盘系统安装盘之后&#xff0c;我们需要在电脑的BIOS设置中把第一启动设备设置为U盘&#xff0c;设置后就可以从我们制作的Win10 U盘系统安装盘启动&#xff0c;从而显示系统安装界面开始安装系统。BIOS设置U盘启动的方法如下&a…

使用tkinter模块在Python中进行GUI编程

GUI (Graphical User Interface): GUI(图形用户界面)&#xff1a; GUI is a simple application which helps the user to interact with the computer or any other electronic device through a graphical icon. This used to perform different tasks on a desktop or lapt…

Composer学习之————Ubuntu14.04下安装Composer

下载Composer&#xff1a; curl -sS https://getcomposer.org/installer | php 安装Composer&#xff1a; /usr/bin/php composer.phar --version 设置全局命令&#xff1a; sudo mv composer.phar /usr/local/bin/composer 查看是否安装与设置成功&#xff1a; composer -vers…

java如何解决高并发症,JAVA线上故障紧急处理详细过程!

链接&#xff1a;https://fredal.xin/java-error-check?hmsrtoutiao.io&utm_mediumtoutiao.io&utm_sourcetoutiao.io线上故障主要会包括 CPU、磁盘、内存以及网络问题&#xff0c;而大多数故障可能会包含不止一个层面的问题&#xff0c;所以进行排查时候尽量四个方面依…

php 查看扩展 代码,[扩展推荐] 使用 PHP Insights 在终端查看 PHP 项目代码质量

PHP Insights 是一个由 Nuno Maduro 发布的、可在控制台进行 PHP 即时质量检查的拓展包。在项目的 readme 文件中&#xff0c;可以发现 PHP Insights 的主要功能包含&#xff1a;代码质量 与 代码风格 分析一个针对于代码 结构 和 复杂度 的漂亮的预览界面在 Laravel、Symfon…

航空机票预订c#代码_航空公司座位预订问题的C ++程序

航空机票预订c#代码Problem statement: Write a program to assign passengers seats in an airplane. Assume a small airplane with seat numbering as follows: 问题陈述&#xff1a;编写一个程序来分配飞机上的乘客座位。 假设小型飞机的座位编号如下&#xff1a; 1 A B C…