java門(mén)禁系統(tǒng)面向?qū)ο蟪绦蛟O(shè)計(jì)
本文為大家分享了java門(mén)禁系統(tǒng)面向?qū)ο蟪绦蛟O(shè)計(jì),供大家參考,具體內(nèi)容如下
下面是對(duì)門(mén)禁系統(tǒng)的介紹:
需求
1、某公司安裝了電子門(mén),要設(shè)計(jì)門(mén)禁系統(tǒng):
2、公司的雇員可以憑借密碼、胸卡或指紋進(jìn)入公司
3、計(jì)算機(jī)根據(jù)雇員的驗(yàn)證方式對(duì)其身份進(jìn)行驗(yàn)證
4、管理員在監(jiān)控室可以通過(guò)按鈕直接開(kāi)啟電子門(mén)
5、訪客可以按門(mén)鈴請(qǐng)求進(jìn)入,由管理員為其放行
下面請(qǐng)看代碼
/**
* 門(mén)禁系統(tǒng)
*/
package Liu;
import java.util.*;
import org.apache.log4j.Logger;
import yazh.Admin;
public class Meji {
public Door door; // 門(mén)禁系統(tǒng)的電子門(mén)
public Input input; // 門(mén)禁系統(tǒng)的輸入設(shè)備
public int ring; // 門(mén)鈴,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)入門(mén)禁系統(tǒng)----------");
System.out.println("門(mén)禁系統(tǒng)的使用方法\n" +
".模擬管理員按下開(kāi)門(mén)按鈕:輸入“y”,按否是N");
System.out.println("***************************************************");
}
public void work() {
/* 檢查開(kāi)門(mén)信號(hào) */
if(this.getOpenSign()==1){
System.out.println("開(kāi)啟電子門(mén)");
logger.debug("~~~~~~~~~開(kāi)啟電子門(mén),請(qǐng)進(jìn)~~~~~~~" );
door.open(); // 開(kāi)啟電子門(mén)
}
if(this.getOpenSign()==0){
System.out.println("電子門(mén)關(guān)閉-------");
logger.debug("~~~~~~~~電子門(mén)關(guān)閉,勿進(jìn)~~~~~~~");
door.close(); // 關(guān)閉電子門(mén)
}
/* 電子門(mén)開(kāi)啟狀態(tài)將維持5秒后關(guān)閉 */
if(door.gettate().equals(Door.OPEN)){
try {
System.out.println("請(qǐng)快點(diǎn)進(jìn)入,電子門(mén)將延續(xù)5秒后關(guān)閉,");
logger.debug("~~~~親們~~~~~,請(qǐng)快點(diǎn)進(jìn)入哦,五秒后就關(guān)閉嘍!");
Thread.sleep(5000); // 讓電子門(mén)開(kāi)啟狀態(tài)維持5秒
} catch (InterruptedException e) {
return;
}
door.close();
System.out.println("電子門(mén)已關(guān)閉");// 關(guān)閉電子
logger.debug("~~~~~~~~電子門(mén)關(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;// 開(kāi)門(mén)信號(hào),由管理員按下按鈕時(shí)產(chǎn)生,1為開(kāi)啟信號(hào)
}
public Logger getLogger() {
// TODO Auto-generated method stub
return logger;//返回日志信息
}
}
/*
* 門(mén)禁系統(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門(mén)禁系統(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ì):類(lèi)的定義,靜態(tài)變量,成員變量,構(gòu)造函數(shù),封裝與私有,this概念與用法詳解
- Java面向?qū)ο蟪绦蛟O(shè)計(jì):繼承,多態(tài)用法實(shí)例分析
- Java面向?qū)ο蟪绦蛟O(shè)計(jì):抽象類(lèi),接口用法實(shí)例分析
- java程序設(shè)計(jì)語(yǔ)言的優(yōu)勢(shì)及特點(diǎn)
- Java網(wǎng)絡(luò)編程之TCP程序設(shè)計(jì)
- Java面向?qū)ο蟪绦蛟O(shè)計(jì)多態(tài)性示例
- Android中通過(guò)RxJava進(jìn)行響應(yīng)式程序設(shè)計(jì)的入門(mén)指南
- Java程序設(shè)計(jì)之12個(gè)經(jīng)典樣例
相關(guān)文章
Jvisualvm監(jiān)控遠(yuǎn)程SpringBoot項(xiàng)目的過(guò)程詳解
這篇文章主要介紹了Jvisualvm監(jiān)控遠(yuǎn)程SpringBoot項(xiàng)目,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
Java實(shí)戰(zhàn)項(xiàng)目 醫(yī)院預(yù)約掛號(hào)系統(tǒng)
本文是一個(gè)Java語(yǔ)言編寫(xiě)的實(shí)戰(zhàn)項(xiàng)目,是一個(gè)醫(yī)院預(yù)約掛號(hào)系統(tǒng),主要用到了jdbc+jsp+mysql+ajax等技術(shù),技術(shù)含量比較高,感興趣的童鞋跟著小編往下看吧2021-09-09
Netty分布式ByteBuf使用subPage級(jí)別內(nèi)存分配剖析
這篇文章主要為大家介紹了Netty分布式ByteBuf使用subPage級(jí)別內(nèi)存分配剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
itextpdf提取PDF文件中的任意頁(yè)碼實(shí)現(xiàn)示例
這篇文章主要為大家介紹了itextpdf提取PDF文件中的任意頁(yè)碼實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
JavaWeb基礎(chǔ)教程之Java基礎(chǔ)加強(qiáng)版
這篇文章主要介紹了JavaWeb基礎(chǔ)教程之Java基礎(chǔ)加強(qiáng)版的相關(guān)資料,需要的朋友可以參考下2016-07-07
Java異常的幾個(gè)謎題_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
本文給大家收藏整理java異常的幾個(gè)謎題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-06-06
Java反射機(jī)制如何解決數(shù)據(jù)傳值為空的問(wèn)題
這篇文章主要介紹了Java反射機(jī)制如何解決數(shù)據(jù)傳值為空的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03

