欢迎来到天天文库
浏览记录
ID:57168884
大小:1.40 MB
页数:26页
时间:2020-08-02
《门禁系统的面向对象设计课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、门禁系统的面向对象设计成员:于鸽毛蓓李美问题描述某公司安装了电子门,要设计门禁系统:公司的雇员可以凭借密码、胸卡或指纹进入公司计算机根据雇员的验证方式对其身份进行验证管理员在监控室可以通过按钮直接开启电子门访客可以按门铃请求进入,由管理员为其放行管理员可以为新职员设置密码设计要求能够应用OO思想设计并实现门禁系统的功能要求,并要求系统具备良好的可扩展性、可维护性和健壮性。鼓励在原功能需求上根据实际情况进行功能的完善和创新。分析对象:sys包:ControlSys类,door类。user包:Admin类,Emp
2、loyee类,Guest类validate包:Validate接口类,GenericValidate基类,PassWordVid,CardVid,FingerMarkVid等子类最后一个text测试包:Text测试类ControlSys类:工作方法:publicvoidwork(){door=newDoor();log.info("开门");door.openDoor();try{Thread.sleep(5000);}catch(InterruptedExceptione){e.printStackTrac
3、e();}door.closeDoor();log.info("关门");}工作步骤:第一步:通过验证类接受的验证信息判断后发出是否开门信号,传到门禁类第二步:门禁类通过是否开门的信号,进行不同的操作user包:Guest类:雇员通过按门铃,管理员听见门铃后给其放行Employee类:雇员通过三种验证方式自由进出Admin类:管理员有两种功能1.给访客开门2.为新职员设置新密码user包主要方法:Guest类:Guest()构造方法,guest()方法Employee类:Employee()构造方法,empl
4、oyee()方法Admin类:Admin()构造方法三个静态常量:privatefinalstaticString[]pa=newString[100];privatefinalstaticString[]ca=newString[100];privatefinalstaticString[]fi=newString[100];Employee类主要方法:使用多态:publicEmployee(Validategen,Stringinput){//多态gen.setInput(input);gen.setIn
5、ner();gen.check();}使用此方法进行判断使用哪种验证方式if(input1.equals("pa")){generic=newPassWordVid();Employeeemp=newEmployee(generic,input0);}elseif(input1.equals("ca")){generic=newCardVid();Employeeemp=newEmployee(generic,input0);}elseif(input1.equals("fi")){generic=newFi
6、ngerMarkVid();Employeeemp1=newEmployee(generic,input0);}else{System.out.println("输入错误");}//if语句Admin类:Adm()方法跟新职员设置密码j++;System.out.println("请为新职员添加新密码验证信息(以pa开头后跟4个数字):");pa[j]=(String)input.next();while(!pa[j].substring(0,2).equals("pa")
7、
8、pa[j].length()!=
9、6){System.out.println("添加新密码验证信息错误,请重新输入(以pa开头后跟4个数字):");pa[j]=input.next();}GenericValidategen=newPassWordVid();gen.setInner();for(inti=1;i<100;i++){if(gen.getInner(i)==null){gen.setInner(pa[j],i);System.out.println("新职员的雇员号为:"+i);System.out.println("新职员的密
10、码为:"+gen.getInner(i));break;}//if语句}//for循环validate包主要方法:接口Validate:publicinterfaceValidate{//创立接口publicvoidsetInput(Stringinput0);publicvoidsetInner();publicvoidcheck();publicvoidsetInner(Stringgetmim
此文档下载收益归作者所有