/*
* 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;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
javaoop阶段项目
共39个文件
java:16个
class:16个
properties:2个
4星 · 超过85%的资源 需积分: 10 10 下载量 165 浏览量
2010-04-19
17:06:30
上传
评论
收藏 354KB RAR 举报
温馨提示
javaoop javaoop阶段项目 javaoop阶段项目 javaoop阶段项目
资源推荐
资源详情
资源评论
收起资源包目录
JavaOOP阶段项目.rar (39个子文件)
新建文件夹
s2javaoo_XMAL
.project 389B
bin
s2javaoo
xmal
test
AdminTest.class 958B
InputEquitTest.class 929B
EmployeeTest.class 990B
GuestTest.class 1KB
user
Guest.class 2KB
Admin.class 3KB
Employee.class 743B
validate
GenericValidate.class 1KB
PassWordVld.class 2KB
FingerMarkVld.class 1KB
Validate.class 142B
CardVld.class 1KB
sys
Door.class 808B
Computer.class 2KB
ControlSys.class 3KB
InputEquip.class 977B
log4j.properties 547B
.settings
org.eclipse.jdt.ui.prefs 6KB
src
s2javaoo
xmal
test
EmployeeTest.java 627B
GuestTest.java 759B
AdminTest.java 608B
InputEquitTest.java 568B
user
Employee.java 418B
Guest.java 904B
Admin.java 2KB
validate
GenericValidate.java 1KB
PassWordVld.java 1KB
CardVld.java 1021B
Validate.java 191B
FingerMarkVld.java 1KB
sys
ControlSys.java 4KB
Computer.java 2KB
InputEquip.java 780B
Door.java 805B
log4j.properties 547B
.classpath 297B
accp.log 17KB
log4j-1.2.14.jar 359KB
共 39 条
- 1
资源评论
- cw898091732012-10-16很适合初学者
tantingqinglp
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功