某公司安装了电子门,要设计门禁系统。设计要求:(1) 公司的雇员可以凭借密码、卡号和指纹进入公司(2) 计算机根据雇员的验证方式对其身份进行验证(3) 管理员在监控室可以通过按钮直接开启电子门 (4) 访客可以按门铃请求进入,由管理员为其放行请利用Java语言规范化生成代码
时间: 2023-12-29 10:04:45 浏览: 64
以下是一个简单的门禁系统Java代码实现:
```java
// 定义一个Person类表示雇员或访客
class Person {
private String name;
private String password;
private String cardNumber;
private String fingerprint;
public Person(String name, String password, String cardNumber, String fingerprint) {
this.name = name;
this.password = password;
this.cardNumber = cardNumber;
this.fingerprint = fingerprint;
}
public String getName() {
return name;
}
public String getPassword() {
return password;
}
public String getCardNumber() {
return cardNumber;
}
public String getFingerprint() {
return fingerprint;
}
}
// 定义一个Door类表示电子门
class Door {
private boolean isOpen;
public Door() {
isOpen = false;
}
public boolean isOpen() {
return isOpen;
}
public void open() {
isOpen = true;
}
public void close() {
isOpen = false;
}
}
// 定义一个AccessControlSystem类表示门禁系统
class AccessControlSystem {
private List<Person> employees;
private Door door;
public AccessControlSystem() {
employees = new ArrayList<Person>();
door = new Door();
}
public void addEmployee(Person employee) {
employees.add(employee);
}
public boolean verifyPassword(String name, String password) {
for (Person employee : employees) {
if (employee.getName().equals(name) && employee.getPassword().equals(password)) {
return true;
}
}
return false;
}
public boolean verifyCardNumber(String name, String cardNumber) {
for (Person employee : employees) {
if (employee.getName().equals(name) && employee.getCardNumber().equals(cardNumber)) {
return true;
}
}
return false;
}
public boolean verifyFingerprint(String name, String fingerprint) {
for (Person employee : employees) {
if (employee.getName().equals(name) && employee.getFingerprint().equals(fingerprint)) {
return true;
}
}
return false;
}
public void openDoor() {
door.open();
}
public void closeDoor() {
door.close();
}
public boolean isDoorOpen() {
return door.isOpen();
}
}
// 定义一个管理员类表示管理员
class Admin {
private AccessControlSystem acs;
public Admin(AccessControlSystem acs) {
this.acs = acs;
}
public void openDoor() {
acs.openDoor();
}
public void closeDoor() {
acs.closeDoor();
}
}
// 定义一个Visitor类表示访客
class Visitor {
private String name;
public Visitor(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
// 定义一个Main类表示程序入口
public class Main {
public static void main(String[] args) {
// 创建门禁系统
AccessControlSystem acs = new AccessControlSystem();
// 添加雇员
acs.addEmployee(new Person("张三", "123456", "0001", "finger1"));
acs.addEmployee(new Person("李四", "654321", "0002", "finger2"));
// 创建管理员
Admin admin = new Admin(acs);
// 直接开启电子门
admin.openDoor();
// 雇员使用密码验证方式进入公司
if (acs.verifyPassword("张三", "123456")) {
System.out.println("张三进入公司");
admin.closeDoor();
}
// 雇员使用卡号验证方式进入公司
if (acs.verifyCardNumber("李四", "0002")) {
System.out.println("李四进入公司");
admin.closeDoor();
}
// 雇员使用指纹验证方式进入公司
if (acs.verifyFingerprint("张三", "finger1")) {
System.out.println("张三进入公司");
admin.closeDoor();
}
// 访客按门铃请求进入
Visitor visitor = new Visitor("王五");
System.out.println(visitor.getName() + "按门铃请求进入");
admin.openDoor();
System.out.println("管理员确认后," + visitor.getName() + "进入公司");
admin.closeDoor();
}
}
```
以上是一个简单的门禁系统Java代码实现,实际应用中可能需要更加完善的功能和安全性措施。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)