java門禁系統(tǒng)面向?qū)ο蟪绦蛟O(shè)計(jì)
本文為大家分享了java門禁系統(tǒng)面向?qū)ο蟪绦蛟O(shè)計(jì),供大家參考,具體內(nèi)容如下
下面是對(duì)門禁系統(tǒng)的介紹:
需求
1、某公司安裝了電子門,要設(shè)計(jì)門禁系統(tǒng):
2、公司的雇員可以憑借密碼、胸卡或指紋進(jìn)入公司
3、計(jì)算機(jī)根據(jù)雇員的驗(yàn)證方式對(duì)其身份進(jìn)行驗(yàn)證
4、管理員在監(jiān)控室可以通過按鈕直接開啟電子門
5、訪客可以按門鈴請(qǐng)求進(jìn)入,由管理員為其放行
下面請(qǐng)看代碼
/**
* 門禁系統(tǒng)
*/
package Liu;
import java.util.*;
import org.apache.log4j.Logger;
import yazh.Admin;
public class Meji {
public Door door; // 門禁系統(tǒng)的電子門
public Input input; // 門禁系統(tǒng)的輸入設(shè)備
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("--------------歡迎進(jìn)入門禁系統(tǒng)----------");
System.out.println("門禁系統(tǒng)的使用方法\n" +
".模擬管理員按下開門按鈕:輸入“y”,按否是N");
System.out.println("***************************************************");
}
public void work() {
/* 檢查開門信號(hào) */
if(this.getOpenSign()==1){
System.out.println("開啟電子門");
logger.debug("~~~~~~~~~開啟電子門,請(qǐng)進(jìn)~~~~~~~" );
door.open(); // 開啟電子門
}
if(this.getOpenSign()==0){
System.out.println("電子門關(guān)閉-------");
logger.debug("~~~~~~~~電子門關(guān)閉,勿進(jìn)~~~~~~~");
door.close(); // 關(guān)閉電子門
}
/* 電子門開啟狀態(tài)將維持5秒后關(guān)閉 */
if(door.gettate().equals(Door.OPEN)){
try {
System.out.println("請(qǐng)快點(diǎn)進(jìn)入,電子門將延續(xù)5秒后關(guān)閉,");
logger.debug("~~~~親們~~~~~,請(qǐng)快點(diǎn)進(jìn)入哦,五秒后就關(guān)閉嘍!");
Thread.sleep(5000); // 讓電子門開啟狀態(tài)維持5秒
} catch (InterruptedException e) {
return;
}
door.close();
System.out.println("電子門已關(guān)閉");// 關(guān)閉電子
logger.debug("~~~~~~~~電子門關(guān)閉,勿進(jìn)~~~~~~~");
}
}
/**
* @param ring 要設(shè)置的 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 要設(shè)置的 ring
*/
public void setRing(int ring) {
this.ring = ring;
}
/**
* @return openSign
*/
public int getOpenSign() {
return this.openSign;
}
/**
* @param openSign 要設(shè)置的 openSign
*/
public void setOpenSign(int openSign) {
this.openSign = openSign;// 開門信號(hào),由管理員按下按鈕時(shí)產(chǎn)生,1為開啟信號(hào)
}
public Logger getLogger() {
// TODO Auto-generated method stub
return logger;//返回日志信息
}
}
/*
* 門禁系統(tǒng)的輸入設(shè)備
*/
package Liu;
import java.util.Scanner;
import org.apache.log4j.Logger;
import yazh.Admin;
public class Input {
private String input = null; //暫時(shí)保存密碼
private Logger logger;
/**
* 輸入設(shè)備接受認(rèn)證信息
*/
public void input(){
this.logger = Logger.getLogger(Input.class.getName());
Scanner scanner = new Scanner(System.in);
System.out.println("身份驗(yàn)證:" );
String passStr = scanner.next();//密碼驗(yàn)證
if(passStr.equals("pa12345")){
System.out.println("密碼驗(yàn)證正確,請(qǐng)進(jìn)");
logger.debug("---親----密碼驗(yàn)證正確,請(qǐng)進(jìn)哦?。。。?!--~");
}
/*驗(yàn)證胸卡*/
else if (passStr.equals("ca12345")){
System.out.println("胸卡驗(yàn)證正確,請(qǐng)進(jìn)");
logger.debug("---親----胸卡驗(yàn)證正確,請(qǐng)進(jìn)哦?。。。?!--~");
}
/*驗(yàn)證指紋*/
else if(passStr.equals("fa12345")) {
System.out.println("指紋驗(yàn)證正確,請(qǐng)進(jìn)");
logger.debug("---親----指紋驗(yàn)證正確,請(qǐng)進(jìn)哦?。。。?!--~");
}
else{
System.out.println("驗(yàn)證錯(cuò)誤,請(qǐng)重新輸入");
logger.debug("---sorry----驗(yàn)證錯(cuò)誤哦?。。。?!--~");
}
}
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
}
原代碼下載地址:java門禁系統(tǒng)
以上就是對(duì)代碼的簡(jiǎn)單簡(jiǎn)介,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java 程序設(shè)計(jì)總復(fù)習(xí)題(java基礎(chǔ)代碼)
- Java Swing程序設(shè)計(jì)實(shí)戰(zhàn)
- Java面向?qū)ο蟪绦蛟O(shè)計(jì):類的定義,靜態(tài)變量,成員變量,構(gòu)造函數(shù),封裝與私有,this概念與用法詳解
- Java面向?qū)ο蟪绦蛟O(shè)計(jì):繼承,多態(tài)用法實(shí)例分析
- Java面向?qū)ο蟪绦蛟O(shè)計(jì):抽象類,接口用法實(shí)例分析
- java程序設(shè)計(jì)語言的優(yōu)勢(shì)及特點(diǎn)
- Java網(wǎng)絡(luò)編程之TCP程序設(shè)計(jì)
- Java面向?qū)ο蟪绦蛟O(shè)計(jì)多態(tài)性示例
- Android中通過RxJava進(jìn)行響應(yīng)式程序設(shè)計(jì)的入門指南
- Java程序設(shè)計(jì)之12個(gè)經(jīng)典樣例
相關(guān)文章
SpringBoot消息國(guó)際化配置實(shí)現(xiàn)過程解析
這篇文章主要介紹了SpringBoot消息國(guó)際化配置實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
SpringBoot實(shí)現(xiàn)微信及QQ綁定登錄的示例代碼
本文主要介紹了SpringBoot實(shí)現(xiàn)微信及QQ綁定登錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
一次mybatis連接查詢遇到的坑實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了關(guān)于一次mybatis連接查詢遇到的坑的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
SpringSecurity定義多個(gè)過濾器鏈的操作代碼
Spring?Security?是?Spring家族中的一個(gè)安全管理框架。相比與另外一個(gè)安全框架Shiro,它提供了更豐富的功能,社區(qū)資源也比Shiro豐富,今天通過本文給大家介紹SpringSecurity定義多個(gè)過濾器鏈的實(shí)例,感興趣的朋友跟隨小編一起看看吧2023-04-04
java實(shí)現(xiàn)電話本管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了JAVA實(shí)現(xiàn)電話本管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
Spring?Cloud?Gateway集成Sentinel流控詳情
這篇文章主要介紹了Spring?Cloud?Gateway集成Sentinel流控詳情,Sentinel支持對(duì)Spring?Cloud?Gateway、Zuul等主流的API?Gateway進(jìn)行限流,需要的朋友可以參考一下2022-09-09

