java門禁系統(tǒng)面向?qū)ο蟪绦蛟O(shè)計(jì)
本文為大家分享了java門禁系統(tǒng)面向?qū)ο蟪绦蛟O(shè)計(jì),供大家參考,具體內(nèi)容如下
下面是對門禁系統(tǒng)的介紹:
需求
1、某公司安裝了電子門,要設(shè)計(jì)門禁系統(tǒng):
2、公司的雇員可以憑借密碼、胸卡或指紋進(jìn)入公司
3、計(jì)算機(jī)根據(jù)雇員的驗(yàn)證方式對其身份進(jìn)行驗(yàn)證
4、管理員在監(jiān)控室可以通過按鈕直接開啟電子門
5、訪客可以按門鈴請求進(jìn)入,由管理員為其放行
下面請看代碼
/** * 門禁系統(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() { /* 檢查開門信號 */ if(this.getOpenSign()==1){ System.out.println("開啟電子門"); logger.debug("~~~~~~~~~開啟電子門,請進(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("請快點(diǎn)進(jìn)入,電子門將延續(xù)5秒后關(guān)閉,"); logger.debug("~~~~親們~~~~~,請快點(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;// 開門信號,由管理員按下按鈕時(shí)產(chǎn)生,1為開啟信號 } 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)證正確,請進(jìn)"); logger.debug("---親----密碼驗(yàn)證正確,請進(jìn)哦?。。。。?-~"); } /*驗(yàn)證胸卡*/ else if (passStr.equals("ca12345")){ System.out.println("胸卡驗(yàn)證正確,請進(jìn)"); logger.debug("---親----胸卡驗(yàn)證正確,請進(jìn)哦?。。。?!--~"); } /*驗(yàn)證指紋*/ else if(passStr.equals("fa12345")) { System.out.println("指紋驗(yàn)證正確,請進(jìn)"); logger.debug("---親----指紋驗(yàn)證正確,請進(jìn)哦!?。。。?-~"); } else{ System.out.println("驗(yàn)證錯(cuò)誤,請重新輸入"); logger.debug("---sorry----驗(yàn)證錯(cuò)誤哦!?。。?!--~"); } } public String getInput() { return input; } public void setInput(String input) { this.input = input; } }
原代碼下載地址:java門禁系統(tǒng)
以上就是對代碼的簡單簡介,希望對大家的學(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)勢及特點(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消息國際化配置實(shí)現(xiàn)過程解析
這篇文章主要介紹了SpringBoot消息國際化配置實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07SpringBoot實(shí)現(xiàn)微信及QQ綁定登錄的示例代碼
本文主要介紹了SpringBoot實(shí)現(xiàn)微信及QQ綁定登錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07一次mybatis連接查詢遇到的坑實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了關(guān)于一次mybatis連接查詢遇到的坑的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12SpringSecurity定義多個(gè)過濾器鏈的操作代碼
Spring?Security?是?Spring家族中的一個(gè)安全管理框架。相比與另外一個(gè)安全框架Shiro,它提供了更豐富的功能,社區(qū)資源也比Shiro豐富,今天通過本文給大家介紹SpringSecurity定義多個(gè)過濾器鏈的實(shí)例,感興趣的朋友跟隨小編一起看看吧2023-04-04java實(shí)現(xiàn)電話本管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了JAVA實(shí)現(xiàn)電話本管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02Spring?Cloud?Gateway集成Sentinel流控詳情
這篇文章主要介紹了Spring?Cloud?Gateway集成Sentinel流控詳情,Sentinel支持對Spring?Cloud?Gateway、Zuul等主流的API?Gateway進(jìn)行限流,需要的朋友可以參考一下2022-09-09