门禁系统

来源:互联网 发布:怎么登录阿里云邮箱 编辑:程序博客网 时间:2024/04/29 01:03
/*     * 烟台大学计算机学院学生        *All right reserved.        *文件名称:java      *作者:孔云        *完成日期:2014年12月3日        *版本号:v1.0        *对任务及求解方法的描述部分:综合运用。    *我的程序:     */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.Employee;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("1-管理员,2-工作人员,3-访客,4-退出");Scanner in =new Scanner(System.in);int num=in.nextInt();while(num!=4){switch(num){case 1:Admin admin=new Admin("管理员");Door door=new Door();admin.work(door);    break;case 2:Computer c=new Computer();Employee zhangsan=new Employee("张三");String input=zhangsan.input();door=new Door();boolean bn=c.validate(input);if(bn){   door.open();   System.out.println("门已开,请稍等");   System.out.println("请注意,5秒后门将自动关闭!");}else{System.out.println("输入信息错误");}break;case 3: door=new Door();   Guest guest=new Guest("张三");   guest.pressRing(door);  admin=new Admin("管理员");  bn= admin.work(door,guest);   if(bn==true){   try {Thread.sleep(5000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}   System.out.println("门已关");   door.close();   }break;    default:    System.out.println("输入有误");}System.out.println("1-管理员,2-工作人员,3-访客,4-退出");num=in.nextInt();}}}

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.FingerVId;import com.handson.validate.PasswordVId;import com.handson.validate.Validate;public class Computer {private String[]pwds=new String[100];private ArrayList cards=new ArrayList();private HashMap fingers=new HashMap();public Computer(){pwds[0]="pa1111";pwds[1]="pa2222";cards.add("ca3333");cards.add("ca4444");fingers.put(1, "fi5555");fingers.put(2, "fi6666");}public boolean validate(String inputMsg){boolean result=false;System.out.println("请输入验证方式:1-卡号,2-指纹,3-密码");Scanner in=new Scanner(System.in);int choose=in.nextInt();Validate vli;switch(choose){case 1:vli=new CardVId();result=vli.check(cards,inputMsg);break;case 2:vli=new FingerVId();result=vli.check(fingers, inputMsg);break;case 3:vli=new PasswordVId();result=vli.check(pwds,inputMsg);break;default:System.out.println("输入有误、、、");}return result;}}

package com.handson.sys;public class Door {final String OPEN="门已开启";final String CLOSE="门已关闭";private String state;private boolean bellstate;public Door(){}public Door(String state){this.state=state;}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;}public void open(){System.out.println(OPEN);}public void close(){System.out.println(CLOSE);}}

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);}public boolean work(Door door) {boolean flag = false;System.out.println("管理员" + this.getName() + "按门铃了吗?y/n");Scanner in = new Scanner(System.in);String input = in.nextLine();if (input.equalsIgnoreCase("y")) {System.out.println("管理员" + this.getName() + "已按下门铃。。。。");flag = true;door.open();} else {System.out.println("管理员拒绝开门!");}return flag;}public boolean work(Door door,Guest guest){boolean flag=false;if(door.isBellstate()){flag=work(door);door.setBellstate(false);}return flag;}}

package com.handson.user;import java.util.Scanner;public class Employee extends Guest{publicEmployee(){super();}public Employee(String name){super(name);}public String input(){System.out.println("请输入验证信息:");Scanner in=new Scanner(System.in);String input=in.nextLine();return input;}}

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 String getName() {return name;}public void setName(String name) {this.name = name;}public void pressRing(Door door) {System.out.println("访客" + this.getName() + "来访,按门铃了吗?y/n");Scanner scanner = new Scanner(System.in);String input = scanner.nextLine();if (input.equalsIgnoreCase("y")) {door.setBellstate(true);System.out.println("访客" + this.getName() + "已按门铃");}}}

package com.handson.validate;import java.util.ArrayList;public class CardVId implements Validate{public boolean check(Object obj,String inputMsg){boolean bn=false;ArrayList list=(ArrayList)obj;for(int i = 0;i<list.size();i++){if(list.get(i).equals(inputMsg)){bn=true;break;}}return bn;}}

package com.handson.validate;import java.util.ArrayList;import java.util.HashMap;public class FingerVId implements Validate{public boolean check(Object obj, String inputMsg) {// TODO Auto-generated method stubHashMap map=(HashMap)obj;boolean bn=false;for(int i=1;i<map.size();i++){if(map.get(i).equals(inputMsg)){bn=true;    break;}}return bn;}}

package com.handson.validate;public class PasswordVId implements Validate{public boolean check(Object obj, String inputMsg) {// TODO Auto-generated method stubString []src=(String[])obj;boolean bn=false;for(int i=0;i<src.length-1;i++){if(src[i]==null){break;}if(src[i].equals(inputMsg)){bn=true;    break;}}return bn;}}
package com.handson.validate;public interface Validate {boolean check(Object obj,String inputMsg);}

门禁系统的使用方法:
 1.模拟输入密码:以“pa”开头,后跟密码
 2.模拟刷卡:以“ca”开头,后跟卡号
 3.模拟取指纹:以“fi”开头,后跟表示指纹的字符串
 4.模拟管理员按下开门按钮:输入“y”
***************************************************
门禁系统启动
***************************************************
1-管理员,2-工作人员,3-访客,4-退出
1
管理员管理员按门铃了吗?y/n
y
管理员管理员已按下门铃。。。。
门已开启
1-管理员,2-工作人员,3-访客,4-退出
2
请输入验证信息:
ca1111
请输入验证方式:1-卡号,2-指纹,3-密码
1
输入信息错误
1-管理员,2-工作人员,3-访客,4-退出
4

奋斗有点小小的不如人意可怜
0 0
原创粉丝点击