门禁管理系统(Swing/Dos)

设计目的:某公司安装了电子门,要设计门禁系统。

设计要求:

       (1) 公司的雇员可以凭借密码、卡号和指纹进入公司

       (2) 计算机根据雇员的验证方式对其身份进行验证

       (3) 管理员在监控室可以通过按钮直接开启电子门

       (4) 访客可以按门铃请求进入,由管理员为其放行


功能:注册 查询 删除 查询全部 指纹绑定 修改 管理员开门 开门 模拟访客 

 查询:分为id查询和姓名查询

修改:姓名 密码 指纹 的修改

开门:分为指纹开门 和帐号密码开门

9c850191b44340de88c47b401324793f.png

 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,"叮叮铛叮叮铛");
}
}

 

 

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值