设计目的:某公司安装了电子门,要设计门禁系统。
设计要求:
(1) 公司的雇员可以凭借密码、卡号和指纹进入公司
(2) 计算机根据雇员的验证方式对其身份进行验证
(3) 管理员在监控室可以通过按钮直接开启电子门
(4) 访客可以按门铃请求进入,由管理员为其放行
功能:注册 查询 删除 查询全部 指纹绑定 修改 管理员开门 开门 模拟访客
查询:分为id查询和姓名查询
修改:姓名 密码 指纹 的修改
开门:分为指纹开门 和帐号密码开门
text.java
package com;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Objects;
import java.util.Scanner;
public class text extends JFrame {
static Long id[] =new Long[200]; //帐号
static String password[]=new String[200]; //密码
static String name[]=new String[200]; //姓名
static int printfinger[]=new int[200];
public static int open=0;//门为关闭状态
public void setId(int i ,long a) { //id写入
this.id[i] = a;
}
public void setPassword(int i,String password){ //password写入
this.password[i] = password;
}
public void setName(int i,String name){ //设置姓名
this.name[i] = name;
}
public void setPrintfinger(int i,int finger){
this.printfinger[i]=finger;
}
public int redeleat(Long inputid){
int y=0;
for (int c=0;c<id.length;c++){
if(Objects.equals(inputid, id[c])){//解决for循环里的if break
y=c;
}
}
return y;
}
public void Deleat() {//删除
// String re="删除失败,无此id";
long inputid = new error().Deleatbutton();
System.out.println("inputid"+inputid);
int u=redeleat(inputid);
if (Objects.equals(inputid, id[u])) { //
if (u != 200) {
for (int j = u; j < id.length - 1; j++) {
this.id[j] = this.id[j + 1];
this.name[j] = this.name[j + 1];
this.password[j] = this.password[j + 1];
this.printfinger[j] = this.printfinger[j + 1];
}
new error().desucc();
} else if (Objects.equals(u, 200)) {
id[200] = Long.valueOf(0);
password[200] = null;
name[200] = null;
printfinger[200] = 0;
new error().desucc();
}
}else if(Objects.equals(inputid,Long.valueOf(0))){
System.out.println("test");
}
else
{
new error().deerr();
}
}
//return re;
}
opendoor.java
package com;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Objects;
public class opendoor extends text {
private JButton bt1, bt2, bt3, bt4, bt5,bt6,bt7,bt8,bt9;
private JLabel lbl1, lbl2, lbl3, lbl4;
private JTextField t1, t2, t3, t4;
public opendoor() {
JFrame f = new JFrame();
Container container = f.getContentPane();
container.setLayout(new FlowLayout());
bt1 = new JButton("注册");
bt2 = new JButton("查询");
bt3 = new JButton("删除");
bt4 = new JButton("查询全部");
bt5 = new JButton("指纹绑定");
bt6 = new JButton("修改");
bt7 = new JButton("管理员开门");
bt8 = new JButton("开门");
bt9 = new JButton("模拟访客");
lbl1 = new JLabel("请输入帐号:");
lbl2 = new JLabel("请输入密码:");
lbl3 = new JLabel("请输入姓名:");
lbl4 = new JLabel("指纹效验码:");
t1 = new JTextField(15);
t2 = new JTextField(15);
t3 = new JTextField(15);
t4 = new JTextField(15);
container.add(lbl1);
container.add(t1);
container.add(lbl2);
container.add(t2);
container.add(lbl3);
container.add(t3);
container.add(lbl4);
container.add(t4);
container.add(bt1);
container.add(bt2);
container.add(bt3);
container.add(bt4);
container.add(bt5);
container.add(bt6);
container.add(bt7);
container.add(bt8);
container.add(bt9);
t1.addActionListener(new text1());
t2.addActionListener(new text1());
t3.addActionListener(new text1());
t4.addActionListener(new text1());
bt1.addActionListener(new text1());
bt2.addActionListener(new text2());
bt3.addActionListener(new text2());
bt4.addActionListener(new text2());
bt5.addActionListener(new text2());
bt6.addActionListener(new text2());
bt7.addActionListener(new text2());
bt8.addActionListener(new text2());
bt9.addActionListener(new text2());
f.setResizable(false);
f.setSize(320, 500);
f.setLocation(500, 500);
f.setTitle("门禁管理系统");
f.setVisible(true);
f.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
public static void main(String[] args) { //主函数
new opendoor();
}
class text2 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) { //其他按钮监听
if(e.getSource()==bt2){//查询选择
new error().Cselect();
}
if (e.getSource() == bt3) {
Deleat();//删除
}
if(e.getSource()==bt4){ //查询全部
new error().cx();
}
if(e.getSource()==bt5){
new error().fix();//指纹绑定
}
if(e.getSource()==bt6){
new error().correct();//修改选择
}
if(e.getSource()==bt7){ //管理员开门
new error().openl();
}
if(e.getSource()==bt8){ //开门
new error().copen();
}
if (e.getSource()==bt9) { //模拟访客
new error().momi();
}
}
}
class text1 implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String thid = t1.getText();
String passwoed = t2.getText();
String name = t3.getText(); //注册按钮监听与文本输入监听
String finger= t4.getText();
if (e.getSource() == bt1) {//注册
// if (!Objects.equals(thid,"")) {
Long thisid= Long.valueOf(thid);
zhuce(thisid, name, passwoed, finger);
// }else {
// new error().illegal();
// }
}
}
}
public boolean congfu(long a){
boolean ee=false;
for(int q=0;q<id.length;q++){
if(Objects.equals(id[q],a)){
ee=true;
}
}
return ee;
}
static int i=0;
public void zhuce(Long a,String name,String password,String finger) {//门禁注册
System.out.println(id.length);
if(congfu(a)){
new error().err();
} else
{
setId(i, a);
setName(i, name);
setPassword(i, password);
if(Objects.equals(finger,"")){
finger= String.valueOf(0);
}
int figerl= Integer.parseInt(finger);
setPrintfinger(i,figerl);
i++;
new error().success();
}
}
}
error.java
package com;
import javax.swing.*;
import com.opendoor;
import java.awt.*;
import java.util.Objects;
public class error extends text {
//一个弹窗的类 继承软件的弹窗的类 也是一个窗口
//public void jinchengdiuqi(){
// for(int i=0;;i++){
// if(Objects.equals(i,10)){
// break;
// }
//
// }
//}
// private JLabel er1;
// private JTextField id;
// private JDialog er;
// private JButton butt;
public long Deleatbutton() {
JDialog er = new JDialog();
er.setTitle("删除");
er.setBounds(500, 500, 50, 100);
er.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
String de = JOptionPane.showInputDialog(er, "请输入删除的id");
Long re = Long.valueOf(0);
if (Objects.equals(de, "")) {
illegal();
}else if (Objects.equals(de, null)){
de= String.valueOf(0);
re = Long.valueOf(de);
}
else {
re = Long.valueOf(de);
}
return re;
}
public void deerr(){
JDialog er=new JDialog();
er.setBounds(500, 500, 50, 100);
JOptionPane.showMessageDialog(er,"删除失败","error",JOptionPane.WARNING_MESSAGE);
}
public void desucc(){
JDialog er=new JDialog();
er.setBounds(500, 500, 50, 100);
er.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
JOptionPane.showMessageDialog(er,"删除成功","success",JOptionPane.WARNING_MESSAGE);
}
public void err() {
JDialog er=new JDialog();
er.setBounds(500, 500, 50, 100);
er.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
JOptionPane.showMessageDialog(er,"id重复请重新输入","error",JOptionPane.WARNING_MESSAGE);
}
public boolean success() {
JDialog er=new JDialog();
er.setBounds(500, 500, 50, 100);
er.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
JOptionPane.showMessageDialog(er,"注册成功","success",JOptionPane.INFORMATION_MESSAGE);
return true;
}
public void Cname() {
JDialog er=new JDialog();
JDialog er2=new JDialog();
er.setBounds(500, 500, 50, 100);
er.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
er2.setBounds(500, 500, 50, 100);
er2.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
String ca;
ca= JOptionPane.showInputDialog(er,"请输入要查询的姓名");
if (Objects.equals(ca,"")) {
illegal();
}
if(Objects.equals(ca,null)) {
}
if(!(Objects.equals(ca,"")||Objects.equals(ca,null))){
String ce=ca;
for (int q = 0; q < text.name.length; q++) {
if (Objects.equals(ce, text.name[q])) {
JOptionPane.showMessageDialog(er2, "查询成功 " + "帐号:" + text.id[q] + " 密码:" + text.password[q] + " 姓名:" + text.name[q] + " 指纹效验码:" + text.printfinger[q]);
break;
} else if (Objects.equals(q, 199))
{
JOptionPane.showMessageDialog(er2, "查询失败,无此人员");
break;
}
}
}
}
public void Cid() {
JDialog er = new JDialog();
JDialog er2 = new JDialog();
er.setBounds(500, 500, 50, 100);
er.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
er2.setBounds(500, 500, 50, 100);
er2.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
String ca;
ca = JOptionPane.showInputDialog(er, "请输入要查询的id");
if (Objects.equals(ca,"")) {
illegal();
}
if(Objects.equals(ca,null)) {
}
if(!(Objects.equals(ca,"")||Objects.equals(ca,null))){
long ce= Long.parseLong(ca);
for (int q = 0; q < text.id.length; q++) {
if (Objects.equals(ce, text.id[q])) {
JOptionPane.showMessageDialog(er2, "查询成功 " + "帐号:" + text.id[q] + " 密码:" + text.password[q] + " 姓名:" + text.name[q] + " 指纹效验码:" + text.printfinger[q]);
break;
} else if (Objects.equals(q, 199)) {
JOptionPane.showMessageDialog(er2, "查询失败,无此id");
break;
}
}
}
}
public void Cselect(){
JDialog Cs=new JDialog();
Cs.setBounds(500, 500, 50, 100);
Cs.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
String[] options={"id","姓名"};
//int x =JOptionPane.showInputDialog(Cs,"请选择查询方式","ji", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]);
int x = JOptionPane.showOptionDialog(Cs, "请选择查询方式", "Click a button", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]);
switch (x){
case 0:{
Cid();
break;
}
case 1:{
Cname();
break;
}
default:{
break;
}
}
}
public void correct(){
JDialog er=new JDialog();
JDialog er1=new JDialog();
JDialog er3=new JDialog();
er.setBounds(500, 500, 50, 100);
er.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
er1.setBounds(500, 500, 50, 100);
er1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
String xiul= JOptionPane.showInputDialog(er,"请输入要修改的id");
if(Objects.equals(xiul,"")){
illegal();
}else if(Objects.equals(xiul,null)){
}else {
Long xiu= Long.valueOf(xiul);
for (int q = 0; q < text.id.length; q++) {
if (Objects.equals(xiu, text.id[q])) {
// String[] options={"id","姓名","密码","指纹效验码"};
String[] options={"姓名","密码","指纹效验码"};
int x = JOptionPane.showOptionDialog(er, "请选择要修改的内容", "修改", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]);
switch (x){
// case 0:{
// er1.setBounds(500, 500, 50, 100);
// er1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
// er3.setBounds(500, 500, 50, 100);
// er3.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
// long xid= Long.parseLong(JOptionPane.showInputDialog(er1,"id修改"));
// text.id[q]= xid;
// JOptionPane.showMessageDialog(er3, "修改成功");
// break;
//
// }
case 0:{
er1.setBounds(500, 500, 50, 100);
er1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
er3.setBounds(500, 500, 50, 100);
er3.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
String xid=JOptionPane.showInputDialog(er1,"姓名");
text.name[q]=xid;
JOptionPane.showMessageDialog(er3, "修改成功");
break;
}
case 1:{
er1.setBounds(500, 500, 50, 100);
er1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
er3.setBounds(500, 500, 50, 100);
er3.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
String xid=JOptionPane.showInputDialog(er1,"密码");
text.password[q]=xid;
JOptionPane.showMessageDialog(er3, "修改成功");
break;
}
case 2:{
er1.setBounds(500, 500, 50, 100);
er1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
er3.setBounds(500, 500, 50, 100);
er3.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int xid= Integer.parseInt(JOptionPane.showInputDialog(er1,"指纹验证码"));
text.printfinger[q]=xid;
JOptionPane.showMessageDialog(er3, "修改成功");
break;
}
}
break;
} else if (Objects.equals(q, 199))
{
JOptionPane.showMessageDialog(er, "查询失败,无此id");
break;
}
}
}}
public void illegal(){
JDialog er=new JDialog();
er.setBounds(500, 500, 50, 100);
er.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
JOptionPane.showMessageDialog(er,"非法,请重新操作","error",JOptionPane.INFORMATION_MESSAGE);
}
public void fix(){
JDialog er=new JDialog();
er.setBounds(500, 500, 50, 100);
er.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
String bxl= JOptionPane.showInputDialog(er,"请输入要绑定的id");
if(Objects.equals(bxl,"")){
illegal();
}else if(Objects.equals(bxl,null)){
}else {
Long bx= Long.valueOf(bxl);
int p=0;
for (int q = 0; q < text.id.length; q++) {
if (Objects.equals(bx, text.id[q])) {
p=q;
}}if(Objects.equals(bx, text.id[p])){
JDialog er1=new JDialog();
er1.setBounds(500, 500, 50, 100);
er1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int finger= Integer.parseInt(JOptionPane.showInputDialog(er,"请输入指纹效验码"));
text.printfinger[p]=finger;
JOptionPane.showMessageDialog(er1, "绑定成功");
}
else {
JDialog er1 =new JDialog();
er1.setBounds(500, 500, 50, 100);
er1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
JOptionPane.showMessageDialog(er1, "绑定失败无此id");
}
}
}
public void cx(){ //table 表格
int e;
for(e=0;e<id.length;e++){
if(Objects.equals(null,id[e])){
break;
}
}
JPanel jf=new JPanel();
JDialog er1=new JDialog();
er1.setBounds(500, 500, 50, 100);
er1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
String[][] rowData=new String[e][4];
System.out.println(e);
for(int q=0;q<=e-1;q++) {
rowData[q][0]= String.valueOf(text.id[q]);
rowData[q][1]=text.password[q];
rowData[q][2]=text.name[q];
rowData[q][3]= String.valueOf(text.printfinger[q]);
}
String[] columName={"帐号","密码","姓名","指纹效验码"};
JTable table =new JTable(rowData,columName);
jf.add(table.getTableHeader(), BorderLayout.NORTH);
jf.add(table, BorderLayout.NORTH);
er1.add(jf);
er1.setBounds(500, 500, 500, 300);
er1.setVisible(true);
er1.setResizable(false);
}
public void openl(){
JDialog op =new JDialog();
op.setBounds(500, 500, 50, 100);
op.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
open=1;
JOptionPane.showMessageDialog(op, "门已开,5秒后关门");
open=0;
}
public void copen(){
JDialog er=new JDialog();
er.setBounds(500, 500, 50, 100);
er.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
String[] options={"帐号密码开门","指纹开门"};
int x = JOptionPane.showOptionDialog(er, "请选择开门的方式", "开门", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]);
switch (x){
case 0:{
JDialog erl=new JDialog();
erl.setBounds(500, 500, 50, 100);
erl.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
String xu= JOptionPane.showInputDialog(erl,"请输入帐号");
if(!Objects.equals(xu,"")) {
Long xiu= Long.valueOf(xu);
for (int i = 0; i < id.length; i++) {
if (Objects.equals(xiu, id[i])) {
String mi = JOptionPane.showInputDialog(erl, "请输入密码");
if (Objects.equals(mi, password[i])) {
JOptionPane.showMessageDialog(erl,"欢迎光临:"+text.name[i]);
openl();
break;
} else {
JOptionPane.showMessageDialog(erl, "密码错误");
break;
}
} else {
JOptionPane.showMessageDialog(erl, "帐号错误");
break;
}
}
}
if(Objects.equals(xu,"")) {
illegal();
}
if (Objects.equals(xu,null)){
break;
}
break;
}
case 1:{
JDialog erl=new JDialog();
erl.setBounds(500, 500, 50, 100);
erl.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
String fin= JOptionPane.showInputDialog(erl,"请输入指纹效验码");
int finger= Integer.parseInt(fin);
if(!Objects.equals(fin,"")){
int a=0;
for (int i=0;i<printfinger.length;i++) {
if(Objects.equals(finger, printfinger[i])){
a=i;
}}
if(Objects.equals(fin,String.valueOf(0))){
JOptionPane.showMessageDialog(erl,"无效指纹");
}else {
if (Objects.equals(finger, printfinger[a])) {
JOptionPane.showMessageDialog(erl, "欢迎光临:" + text.name[a]);
openl();
break;
} else {
JOptionPane.showMessageDialog(erl, "无效指纹");
break;
}
}
}
if(Objects.equals(fin,"")) {
illegal();
}
if (Objects.equals(fin,null)){
break;
}
break;
}
}
}
public void momi(){
JDialog erl=new JDialog();
erl.setBounds(500, 500, 50, 100);
erl.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
JOptionPane.showMessageDialog(erl,"叮叮铛叮叮铛");
}
}