本文实例为大家分享了java实现门禁系统的具体代码,供大家参考,具体内容如下

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/getter

public 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 {

@Override

public 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秒后自动关闭---");

} else

System.out.println("验证失败");

}

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java门禁系统_java实现门禁系统相关推荐

  1. java开源b2b2c商城系统_java开源b2b2c商城系统有好用的吗?

    java语言是许多商家选择b2b2c商城系统都会考虑的语言之一,因为这种语言开发出来的商城系统会更加安全稳定.开源商城系统一般都以价格实惠受到商家欢迎,所以java开源商城系统也受到关注.那么java ...

  2. java 源码 股票_java+实时股票报价系统源代码+NeatBeans java的股票系统 - 下载 - 搜珍网...

    实时股票报价系统\.classpath 实时股票报价系统\.project 实时股票报价系统\bin\lab_06\MyUtil.class 实时股票报价系统\bin\lab_06\Stock.cla ...

  3. java网络文章博客抓取系统_java 后端博客系统文章系统——No3

    工具 IDE为idea16* JDK环境为1.8 gradle构建,版本:2.14.1 Mysql版本为5.5.27 Tomcat版本为7.0.52 流程图绘制(xmind) 建模分析软件PowerD ...

  4. java 门禁接口_java实现门禁系统

    本文实例为大家分享了java实现门禁系统的具体代码,供大家参考,具体内容如下 Door.java package com.handson.sys; public class Door { public ...

  5. java选课系统_java实现学生选课系统

    本文为大家分享了java实现学生选课系统的具体代码,供大家参考,具体内容如下 案例要求: 学生(学号,姓名,专业,所选课程{<3}) 老师(工号,姓名,所教课程{<3}) 课程(课程号,课 ...

  6. java io系统_java中的io系统详解

    Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 U ...

  7. java怎么获取当前日期_JAVA中获取当前系统时间

    一. 获取当前系统时间和日期并格式化输出: import java.util.Date; import java.text.SimpleDateFormat; public class NowStri ...

  8. java 当前时间格式_JAVA中获取当前系统时间及格式转换

    一. 获取当前系统时间和日期并格式化输出: import java.util.Date; import java.text.SimpleDateFormat; public class NowStri ...

  9. java win 窗体开发简单订餐系统_Java实现简单订餐系统

    本文实例为大家分享了Java实现简单订餐系统的具体代码,供大家参考,具体内容如下 import java.util.Scanner; import java.util.*; public class ...

最新文章

  1. 文化氛围对新人培养新人的影响
  2. Windows Server 2012正式版RDS系列②
  3. Cpp 11 / 线程库 / 可以做为线程的执行对象有哪些?
  4. 阿里云IoT戴高:IoT场景化的本质是打造数智空间
  5. 数据库面试题【十六、优化长难的查询语句】
  6. java求完数(完全数 完美数)
  7. matlab获得帮助的途径,在MATLAB 中获得帮助的途径 ()。A、帮助浏览器B、help 命令C、lookfor 命令D、模糊查询...
  8. HTML连载70-相片墙、盒子阴影和文字阴影
  9. 随想录(kernel的版本管理)
  10. php 二维数组根据键值合并二维数组_3分钟短文 | PHP 根据值移除数组元素,哪个方法最简单?...
  11. (转)jquery图片左右滚动
  12. mysql数据类型详解系列
  13. idea社区版使用maven运行web项目
  14. mysql数据库文件怎么用_mysql数据库文件怎么用
  15. python进程之间修改数据[Manager]与进程池[Pool]
  16. 免费将pdf文件转换成word
  17. 免杀Payload生成工具Veil的下载与使用
  18. vue实现店铺装修h5用户端实现
  19. cmd窗口的内容加上颜色
  20. jme示例代码中的素材在哪

热门文章

  1. Oracle 闪回(flashback)数据库到指定时间点
  2. 在线考试 题库 考试管理系统 培训源代码
  3. Sql 多重外键约束
  4. 【Excel2019(一):认识Excel】【Excel简介+Excel的基本概念及操作+简单小工具】
  5. 对比IRLS,OMP,MOMP,SP以及CoSaMP五种压缩感知算法的信号重构性能
  6. pycharm英文设置成中文
  7. Hanlp汉字转拼音使用python调用详解
  8. Thinkphp5.0.2Rce分析
  9. 可在线看的视频没有下载选项怎么办?别怕,“黑科技”帮你!
  10. 搭建微服务架构:Kubernetes Prometheus ELK Stack的组合