设计目的:某公司安装了电子门,要设计门禁系统。
设计要求:
(1) 公司的雇员可以凭借密码、卡号和指纹进入公司
(2) 计算机根据雇员的验证方式对其身份进行验证
(3) 管理员在监控室可以通过按钮直接开启电子门
(4) 访客可以按门铃请求进入,由管理员为其放行
//text.java
package com.open;
import java.util.Objects;
import java.util.Scanner;
public class text {
int dont=0;
static int[] id =new int[200]; //帐号
static String password=null; //密码
static String name[]=new String[200]; //姓名
static int printfinger[]=new int[200]; //指纹效验码
public void setId(int i){ //id写入
System.out.println("请输入id:");
Scanner input =new Scanner(System.in);
int a=input.nextInt();
for(int p=0;p<id.length;p++){
if (Objects.equals(a,id[p])){
System.out.println("id重复请重新输入");
setId(i);
break;
}
else {
this.id[i] = a;
break;
}
}
}
public void setPassword(){ //password写入
System.out.println("请输入密码:");
Scanner input =new Scanner(System.in);
this.password = input.next();
}
public void setName(int i){ //设置姓名
System.out.println("请输入名字:");
Scanner input =new Scanner(System.in);
this.name[i] = input.next();
}
public String Deleat(int inputid){//删除
String re="删除失败,无此id";
for(int i=0;i<id.length;i++){
if (Objects.equals(inputid,id[i])){ //
if(i!=200){
for (int j=i;j<id.length-1;j++) {
this.id[j] = this.id[j + 1];
this.name[j] = this.name[j + 1];
this.printfinger[j] = this.printfinger[j + 1];
re="删除成功";
}
} else if (Objects.equals(i,200)) {
id[200]=0;
name[200]=null;
printfinger[200]=0;
}else {
re="删除失败,无此id";
}
}
}
return re;
}
}
textin.java
package com.open;
import java.util.Objects;
import java.util.Scanner;
public class textin extends open{
static int i=0; //定义一个静态的i 用来控制注册函数,使得每次注册都能将数组下标后移
static int dont=0;
public static void main(String[] args) {
System.out.println("=================欢迎进入门禁管理系统==================");
textin f=new textin();
f.choice();
}
public void choice(){ //选择函数
System.out.println("1:注册 2:查询 3:删除 4:查询全部 5:指纹绑定 6:管理员开门 7:开门");
Scanner input=new Scanner(System.in);
int choice=input.nextInt();
switch (choice){
case 1:{
System.out.println(zhuce());
break;
}
case 2:{
fangfa();
break;
}
case 3:{
System.out.println("请输入要删除的id");
int id=input.nextInt();
System.out.println(Deleat(id));
break;
}
case 4:{ //查询全部人
quanbu();
break;
}
case 5:{
System.out.println("请输入要绑定的id");
int id=input.nextInt();
System.out.println("指纹");
int fingerid=input.nextInt();
bind(id,fingerid);
break;
}
case 6:{
int r=0; //管理员开门
glopen(r);
break;
}
case 7:{
chioce2();
break;
}
case 8:{ //模拟人员到访
visited();
break;
}
default:{
System.out.println("输入不合法,请重新输入");
}
}
choice();
}
public String zhuce(){//门禁注册
System.out.println("1:人员注册 2:密码修改 3:退出");
Scanner input =new Scanner(System.in);
int a=input.nextInt();
switch (a){
case 1:{
setId(i);
setName(i);
i++;
break;
}
case 2:{
setPassword();
break;
}
}
//数组后移
return "注册成功";
}
public void fangfa(){
System.out.println("1:姓名查询 2:帐号查询: 3:退出");
Scanner input =new Scanner(System.in);
int a=input.nextInt();
switch (a){
case 1:{
System.out.println("请输入姓名:");
String cname=input.next();
chaxunname(cname);
break;
}
case 2:{
System.out.println("请输入帐号:");
int id=input.nextInt();
chaxun(id);
break;
}
case 3:{
}
}
}
public void chaxunname(String nametext){ //按名称查询
for (int i = 0; i < name.length; i++) {
if (Objects.equals(nametext, name[i])) {
System.out.println("查询成功");
System.out.println("帐号:" + id[i] +" 姓名:" + name[i]+" 指纹效验码:"+printfinger[i]);
break;
} else if (Objects.equals(i, 199)) {
System.out.println("查询失败,无此人员");
break;
}
}
}
public void chaxun(int inputid){ //查询个人信息
for (int i = 0; i < id.length; i++) {
if (Objects.equals(inputid, id[i])) {
System.out.println("查询成功");
System.out.println("帐号:" + id[i] + " 姓名:" + name[i]+" 指纹效验码:"+printfinger[i]);
break;
} else if (Objects.equals(i, 199)) {
System.out.println("查询失败,无此id");
}
}
}
public String quanbu(){ //查询全部人员信息
if(Objects.equals(id[0],0))
{
System.out.println("无用户信息,用户信息为空");
}
else {
for (int i = 0; i < id.length; i++) {
if (Objects.equals(id[i], 0)) {
break;
} else {
System.out.println("帐号:" + id[i] +" 姓名:" + name[i]+" 指纹效验码:"+printfinger[i]);
}
}
}
return "";
}
public void visited(){ //模拟人员到访
System.out.println("门铃响起");
System.out.println("叮叮当 叮叮当 铃儿响叮当");
System.out.println("模拟有人到访");
}
public void bind(int intputid ,int fingerid){ //指纹绑定函数
for(int i=0; i<id.length;i++){
if(Objects.equals(intputid,id[i])){
printfinger[i]=fingerid;
System.out.println("绑定成功");
break;
} else if (Objects.equals(i,199)) {
System.out.println("绑定失败");
break;
}
}
}
}
//open.java
package com.open;
import java.util.Objects;
import java.util.Scanner;
public class open extends text {
static int dont=0;
static int open = 0;
text text = new text();
public void chioce2(){
System.out.println("1:帐号验证开门 2:指纹效验码开门 3:密码验证开门 4:退出");
Scanner input=new Scanner(System.in);
int ce=input.nextInt();
switch (ce){
case 1:{
System.out.println("请输入帐号:");
int inputid=input.nextInt();
openid(inputid);
break;
}
case 2:{
System.out.println("请输指纹验证码:");
String finger=input.next();
openprintfinger(finger);
break;
}
case 3:{
System.out.println("请输入密码");
String password=input.next();
}
case 4:{
break;
}
}
}
public void setOpen(){
}
public void Openpass(String pass){
}
public void openid(int inputid) {//验证身分开门
for(int i = 0; i< id.length; i++)//当账号与密码都正确时开门
{
if (Objects.equals(inputid, id[i])) {
System.out.println("密码正确已开门");
open = 1;
System.out.println("等待5秒关门");
open = 0;
break;
} else //密码错误检测
{
System.out.println("帐号错误");
break;
}
}
}
public void openprintfinger(String finger){ //指纹效验码开门
for(int i = 0; i< id.length; i++){
if (Objects.equals(finger,printfinger[i])){
System.out.println("密码正确已开门");
open=1;
}
}
System.out.println("等待5秒关门");
open=0;
}
public void glopen(int r){//管理员开门 int r 防止调用空参构造
open=1;
System.out.println("已开门");
System.out.println("等待5秒关门");
open=0;
}
}