《大型公司门禁系统.ppt》由会员分享,可在线阅读,更多相关《大型公司门禁系统.ppt(20页珍藏版)》请在三一办公上搜索。
1、门禁系统的面向对象设计项目答辩,制作者:李伟,目的:,为某公司安装了电子门,而设计的门禁系统,开发工具,MyEclipse7.0,实现功能:,公司的雇员可以凭借密码、胸卡、指纹进入公司计算机根据雇员的输入方式对其身份进行验证管理员在监控室可以直接开启电子门访客按门铃请求进入,由管理 员为其放行管理员可以为新雇员设置密码,其它的适用场合:,如学校的电子门门禁系统等需求验证才能进入的电子门,适用对象:,管理员开启电子门雇员通过验证进入访客向管理员请求进入,应用对象(类):,门禁系统包括:电子门、计算机、输入设备门禁系统使用者包括:管理员、雇员、访客验证身份有3种方法:密码验证、胸卡验证、指纹验证,
2、对象关系:,管理员,雇员,访客,验证接口,默认实现,指纹识别,密码验证,胸卡验证,extends,门禁系统包含:电子门、输入设备、计算机,implements,extends,extends,extends,门禁系统工作分3步:,如果有输入且输入信息存在,开启电子门输入是否正确由计算机类调用验证接口的相关方法判断,如果收到开门信号,开启电子门,/如果电子门已开启,维持5秒,关闭电子门java.lang.Thread.sleep(5000);/程序暂停5000毫秒,第一步:检查输入设备的输入缓存第二步:检查开门信号第三步:电子门开启状态维持5秒后关闭电子门,输入设备类模拟输入各种验证信息:,1.
3、密码、胸卡、指纹都以字符串形式从控制台输入:1、密码以“pa”开头2、胸卡以“ca”开头3、指纹以“fi”开头2.输入的验证信息保存在输入设备的缓存中,private String input=null;/输入设备缓存,用户级别:,管理员,雇员,访客,extends,extends,只能按门铃,可以输入验证信息,可以直接开启电子门,监控门铃,系统所用包:,sys包:放置门禁系统相关类 user包:放置访客、雇员、管理员类 validate包:放置验证身份的接口及其实 现类 test包:放置测试类导入日志包,sys包中的类:,电子门类:Door.java输入设备类:InputEquip.java
4、计算机类:Computer.java门禁系统类:ControlSys.java,对电子门的开启,提示用户输入,并把输入信息保存到输入缓存中,用于存储和验证密码,胸卡,指纹。且可以增加密码,胸卡,指纹,包含计算机,电子门,输入设备,门铃,开门信号,日志使用LOG4J输入,记录日志信息,user包中的类:,访客类:Guest.java雇员类:Employee.java管理员类:Admin.java,访客有姓名属性,按门铃方法,继承自访客,增加了输入验证信息的方法,该方法需要使用输入设备的输入方法,1.继承自雇员,增加3个方法。2.管理员可以向门禁发出开门信号。3.监听门铃:该方法将调用管理员通过监
5、控室按钮开门的方法,4.添加验证信息:valType为 pa,ca,fi。valStr为验证信息,2,3,4分别调用计算机类的work()方法的参数为1,2,3个的,validate包中的类:,验证接口:Validate.java实现接口:GenericValidate.java密码验证:PassWordVld.java胸卡验证:CardVld.java指纹验证:FingerMarkVld.java,定义一个验证方法,默认实现验证接口中的验证方法,,验证密码是否正确,验证胸卡是否正确,验证指纹是否正确,test包中的类:,雇员验证:EmployeeTest.java管理员验证:AdminTes
6、t.java访客验证:GuesTest.java验证:Test.java,用于测试门禁系统的雇员验证是否正常运行,用于测试门禁系统的管理员验证是否正常运行,用于测试门禁系统的访客验证是否正常运行,用于测试整个门禁系统是否正常运行,日志包:,用于记录日志,基本日志信息包括电子门开启、关闭、谁通过电子门、验证成功或失败。在有必要记录日志的地方,尽可能的多地输出想要保存的信息。,为新雇员设置密码、胸卡、指纹,/增加密码public void addPassWord(String passWord)for(int i=0;i100;i+)if(this.passWordi=null)this.pass
7、Wordi=passWord;System.out.println(增加密码+passWord+成功!);break;,/增加指纹public void addFingerMark(String fingerMark)for(int i=0;i100;i+)if(this.fingerMarki=null)this.fingerMarki=fingerMark;System.out.println(增加指纹+fingerMark+成功!);break;,/增加胸卡public void addCard(String card)for(int i=0;i100;i+)if(this.cardi=null)this.cardi=card;System.out.println(增加胸卡+card+成功!);break;,开发中遇到的困难:,输入类中的缓存中信息会在调用中被清空。解决方法:用构造函数传递信息的副本,谢 谢!,
链接地址:https://www.31ppt.com/p-5697795.html