## 门禁系统的体会 ##
**我觉得在写门禁系统之前,一定要有一个清晰的思路,要明确自己下一步要做哪些工作,要干什么,这样的速度和效率是比较高的。在写程序时要有一个认真端正的态度,不急不燥,有困难,这不是写不下去的理由,有困难要主动解决,总有一种结果等着你,别浮躁,沉住气,作为一个当代的大学生而言,很多人都是浮躁,觉得自己什么都会,却什么也做不好,不如踏踏实实,一脚一个坑的去学习,去探索。相信努力终会有收获。**
下面是对门禁系统的介绍:
需求
1:某公司安装了电子门,要设计门禁系统::
2:公司的雇员可以凭借密码、胸卡或指纹进入公司
3:计算机根据雇员的验证方式对其身份进行验证 :
4:管理员在监控室可以通过按钮直接开启电子门:
5:访客可以按门铃请求进入,由管理员为其放行**
下面请看代码**
```
/**
* 门禁系统
*/
package Liu;
import java.util.*;
import org.apache.log4j.Logger;
import yazh.Admin;
public class Meji {
public Door door; // 门禁系统的电子门
public Input input; // 门禁系统的输入设备
public int ring; // 门铃,0为安静,1为鸣响
public int openSign=1;
private Logger logger; // 日志文件
public Meji(){
this.door = new Door();
this.input = new Input();
this.ring = 0;
this.openSign = 0;
this.logger = Logger.getLogger(Admin.class.getName());
logger.debug("--------------欢迎进入门禁系统----------");
System.out.println("门禁系统的使用方法\n" +
".模拟管理员按下开门按钮:输入“y”,按否是N");
System.out.println("***************************************************");
}
public void work() {
/* 检查开门信号 */
if(this.getOpenSign()==1){
System.out.println("开启电子门");
logger.debug("~~~~~~~~~开启电子门,请进~~~~~~~" );
door.open(); // 开启电子门
}
if(this.getOpenSign()==0){
System.out.println("电子门关闭-------");
logger.debug("~~~~~~~~电子门关闭,勿进~~~~~~~");
door.close(); // 关闭电子门
}
/* 电子门开启状态将维持5秒后关闭 */
if(door.gettate().equals(Door.OPEN)){
try {
System.out.println("请快点进入,电子门将延续5秒后关闭,");
logger.debug("~~~~亲们~~~~~,请快点进入哦,五秒后就关闭喽!");
Thread.sleep(5000); // 让电子门开启状态维持5秒
} catch (InterruptedException e) {
return;
}
door.close();
System.out.println("电子门已关闭");// 关闭电子
logger.debug("~~~~~~~~电子门关闭,勿进~~~~~~~");
}
}
/**
* @param ring 要设置的 ring
*/
public void ring() {
this.ring = 1;
}
/**
* @return door
*/
public Door getDoor() {
return door;
}
/**
* @return input
*/
public Input getinput() {
return input;
}
public int getRing() {
return ring;
}
/**
* @param ring 要设置的 ring
*/
public void setRing(int ring) {
this.ring = ring;
}
/**
* @return openSign
*/
public int getOpenSign() {
return this.openSign;
}
/**
* @param openSign 要设置的 openSign
*/
public void setOpenSign(int openSign) {
this.openSign = openSign;// 开门信号,由管理员按下按钮时产生,1为开启信号
}
public Logger getLogger() {
// TODO Auto-generated method stub
return logger;//返回日志信息
}
}
```
```
package test;
import java.util.Scanner;
import org.apache.log4j.Logger;
import yazh.Admin;
import yazh.Guyuan;
import Liu.Meji;
public class test {
private static Logger logger=Logger.getLogger(test.class.getName());
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.println("---------------------欢迎进入门禁系统---------------------------------------");
System.out.println("请选择你的身份(a 是管理员)(b 雇员)(c 访客)");
String sd=in.next();
if (sd.equals("a")){
Admin admin = new Admin("王哲"); // 管理员
Meji contr = new Meji(); // 门禁系
System.out.println("门禁系统---管理员测试");
System.out.println("***************************************************");
while(true){
admin.work(contr);
contr.work();
}
}
if(sd.equals("c")){
Guyuan guest = new Guyuan ("赵强"); // 访客员
Admin admin = new Admin("王石头"); // 管理员
Meji controlSys = new Meji(); // 门禁系统
System.out.println("门禁系统---访客测试");
System.out.println("***************************************************");
while(true){
guest.pressRing(controlSys);
admin.work(controlSys, guest);
controlSys.work();
}
}
if(sd.equals("b")){
Guyuan employee = new Guyuan("雇员张三丰"); // 雇员
Meji contr = new Meji(); // 门禁系统
System.out.println("门禁系统---雇员测试");
System.out.println(" 模拟输入密码:以“pa”开头,后跟密码12345\n");
System.out.println(" 模拟输入胸卡:以“ca”开头,后跟密码12345\n");
System.out.println(" 模拟输入指纹:以“fa”开头,后跟密码12345\n");
System.out.println("***************************************************");
Admin admin = new Admin("王哲");
while(true){
employee.input(contr);
admin.work(contr);
contr.work();
}
}
}
}
```
```
/*
* 门禁系统的输入设备
*/
package Liu;
import java.util.Scanner;
import org.apache.log4j.Logger;
import yazh.Admin;
public class Input {
private String input = null; //暂时保存密码
private Logger logger;
/**
* 输入设备接受认证信息
*/
public void input(){
this.logger = Logger.getLogger(Input.class.getName());
Scanner scanner = new Scanner(System.in);
System.out.println("身份验证:" );
String passStr = scanner.next();//密码验证
if(passStr.equals("pa12345")){
System.out.println("密码验证正确,请进");
logger.debug("---亲----密码验证正确,请进哦!!!!!--~");
}
/*验证胸卡*/
else if (passStr.equals("ca12345")){
System.out.println("胸卡验证正确,请进");
logger.debug("---亲----胸卡验证正确,请进哦!!!!!--~");
}
/*验证指纹*/
else if(passStr.equals("fa12345")) {
System.out.println("指纹验证正确,请进");
logger.debug("---亲----指纹验证正确,请进哦!!!!!--~");
}
else{
System.out.println("验证错误,请重新输入");
logger.debug("---sorry----验证错误哦!!!!!--~");
}
}
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
}
```
**原代码下载地址http://download.csdn.net/detail/zhupengqq/9560539
**以上就是对代码的简单简介,有什么问题和建议,或者想对需求的增加,请联系我,我们一块来解决。谢谢~~··**
``