java门禁系统面向对象程序设计
2015-06-13 09:25
330 查看
门禁系统的体会
我觉得在写门禁系统之前,一定要有一个清晰的思路,要明确自己下一步要做哪些工作,要干什么,这样的速度和效率是比较高的。在写程序时要有一个认真端正的态度,不急不燥,有困难,这不是写不下去的理由,有困难要主动解决,总有一种结果等着你,别浮躁,沉住气,作为一个当代的大学生而言,很多人都是浮躁,觉得自己什么都会,却什么也做不好,不如踏踏实实,一脚一个坑的去学习,去探索。相信努力终会有收获。下面是对门禁系统的介绍:
需求
1:某公司安装了电子门,要设计门禁系统::
2:公司的雇员可以凭借密码、胸卡或指纹进入公司
3:计算机根据雇员的验证方式对其身份进行验证 :
4:管理员在监控室可以通过按钮直接开启电子门:
5:访客可以按门铃请求进入,由管理员为其放行**
下面请看代码**
/** * 门禁系统 */ package Liu; import java.util.*; import org.apache.log4j.Logger; import yazh.Admin; public class Meji { public Door door; // 门禁系统的电子门 public Input input; // 门禁系统的输入设备 public int ring; // 门铃,0为安静,1为鸣响 public int openSign=1; private Logger logger; // 日志文件 public Meji(){ this.door = new Door(); this.input = new Input(); this.ring = 0; this.openSign = 0; this.logger = Logger.getLogger(Admin.class.getName()); logger.debug("--------------欢迎进入门禁系统----------"); System.out.println("门禁系统的使用方法\n" + ".模拟管理员按下开门按钮:输入“y”,按否是N"); System.out.println("***************************************************"); } public void work() { /* 检查开门信号 */ if(this.getOpenSign()==1){ System.out.println("开启电子门"); logger.debug("~~~~~~~~~开启电子门,请进~~~~~~~" ); door.open(); // 开启电子门 } if(this.getOpenSign()==0){ System.out.println("电子门关闭-------"); logger.debug("~~~~~~~~电子门关闭,勿进~~~~~~~"); door.close(); // 关闭电子门 } /* 电子门开启状态将维持5秒后关闭 */ if(door.gettate().equals(Door.OPEN)){ try { System.out.println("请快点进入,电子门将延续5秒后关闭,"); logger.debug("~~~~亲们~~~~~,请快点进入哦,五秒后就关闭喽!"); Thread.sleep(5000); // 让电子门开启状态维持5秒 } catch (InterruptedException e) { return; } door.close(); System.out.println("电子门已关闭");// 关闭电子 logger.debug("~~~~~~~~电子门关闭,勿进~~~~~~~"); } } /** * @param ring 要设置的 ring */ public void ring() { this.ring = 1; } /** * @return door */ public Door getDoor() { return door; } /** * @return input */ public Input getinput() { return input; } public int getRing() { return ring; } /** * @param ring 要设置的 ring */ public void setRing(int ring) { this.ring = ring; } /** * @return openSign */ public int getOpenSign() { return this.openSign; } /** * @param openSign 要设置的 openSign */ public void setOpenSign(int openSign) { this.openSign = openSign;// 开门信号,由管理员按下按钮时产生,1为开启信号 } public Logger getLogger() { // TODO Auto-generated method stub return logger;//返回日志信息 } }
package test; import java.util.Scanner; import org.apache.log4j.Logger; import yazh.Admin; import yazh.Guyuan; import Liu.Meji; public class test { private static Logger logger=Logger.getLogger(test.class.getName()); public static void main(String[] args) { Scanner in=new Scanner(System.in); System.out.println("---------------------欢迎进入门禁系统---------------------------------------"); System.out.println("请选择你的身份(a 是管理员)(b 雇员)(c 访客)"); String sd=in.next(); if (sd.equals("a")){ Admin admin = new Admin("王哲"); // 管理员 Meji contr = new Meji(); // 门禁系 System.out.println("门禁系统---管理员测试"); System.out.println("***************************************************"); while(true){ admin.work(contr); contr.work(); } } if(sd.equals("c")){ Guyuan guest = new Guyuan ("赵强"); // 访客员 Admin admin = new Admin("王石头"); // 管理员 Meji controlSys = new Meji(); // 门禁系统 System.out.println("门禁系统---访客测试"); System.out.println("***************************************************"); while(true){ guest.pressRing(controlSys); admin.work(controlSys, guest); controlSys.work(); } } if(sd.equals("b")){ Guyuan employee = new Guyuan("雇员张三丰"); // 雇员 Meji contr = new Meji(); // 门禁系统 System.out.println("门禁系统---雇员测试"); System.out.println(" 模拟输入密码:以“pa”开头,后跟密码12345\n"); System.out.println(" 模拟输入胸卡:以“ca”开头,后跟密码12345\n"); System.out.println(" 模拟输入指纹:以“fa”开头,后跟密码12345\n"); System.out.println("***************************************************"); Admin admin = new Admin("王哲"); while(true){ employee.input(contr); admin.work(contr); contr.work(); } } } }
/* * 门禁系统的输入设备 */ package Liu; import java.util.Scanner; import org.apache.log4j.Logger; import yazh.Admin; public class Input { private String input = null; //暂时保存密码 private Logger logger; /** * 输入设备接受认证信息 */ public void input(){ this.logger = Logger.getLogger(Input.class.getName()); Scanner scanner = new Scanner(System.in); System.out.println("身份验证:" ); String passStr = scanner.next();//密码验证 if(passStr.equals("pa12345")){ System.out.println("密码验证正确,请进"); logger.debug("---亲----密码验证正确,请进哦!!!!!--~"); } /*验证胸卡*/ else if (passStr.equals("ca12345")){ System.out.println("胸卡验证正确,请进"); logger.debug("---亲----胸卡验证正确,请进哦!!!!!--~"); } /*验证指纹*/ else if(passStr.equals("fa12345")) { System.out.println("指纹验证正确,请进"); logger.debug("---亲----指纹验证正确,请进哦!!!!!--~"); } else{ System.out.println("验证错误,请重新输入"); logger.debug("---sorry----验证错误哦!!!!!--~"); } } public String getInput() { return input; } public void setInput(String input) { this.input = input; } }
原代码下载地址http://pan.baidu.com/s/1mgGIj1I 密码 8sjh
以上就是对代码的简单简介,有什么问题和建议,或者想对需求的增加,请联系我,我们一块来解决。谢谢~~··
“
相关文章推荐
- Java IO流中的flush()的神秘面纱
- JDK开发工具包
- JAVA IDE开发工具Intellij idea 编1
- SpringMVC中根据注解链接到依赖文件
- 【j2ee spring】31、巴巴运动网整合S2SH
- Eclipse 修改默认工作空间
- java基本数据类型
- Java之线程状态
- 查看jdk位数
- Java学习篇之---Maven开发跳过单元测试
- java JDBC 连接数据库查询数据与直接使用sql的疑问
- JAVA引用DLL文件方法
- 自制MyEclipse豆沙绿主题
- java 为何会出现框架
- Java学习之Iterator(迭代器)的一般用法 (转)
- java 源码学习方法
- Java Thread总结
- java 反射处理java泛型
- 使用Java完成《算法导论》习题2.1-4
- String数据类型详解