java门禁系统_java项目:门禁系统

news/2025/3/4 18:33:37/

门禁系统

6c51dac700b9?from=singlemessage

门禁系统:包和文件划分

system包

Computer.java

package com.handson.sys;

import com.handson.validate.CardVld;

import com.handson.validate.FingerVld;

import com.handson.validate.PasswordVld;

import com.handson.validate.Validate;

public class Computer {

private String[] pwds = new String[100]; // 计算机存储的雇员密码,数字字符串

private String[] cards = new String[100]; // 计算机存储的雇员胸卡号,字符串形式

private String[] fingerMarks = new String[100]; // 计算机存储的雇员指纹,字符串形式

//无参构造方法,创建一组测试用密码、指纹、卡号

public Computer(){

pwds[0] = "2222";

cards[0] = "accp";

fingerMarks[0] = "accp";

}

//验证

public boolean validate(String inputMsg){

boolean bn = false;

Validate validate = null;

if (inputMsg.length()>2)

{

String prefix = inputMsg.substring(0, 2);

/*验证密码*/

if(prefix.equals("pa")){

validate = new PasswordVld();

bn = validate.check(pwds, inputMsg);

}

/*验证胸卡*/

else if(prefix.equals("ca")){

validate = new CardVld();

bn = validate.check(cards, inputMsg);

}

/*验证指纹*/

else if(prefix.equals("fi")) {

validate = new FingerVld();

bn = validate.check(fingerMarks,inputMsg);

}

}

return bn;

}

// //增加新胸卡

// public void addCards(String card) {

// for(int i=0;i<100;i++){

// if(this.cards[i]==null){

// this.cards[i] = card;

// return;

// }

// }

// }

//

// //增加新指纹

// public void addFingerMarks(String fingerMark) {

// for(int i=0;i<100;i++){

// if(this.fingerMarks[i]==null){

// this.fingerMarks[i] = fingerMark;

// return;

// }

// }

// }

//

// //增加新密码

// public void addPwds(int passWord) {

// for(int i=0;i<100;i++){

// if(this.pwds[i]==null){

// this.pwds[i] = passWord*2+"";

// return;

// }

// }

// }

//setter/getter

public String[] getCards() {

return cards;

}

public String[] getfingerMarks() {

return fingerMarks;

}

public String[] getPassWords() {

return pwds;

}

}

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;

}

}

validata包

CardVld.java

package com.handson.validate;

public class CardVld implements Validate {

// 重写验证方法-根据卡号验证

public boolean check(String[] srcContent, String inputMsg)

{

boolean bn = false;

for(int i=0; i

if (inputMsg.substring(2).equals(srcContent[i]) ) // 解析输入的密码

{

bn = true;

break;

}

}

return bn;

}

}

FingerVld.java

package com.handson.validate;

public class FingerVld implements Validate {

//重写验证方法-根据指纹验证

public boolean check(String[] srcContent, String inputMsg)

{

boolean bn = false;

for(int i=0; i

if (inputMsg.substring(2).equals(srcContent[i]) ) // 解析输入的密码

{

bn = true;

break;

}

}

return bn;

}

}

PasswordVld.java

package com.handson.validate;

public class PasswordVld implements Validate {

//重写验证方法-根据密码验证

public boolean check(String[] srcContent, String inputMsg)

{

boolean bn = false;

for(int i=0; i

if (inputMsg.substring(2).equals(srcContent[i]) ) // 解析输入的密码

{

bn = true;

break;

}

}

return bn;

}

}

Validate.java

package com.handson.validate;

public interface Validate {

public boolean check(String[] srcContent, String inputMsg);

}

user包

Admin.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.equals("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;

}

// //管理员的工作方法3,录入验证信息

// public void addUserInfo( String valType, String valStr) {

// if (valType.equals("pa")) {

// controlSys.getComputer().addPassWord(Integer.parseInt(valStr));

// controlSys.getLogger().debug(

// "管理员(" + this.getName() + ")录入新的密码验证信息");

// } else if (valType.equals("ca")) {

// controlSys.getComputer().addCard(valStr);

// controlSys.getLogger().debug(

// "管理员(" + this.getName() + ")录入新的胸卡验证信息");

// } else if (valType.equals("fi")) {

// controlSys.getComputer().addFingerMark(valStr);

// controlSys.getLogger().debug(

// "管理员(" + this.getName() + ")录入新的指纹验证信息");

// } else {

// controlSys.getLogger().debug("验证信息录入失败");

// }

// }

}

Employee.java

package com.handson.user;

import java.util.Scanner;

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;

//controSys.getInputEquip().input();

}

}

Guest.java

package com.handson.user;

import java.util.Scanner;

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;

//controSys.getInputEquip().input();

}

}

Test包

AdminTest.java

package com.handson.test;

import com.handson.sys.Door;

import com.handson.user.Admin;

public class AdminTest {

/**

* @param args

*/

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("***************************************************");

Admin admin = new Admin("王石头");

Door door = new Door();

while(true){

boolean bn = admin.work(door); //通过控制室的按钮开启电子门

/* 检查开门信号(检查电子门,开) */

if(bn){

door.open(); // 开启电子门

System.out.println("-------^_^管理员 " + admin.getName() + " 开启了电子门");

}

/* 电子门开启状态将维持5秒后关闭 */

if(door.getState().equals(Door.OPEN)){

try {

Thread.sleep(5000); // 让电子门开启状态维持5秒

} catch (InterruptedException e) {

System.out.println(e.getMessage());

}

door.close(); // 关闭电子门

System.out.println("---电子门5秒后自动关闭---");

}

}

}

}

EmployeeTest.java

package com.handson.test;

import com.handson.sys.Computer;

import com.handson.sys.Door;

import com.handson.user.Employee;

public class EmployeeTest {

//main方法

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("***************************************************");

Employee emp = new Employee("员工张三丰");

Computer computer = new Computer();

Door door = new Door();

while(true){

String inputMsg = emp.input();//员工输入身份验证

boolean bn = computer.validate(inputMsg);//根据输入的内容,验证身份

if (bn) //验证通过

{

door.open();

System.out.println("");

if (door.getState().equals(Door.OPEN))

{

try {

Thread.sleep(5000); // 让电子门开启状态维持5秒

} catch (InterruptedException e) {

System.out.println(e.getMessage());

}

door.close(); // 关闭电子门

System.out.println("---电子门5秒后自动关闭---");

}

} else { //验证没通过

System.out.println("-^-^-^-^-^-身份验证失败!");

}

}

}

}

GuestTest.java

package com.handson.test;

import com.handson.sys.Door;

import com.handson.user.Admin;

import com.handson.user.Guest;

public class GuestTest {

/**

* @param args

*/

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("***************************************************");

Guest guest = new Guest("赵强");

Admin admin = new Admin("王石头");

Door door = new Door();

while(true){

guest.pressRing(door); //按门铃

boolean bn = admin.work(door, guest); //管理员监听门铃

/* 检查开门信号(监听门铃,响) */

if(bn){

door.open(); // 开启电子门

System.out.println("-------^_^管理员 " + admin.getName() + " 开启了电子门");

}

/* 电子门开启状态将维持5秒后关闭 */

if(door.getState().equals(Door.OPEN)){

try {

Thread.sleep(5000); // 让电子门开启状态维持5秒

} catch (InterruptedException e) {

System.out.println(e.getMessage());

}

door.close(); // 关闭电子门

System.out.println("---电子门5秒后自动关闭---");

}

}

}

}


http://www.ppmy.cn/news/362346.html

相关文章

java门禁系统_java实现门禁系统

本文实例为大家分享了java实现门禁系统的具体代码,供大家参考,具体内容如下 Door.java package com.handson.sys; public class Door {public final static String OPEN = "门已开启"; public final static String CLOSE = "门已关闭"; private String s…

门禁系统设计方案

一、 系统概述 为了更好的监控和控制营房里的每一个箱子里的锁&#xff0c;系统采用了计算机来监控和控制每一把锁。这样可以随时动态的监控和管理每一把锁。用户可以通过锁卡来开锁&#xff0c;系统在开锁的时候可以记录一些开锁的记录。系统的基本功能&#xff0c;开…

毕设-基于STM32刷卡、指纹的门禁系统(进阶版-指纹模块的驱动)

目录 简介模块介绍引脚介绍 指令驱动方式代码编写串口初始化串口发送数据发送指令删除flash库中指定ID号开始的N个数据录取指纹图像生成特征 存储在缓冲区1中生成特征 存储在缓冲区2中合并指纹特征将buffer1和buffer2中的模板文件存储到指定的地址中搜索指纹 接受数据验证是否删…

看chatGPT如何回答opencv用于图像缩放resize中的inter_area

中文介绍opencv的inter_area ChatGPT OpenCV中的inter_area是指图像缩放时使用的插值方法之一。在图像缩放过程中&#xff0c;inter_area插值方法通过对图像进行平均采样来减小图像的尺寸&#xff0c;即在目标图像中每个像素的值由源图像中对应区域像素的平均值来确定。这种插…

gaussian理论化学计算初级进阶高阶文献解读

c 一、理论计算化学理论及相关程序入门 1理论计算化学简介1.1理论计算化学概述 1.2HF理论及后HF方法(高精度量化方法) 1.3密度泛函理论和方法 1.4不同理论计算方法的优缺点及初步选择 1.5基组及如何初步选择基组 2Gaussian安装及GaussView安装及基本操作 2.1Gaussian安装及设置…

Python3数据分析与挖掘建模(11)多因子:复合分析-分组分析与实现示例

1. 分组分析 1.1 概述 分组与钻取是数据分析中常用的技术&#xff0c;用于对数据进行聚合和细分分析。它可以帮助我们从整体数据中获取特定维度的汇总信息&#xff0c;并进一步钻取到更详细的子集数据中进行深入分析。 分组&#xff08;Grouping&#xff09;是指根据某个或多…

数学之美-隐马尔科夫模型

雅各布森的通信6要素&#xff1a; 发送者&#xff08;信息源&#xff09;、信道、接受者、信息、上下文、编码 其中&#xff1a;s1、s2....表示信息源发出的信号&#xff0c;比如手机发送的信号 o1、o2...是接收器接收到的信号。通信中的解码就是根据接收到的信号o1、o2....还…

国外摄影网站

一、摄影公司Companies 1. 尼康公司美国主页&#xff1a;http://www.nikonusa.com/default.htm 2. 佳能照相机博物馆&#xff1a;http://www.canon.co.jp/camera-museum/index2.html 3. 美能达澳大利亚公司&#xff1a;http://www.minoltacamera.com.au/ 4. 美能达美国公司&…