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;iFingVId.java
packagecom.handson.validate; importjava.util.ArrayList; publicclassFingVIdimplementsValidate{ publicbooleancheck(Objectob,StringinputMsg){ booleanban=false; ArrayListsrContent=(ArrayList)ob; for(inti=0;iPasswordVId.java
packagecom.handson.validate; publicclassPassWordVIdimplementsValidate{ @Override publicbooleancheck(Objectob,StringinputMsg){ booleanban=false; String[]srContent=(String[])ob; for(inti=0;iTest.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("验证失败"); } } }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。