java实现门禁系统
本文实例为大家分享了java实现门禁系统的具体代码,供大家参考,具体内容如下
Door.java
packagecom.handson.sys;
publicclassDoor{
publicfinalstaticStringOPEN="门已开启";
publicfinalstaticStringCLOSE="门已关闭";
privateStringstate=CLOSE;//电子门状态
privatebooleanbellState=false;//门铃状态
//构造方法
publicDoor(){
this.setState(CLOSE);
}
//开启电子门
publicvoidopen(){
this.setState(OPEN);
}
//关闭电子门
publicvoidclose(){
this.setState(CLOSE);
}
//setter/getter
publicStringgetState(){
returnstate;
}
publicvoidsetState(Stringstate){
this.state=state;
}
publicbooleanisBellState(){
returnbellState;
}
publicvoidsetBellState(booleanbellState){
this.bellState=bellState;
}
}
Computer.java
packagecom.handson.sys;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.Scanner;
importcom.handson.validate.CardVId;
importcom.handson.validate.FingVId;
importcom.handson.validate.PassWordVId;
importcom.handson.validate.Validate;
publicclassComputer{
HashMapCard=newHashMap();
ArrayListFing=newArrayList();
String[]Pass=newString[10];
publicComputer(){
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]="";
}
publicbooleanvalidate(StringimputMsg){
booleanban=false;
Scannerin=newScanner(System.in);
System.out.println("请选择验证方式:1-卡号2-指纹3-密码");
intn=in.nextInt();
Validateval;
switch(n){
case1:
val=newCardVId();
ban=val.check(Card,imputMsg);
break;
case2:
val=newFingVId();
ban=val.check(Fing,imputMsg);
break;
case3:
val=newPassWordVId();
ban=val.check(Pass,imputMsg);
break;
default:
System.out.println("选择错误!");
}
returnban;
}
}
Amind.java
packagecom.handson.user;
importjava.util.Scanner;
importcom.handson.sys.Door;
publicclassAdminextendsEmployee{
//构造方法
publicAdmin(){
super();
}
publicAdmin(Stringname){
super(name);
}
//管理员的工作方法1,通过控制室的按钮,开启电子门
publicbooleanwork(Doordoor){
booleanbn=false;
Scannerscanner=newScanner(System.in);
System.out.print("管理员("+this.getName()+")按开门按钮?[y/n]:");
Stringbtn=scanner.nextLine();
if(btn.equalsIgnoreCase("y")){
System.out.println("管理员("+this.getName()+")按下开门按钮");
bn=true;
}else{
System.out.println("---管理员("+this.getName()+")拒绝开门");
}
returnbn;
}
//管理员的工作方法2,监听门铃
publicbooleanwork(Doordoor,Guestguest){
booleanbn=false;
if(door.isBellState()){//门铃响
bn=this.work(door);
door.setBellState(false);
}
returnbn;
}
}
Employee.java
packagecom.handson.user;
importjava.util.Scanner;
importcom.handson.sys.Door;
publicclassEmployeeextendsGuest{
//构造方法
publicEmployee(){
super();
}
publicEmployee(Stringname){
super(name);
}
//输入身份信息
publicStringinput(){
Scannerscanner=newScanner(System.in);
System.out.print("身份验证:");
StringpassStr=scanner.nextLine();
returnpassStr;
}
}
Guest.java
packagecom.handson.user;
importjava.util.Scanner;
importcom.handson.sys.Door;
publicclassGuest{
privateStringname;//姓名
//构造方法
publicGuest(){
}
publicGuest(Stringname){
this.name=name;
}
//访客按门铃
publicvoidpressRing(Doordoor){
Scannerscanner=newScanner(System.in);
System.out.print("访客("+this.getName()+")按门铃?[y/n]:");
Stringbtn=scanner.nextLine();
if(btn.equals("y")){
door.setBellState(true);//门铃响起
System.out.println("访客("+this.getName()+")按下门铃");
}elseif(btn.equals("n")){
return;
}
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
}
Validate.java
packagecom.handson.validate;
publicinterfaceValidate{
publicabstractbooleancheck(Objectob,StringinputMsg);
}
CardVId.java
packagecom.handson.validate;
importjava.util.HashMap;
publicclassCardVIdimplementsValidate{
publicbooleancheck(Objectob,StringinputMsg){
booleanban=false;
HashMapsrContent=(HashMap)ob;
for(inti=0;i
FingVId.java
packagecom.handson.validate;
importjava.util.ArrayList;
publicclassFingVIdimplementsValidate{
publicbooleancheck(Objectob,StringinputMsg){
booleanban=false;
ArrayListsrContent=(ArrayList)ob;
for(inti=0;i
PasswordVId.java
packagecom.handson.validate;
publicclassPassWordVIdimplementsValidate{
@Override
publicbooleancheck(Objectob,StringinputMsg){
booleanban=false;
String[]srContent=(String[])ob;
for(inti=0;i
Test.java
packagecom.handson.test;
importjava.util.Scanner;
importcom.handson.sys.Computer;
importcom.handson.sys.Door;
importcom.handson.user.Admin;
importcom.handson.user.Guest;
publicclassTest{
publicstaticvoidmain(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("***************************************************");
Scannerin=newScanner(System.in);
Doordoor=newDoor();
booleanban=true;
booleanbn=false;
Computercoputer=newComputer();
Adminadmin=newAdmin("王石头");
while(ban){
System.out.println("请选择扮演的角色:1.来客2.管理员3.员工其它:结束");
Stringn=in.next();
switch(Integer.parseInt(n)){
case1:
Guestguest=newGuest("赵强");
guest.pressRing(door);//按门铃
bn=admin.work(door,guest);//管理员监听门铃
/*检查开门信号(监听门铃,响)*/
break;
case2:
case3:
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(InterruptedExceptione){
System.out.println(e.getMessage());
}
door.close();//关闭电子门
System.out.println("---电子门5秒后自动关闭---");
}else
System.out.println("验证失败");
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。