⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 controlsys.java

📁 请认真阅读您的文件包然后写出其具体功能(至少要20个字)。尽量不要让站长把时间都花费在为您修正说明上。压缩包解压时不能有密码。
💻 JAVA
字号:
/*
 * ControlSys
 * 2007
 * 门禁系统
 */
package s2javaoo.xmal.sys;

import org.apache.log4j.Logger;

import s2javaoo.xmal.user.Admin;

public class ControlSys {
    private Door       door;            // 门禁系统的电子门
    private Computer   computer;        // 门禁系统的计算机
    private InputEquip inputEquip;      // 门禁系统的输入设备
    private int        ring;            // 门铃,0为安静,1为鸣响
    private int        openSign;        // 开门信号,由管理员按下按钮时产生,1为开启信号
    private Logger     logger;          // 日志

    /**
     * 初始化
     */
    public ControlSys(){
        this.door       = new Door();
        this.computer   = new Computer();
        this.inputEquip = new InputEquip();
        this.ring       = 0;
        this.openSign   = 0;
        this.logger     = Logger.getLogger(Admin.class.getName());

        System.out.println("门禁系统的使用方法\n" +
              " 1.模拟输入密码:以“pa”开头,后跟密码\n" +
              " 2.模拟刷卡:以“ca”开头,后跟卡号\n" +
              " 3.模拟取指纹:以“fi”开头,后跟表示指纹的字符串\n"+
              " 4.模拟管理员按下开门按钮:输入“y”");
        System.out.println("***************************************************");

        logger.info("门禁系统启动");
    }

    /**
     * 门禁系统工作:检查设备状态,调度设备和记录日志
     */
    public void work(){
        /* 检查输入设备的输入缓存 */
        if(inputEquip.getInput()!=null){
            if(inputEquip.getInput().equals("exit")){
                logger.info("门禁系统关闭");
                System.exit(0);
            }
            if(computer.validate(inputEquip.getInput())){
                door.open();                     // 开启电子门
                logger.info("<身份验证成功, "+inputEquip.getInput()+" 通过电子门>"); // 记录日志
                inputEquip.setInput(null);      // 清空输入设备缓存
            } else {
                logger.info("身份验证失败");     // 记录日志
            }
        }

        /* 检查开门信号 */
        if(this.getOpenSign()==1){
            door.open();                        // 开启电子门
            logger.info("管理员开启了电子门");   // 记录日志
            this.setOpenSign(0);               // 电子门开门信号归零
        }

        /* 电子门开启状态将维持5秒后关闭 */
        if(door.getState().equals(Door.OPEN)){
            try {
                Thread.sleep(5000);             // 让电子门开启状态维持5秒
            } catch (InterruptedException e) {
                logger.debug(e.getMessage());
            }
            door.close();                       // 关闭电子门
            logger.info("电子门关闭");          // 记录日志
        }
    }

    /**
     * @param ring 要设置的 ring
     */
    public void ring() {
        this.ring = 1;
    }
    
    /**
     * @return computer
     */
    public Computer getComputer() {
        return computer;
    }
    
    /**
     * @return door
     */
    public Door getDoor() {
        return door;
    }
    
    /**
     * @return inputEquip
     */
    public InputEquip getInputEquip() {
        return inputEquip;
    }
    
    /**
     * @return logger
     */
    public Logger getLogger() {
        return logger;
    }
    
    /**
     * @return ring
     */
    public int getRing() {
        return ring;
    }
    
    /**
     * @param ring 要设置的 ring
     */
    public void setRing(int ring) {
        this.ring = ring;
    }
    
    /**
     * @return openSign
     */
    public int getOpenSign() {
        return openSign;
    }
    
    /**
     * @param openSign 要设置的 openSign
     */
    public void setOpenSign(int openSign) {
        this.openSign = openSign;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -