《小型门禁系统.ppt》由会员分享,可在线阅读,更多相关《小型门禁系统.ppt(16页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、面向对象程序设计课程设计报告题 目:门禁系统的设计与实现 系(院:专 业:班 级:指导教师:Page 2n课程设计目标与要求:n 1、熟练应用面向对象的特性:封装、继承、多态;n 2、掌握常量的定义和使用(必需的关键字-final);n 3、熟练应用接口解决实际问题;n 4、能使用异常处理处理程序中的异常情况(try/catch/finally);n 5、会使用log4j工具输出保存日志信息。Page 3问题描述问题描述:某公司安装了电子门,要设计门禁系统,某公司安装了电子门,要设计门禁系统,该门该门 禁系统要具有以下功能:禁系统要具有以下功能:1 1、公司的雇员可以凭借密码、胸卡或指纹进入公
2、司、公司的雇员可以凭借密码、胸卡或指纹进入公司;2 2、计算机根据雇员的验证方式对其身份进行验证;、计算机根据雇员的验证方式对其身份进行验证;3 3、管理员在监控室可以通过按钮直接开启电子门,管、管理员在监控室可以通过按钮直接开启电子门,管 理员可以为新职员设置密码;理员可以为新职员设置密码;4 4、访客可以按门铃请求进入,由管理员为其放行。、访客可以按门铃请求进入,由管理员为其放行。问题分析问题分析-1:根据需求分析对象根据需求分析对象 门禁系统、电子门、计算机、输入设备门禁系统、电子门、计算机、输入设备、菜单菜单 管理员、管理员、雇员、雇员、访客访客 验证接口、验证实现验证接口、验证实现问
3、题分析问题分析-2 对象关系对象关系雇员雇员访客访客验证接口验证接口默认实现默认实现指纹识别指纹识别密码验证密码验证胸卡验证胸卡验证extends门禁系统包含:电子门、输入设备、计算机门禁系统包含:电子门、输入设备、计算机implementsextendsextendsextends包括以下主要类:1.编写类:电子门、输入设备、菜单2.编写类:计算机、门禁系统3.编写类:访客、雇员、管理员4.编写类:验证接口、默认实现5.编写类:密码验证、指纹验证、胸卡验证6.编写类:测试雇员通过电子门、测试数据初始化7.编写类:测试访客按门铃、管理员开启电子门主要方法的设计与实现:首先是电子门类方法有:pu
4、blic class Door Logger logger=Logger.getLogger(Door.class.getName();public void open(boolean k)/电子门的打开条件判断public void open()logger.info(电子门开启!);/电子门的打开public void close(boolean k)/电子门的关闭条件public void close()logger.info(电子门关闭!);其次是输入设备类public class Print Logger logger=Logger.getLogger(Print.class.get
5、Name();public String print()/信息的录入接着是计算机类public class ComputerGenericValidate gen=new GenericValidate();Logger logger=Logger.getLogger(Computer.class.getName();GenericValidate mi=new MiMa();GenericValidate xiong=new XiongKa();GenericValidate zhi=new ZhiWen();public boolean panduan(String str)/对验证信息的
6、判断创建出各个对象紧接的门禁系统类 菜单(Menu)public class Menu public void doing()/显示各种输出信息public class XiTong public void work1(boolean k)public void work1(boolean k)try door.open(k);Thread.sleep(5000);catch(InterruptedException e)e.printStackTrace();door.close(k);public int work2()/计算机对异常的捕获/开门时间的延迟/密码输入次数的限制public
7、void work(int pp)/对名字的修改异常的捕获然后是访客、雇员、管理员(Fangke、Guyuan、Guanliyuan)public class FangKe Logger logger=Logger.getLogger(FangKe.class.getName();Ling ling=new Ling();/new 出对象public boolean play(Ling ling)/按门铃进入方法public class GuYuan extends FangKe/属性私有化/提供公共的访问方法public class GuanLiYuan extends GuYuan/new
8、出日志对象和Button对象;/名字私有化/提供公共访问的方法public void enter(Button button)/按按钮进入方法public void enter(boolean boo)/对按钮输入方法的判定接口的验证与默认实现(Fangfa、Mima、Xiongka、Zhiwen)public interface FangFa/对mima、xiongka、zhiwen的属性的定义;/对mname、xname、zname的属性定义;public boolean panduan(String in);public int update(String xinmima,String
9、name);胸卡指纹密码方法验证public class MiMa extends GenericValidate/日志对象的创建;public boolean pan(String str)/密码的验证;public class ZhiWen extends GenericValidate/日志对象的创建;public boolean pan(String str)/指纹的验证;public class XiongKa extends GenericValidate/日志对象的创建;public boolean pan(String str)/胸卡的验证;测试类(FangkeTest、Guy
10、uanTest、GuannliyuanTest、Test)public class FangKeTest public static void main(String args)/日志、输入对象的创建;/new出Fangke、Xitong对象;/对输入内容判定是否符合设定条件进入;public class GuYuanTest public static void main(String args)/日志、输入对象的创建;/new出Guyuan、Xitong对象;/对输入内容判定是否符合设定条件进入;public class GuanLiYuanTest public static void main(String args)/日志、输入对象的创建;/new出Guanliyuan、Xitong对象;/对输入内容判定是否符合设定条件进入;程序测试与运行情况:见实际程序测试自我评价:虽然程序不够完美,但都是我们队员自己做的,我们都很认真的在做,从中我们体会到了团队合作的重要性,以及对只是灵活应用的重要性;我们的程序也达到了要求设计总结:通过这次实践,自我感觉基础知识掌握的很不熟练,这让我们组在设计方面耽误了很多的时间,这也是我以后更加努力的地方。在这次课程设计中,团队意识起到了很重要的作用,同时也暴露出了我们在这方面确实不足,需要好好地培养。