JAVA门禁系统
来源:互联网 发布:mac系统卡了怎么办 编辑:程序博客网 时间:2024/04/30 14:59
Door.java
package com.handson.sys;public class Door {public final static String OPEN = "门已开启";public final static String CLOSE = "门已关闭";private String state = CLOSE; // 电子门状态private boolean bellState = false; // 门铃状态// 构造方法public Door() {this.setState(CLOSE);}// 开启电子门public void open() {this.setState(OPEN);}// 关闭电子门public void close() {this.setState(CLOSE);}// setter/getterpublic String getState() {return state;}public void setState(String state) {this.state = state;}public boolean isBellState() {return bellState;}public void setBellState(boolean bellState) {this.bellState = bellState;}}
Computer.java
package com.handson.sys;import java.util.ArrayList;import java.util.HashMap;import java.util.Scanner;import com.handson.validate.CardVId;import com.handson.validate.FingVId;import com.handson.validate.PassWordVId;import com.handson.validate.Validate;public class Computer {HashMap Card = new HashMap();ArrayList Fing = new ArrayList();String[] Pass = new String[10];public Computer() {Card.put(0, "car000");Card.put(1, "car001");Card.put(2, "car002");Fing.add("fing000");Fing.add("fing001");Fing.add("fing002");Pass[0] = "pas000";Pass[1] = "pas001";Pass[2] = "pas002";Pass[3] = "";}public boolean validate(String imputMsg) {boolean ban = false;Scanner in = new Scanner(System.in);System.out.println("请选择验证方式:1-卡号 2-指纹 3-密码");int n = in.nextInt();Validate val;switch (n) {case 1:val = new CardVId();ban = val.check(Card, imputMsg);break;case 2:val = new FingVId();ban = val.check(Fing, imputMsg);break;case 3:val = new PassWordVId();ban = val.check(Pass, imputMsg);break;default:System.out.println("选择错误!");}return ban;}}
Amind.java
package com.handson.user;import java.util.Scanner;import com.handson.sys.Door;public class Admin extends Employee {// 构造方法public Admin() {super();}public Admin(String name) {super(name);}// 管理员的工作方法1,通过控制室的按钮,开启电子门public boolean work(Door door) {boolean bn = false;Scanner scanner = new Scanner(System.in);System.out.print("管理员(" + this.getName() + ")按开门按钮?[y/n]:");String btn = scanner.nextLine();if (btn.equalsIgnoreCase("y")) {System.out.println("管理员(" + this.getName() + ")按下开门按钮");bn = true;} else {System.out.println("---管理员(" + this.getName() + ")拒绝开门");}return bn;}// 管理员的工作方法2,监听门铃public boolean work(Door door, Guest guest) {boolean bn = false;if (door.isBellState()) { // 门铃响bn = this.work(door);door.setBellState(false);}return bn;}}
Employee.java
package com.handson.user;import java.util.Scanner;import com.handson.sys.Door;public class Employee extends Guest {//构造方法public Employee() { super(); } public Employee(String name) { super(name); } //输入身份信息 public String input() { Scanner scanner = new Scanner(System.in); System.out.print("身份验证:" ); String passStr = scanner.nextLine(); return passStr; }}
Guest.java
package com.handson.user;import java.util.Scanner;import com.handson.sys.Door;public class Guest {private String name; // 姓名// 构造方法public Guest() {}public Guest(String name) {this.name = name;}// 访客按门铃public void pressRing(Door door) {Scanner scanner = new Scanner(System.in);System.out.print("访客(" + this.getName() + ")按门铃?[y/n]:");String btn = scanner.nextLine();if (btn.equals("y")) {door.setBellState(true); // 门铃响起System.out.println("访客(" + this.getName() + ")按下门铃");} else if (btn.equals("n")) {return;}}public String getName() {return name;}public void setName(String name) {this.name = name;}}
Validate.java
package com.handson.validate;public interface Validate {public abstract boolean check(Object ob, String inputMsg);}
CardVId.java
package com.handson.validate;import java.util.HashMap;public class CardVId implements Validate {public boolean check(Object ob, String inputMsg) {boolean ban = false;HashMap srContent = (HashMap) ob;for (int i = 0; i < srContent.size(); i++) {if (srContent.get(i).equals(inputMsg)) {ban = true;break;}}return ban;}}
FingVId.java
package com.handson.validate;import java.util.ArrayList;public class FingVId implements Validate {public boolean check(Object ob, String inputMsg) {boolean ban = false;ArrayList srContent = (ArrayList) ob;for (int i = 0; i < srContent.size(); i++) {if (srContent.get(i).equals(inputMsg)) {ban = true;break;}}return ban;}}
PasswordVId.java
package com.handson.validate;public class PassWordVId implements Validate {@Overridepublic boolean check(Object ob, String inputMsg) {boolean ban = false;String[] srContent = (String[]) ob;for (int i = 0; i < srContent.length; i++) {if (srContent[i].equals("")) {break;} else {if (srContent[i].equals(inputMsg))ban = true;}}return ban;}}
Test.java
package com.handson.test;import java.util.Scanner;import com.handson.sys.Computer;import com.handson.sys.Door;import com.handson.user.Admin;import com.handson.user.Guest;public class Test {public static void main(String[] args) {System.out.println("门禁系统的使用方法\n" + " 1.模拟输入密码:以“pa”开头,后跟密码\n"+ " 2.模拟刷卡:以“ca”开头,后跟卡号\n" + " 3.模拟取指纹:以“fi”开头,后跟表示指纹的字符串\n"+ " 4.模拟管理员按下开门按钮:输入“y”");System.out.println("***************************************************");System.out.println("门禁系统启动");System.out.println("门禁系统---访客测试");System.out.println("***************************************************");Scanner in = new Scanner(System.in);Door door = new Door();boolean ban = true;boolean bn = false;Computer coputer = new Computer();Admin admin = new Admin("王石头");while (ban) {System.out.println("请选择扮演的角色:1.来客 2.管理员 3.员工 其它:结束");String n = in.next();switch (Integer.parseInt(n)) {case 1:Guest guest = new Guest("赵强");guest.pressRing(door); // 按门铃bn = admin.work(door, guest); // 管理员监听门铃/* 检查开门信号(监听门铃,响) */break;case 2:case 3:System.out.println("请输入验证信息:");bn = coputer.validate(in.next());break;default:ban = false;}if (bn) {door.open(); // 开启电子门System.out.println("-------^_^管理员 " + admin.getName()+ " 开启了电子门");/* 电子门开启状态将维持5秒后关闭 */try {Thread.sleep(5000); // 让电子门开启状态维持5秒} catch (InterruptedException e) {System.out.println(e.getMessage());}door.close(); // 关闭电子门System.out.println("---电子门5秒后自动关闭---");} elseSystem.out.println("验证失败");}}}
1 0
- JAVA门禁系统
- (JAVA)门禁系统
- 门禁系统
- 门禁系统
- 门禁系统
- 门禁系统
- 门禁系统
- 门禁系统
- 门禁系统
- 门禁系统
- 门禁系统
- 门禁系统
- 门禁系统
- 门禁系统
- 门禁系统
- java门禁系统面向对象程序设计
- java门禁系统面向对象程序设计
- CCF之门禁系统(java)
- Native APP(原生应用)、Web App(Web应用)、Hybrid App(混合应用) 优缺点分析
- Qt中绘制蚂蚁线
- esayui 自定义窗口按钮
- PHP5 session 详解【经典】
- 相关分析、画图
- JAVA门禁系统
- 几种常用的设计模式
- UIView的layoutSubviews和drawRect方法何时调用
- 如何使用iOS AddressBook
- php下载文件函数
- 我对单片机的理解
- android 中 ArrayList 、LinkList、List 区别
- 字符串截取的常用代码
- Web Services到底是什么