Java之 出入门卫管理系统(一)

这个系统包含了四块,第一块就是人员管理,经理分配三位分别有“ABC"权限的人,分别管理请假申请,请假审批,门卫登记管理。同时不属于本公司的内部人员,如别的公司的人员如果想到本公司访问,也是先通过这”ABC“权限的三个人代为写来访申请,来访审批,来访门卫登记管理。

    具体步骤如下:

    因为后面都会用到很多相同的方法,和相同的属性,所以我先建立了两个接口让后面的方法类和属性类都实现这两个接口,这样就降低了耦合度。

 属性接口:


[java]  view plain copy
  1. package com.jereh.discrepancy;  
  2.   
  3. public interface Attribute {  
  4.   
  5. }  
   

方法类接口:

[java]  view plain copy
  1. package com.jereh.discrepancy;  
  2.   
  3. public interface Father {  
  4.   
  5.     public abstract boolean add(Attribute at);  
  6.       
  7.     public abstract boolean update(int num);  
  8.       
  9.     public abstract boolean updateJu(int num);  
  10.       
  11.     public abstract boolean delete(int num);  
  12.       
  13.     public abstract void show();  
  14.       
  15.     public abstract void  read();  
  16.       
  17.     public abstract void write();  
  18.       
  19. }  



  


  首先确定人员管理:赋予ABC三个等级权利,互不干涉,各自执行各自功能。

    1.建立人员管理的属性类:

 

[java]  view plain copy
  1. <span style="font-size:18px;">public class Employeer implements java.io.Serializable{  
  2.       
  3.     private String name;  
  4.     private String emp_no;  
  5.     private String pwd;  
  6.     private String lev;  
  7.       
  8.       
  9.     public Employeer(String name, String empNo, String pwd, String lev) {  
  10.         super();  
  11.         this.name = name;  
  12.         this.emp_no = empNo;  
  13.         this.pwd = pwd;  
  14.         this.lev = lev;  
  15.     }  
  16.     public Employeer() {  
  17.           
  18.     }  
  19.     public String getName() {  
  20.         return name;  
  21.     }  
  22.     public void setName(String name) {  
  23.         this.name = name;  
  24.     }  
  25.     public String getEmp_no() {  
  26.         return emp_no;  
  27.     }  
  28.     public void setEmp_no(String empNo) {  
  29.         emp_no = empNo;  
  30.     }  
  31.     public String getPwd() {  
  32.         return pwd;  
  33.     }  
  34.     public void setPwd(String pwd) {  
  35.         this.pwd = pwd;  
  36.     }  
  37.     public String getLev() {  
  38.         return lev;  
  39.     }  
  40.     public void setLev(String lev) {  
  41.         this.lev = lev;  
  42.     }  
  43.       
  44.   
  45. }</span>  

2.人员管理的方法类:方法后面都有介绍介绍方法的用途

[java]  view plain copy
  1. <span style="font-size:18px;">package com.jereh.discrepancy;  
  2.   
  3. import java.io.*;  
  4. import java.util.*;  
  5.   
  6. public class EmployeerBiz {  
  7.       
  8.     static List<Employeer> list = new ArrayList<Employeer>();  
  9.     Employeer  emp       = new Employeer();  
  10.     public void as(){  
  11.         list.add(new Employeer("李忠峰","1001","1314","A"));  
  12.         list.add(new Employeer("李四","1002","1314","B"));  
  13.         list.add(new Employeer("管理员","admin","admin","T"));  
  14.         list.add(new Employeer("刘冰","1003","1314","C"));  
  15.         writeDb();  
  16.     }  
  17.       
  18.       
  19.       
  20.     public boolean addEmp(Employeer em){     //添加信息,并判断编号是否重复  
  21.           
  22.         readDb();  
  23.         for(int i =0; i<list.size();i++){  
  24.             emp = (Employeer)list.get(i);  
  25.             if(em.getEmp_no().equals(emp.getEmp_no())){  
  26.                 return false;  
  27.             }  
  28.         }  
  29.         list.add(em);  
  30.         writeDb();  
  31.         return true;  
  32.           
  33.           
  34.     }  
  35.       
  36.     public boolean deleteEmp(String name){  //删除员工的所有信息,找到删除返回true,找不到返回  
  37.         readDb();  
  38.         for(int i =0; i<list.size();i++){  
  39.             emp = (Employeer)list.get(i);  
  40.             if(emp.getName().equals(name)){  
  41.                 list.remove(i);  
  42.                 writeDb();  
  43.                 return true;  
  44.             }  
  45.               
  46.         }  
  47.         return false;  
  48.     }  
  49.     public boolean updata(String name){     //判断是否有此人  
  50.           
  51.         readDb();  
  52.         for(int i = 0; i<list.size();i++){  
  53.             emp = (Employeer)list.get(i);  
  54.             if(emp.getName().equals(name)){  
  55.                 return true;  
  56.             }  
  57.         }  
  58.         return false;  
  59.     }  
  60.       
  61.      public Employeer updataDb(String name,String emp_no,String pwd,String lev){     //修改此人信息  
  62.           
  63.         readDb();  
  64.         for(int i = 0; i<list.size();i++){  
  65.             emp = (Employeer)list.get(i);  
  66.             if(emp.getName().equals(name)){  
  67.               
  68.             emp.setEmp_no(emp_no);  
  69.             emp.setLev(lev);  
  70.             emp.setPwd(pwd);  
  71.             writeDb();  
  72.             return emp;  
  73.           }  
  74.             
  75.         }  
  76.         return null;  
  77.      }  
  78.      public void showDb(){         //展示录入的员工信息 包括:编号,名字密码等级  
  79.          readDb();  
  80.          for(int i =0;i<list.size();i++){  
  81.              emp = (Employeer)list.get(i);  
  82.              System.out.println("\t"+emp.getName()+"\t\t"+emp.getEmp_no()+  
  83.                      "\t\t"+emp.getPwd()+"\t\t"+emp.getLev());  
  84.          }  
  85.      }  
  86.        
  87.        
  88.      public Employeer deng(String no,String pwd){   //登录方法,返回权限,根据权限判断进入哪个界面  
  89.          readDb();  
  90.          for(int i =0;i<list.size();i++){  
  91.              emp = (Employeer)list.get(i);  
  92.              if(emp.getEmp_no().equals(no)&&emp.getPwd().equals(pwd)){  
  93.                  return emp;  
  94.              }  
  95.          }  
  96.          return null;  
  97.      }  
  98.        
  99.     public void readDb(){             //读取123.txt中的文件  
  100.           
  101.         ObjectInputStream ois = null;  
  102.         FileInputStream  fis  = null;  
  103.         File    file          = new File("E:\\h\\123\\employeer.txt");  
  104.         try {  
  105.             fis = new FileInputStream(file);  
  106.             ois = new ObjectInputStream(fis);  
  107.             list = (List)ois.readObject();  
  108.         } catch (FileNotFoundException e) {  
  109.             // TODO Auto-generated catch block  
  110.             e.printStackTrace();  
  111.         } catch (IOException e) {  
  112.             // TODO Auto-generated catch block  
  113.             e.printStackTrace();  
  114.         } catch (ClassNotFoundException e) {  
  115.             // TODO Auto-generated catch block  
  116.             e.printStackTrace();  
  117.         }finally{  
  118.             try {  
  119.                 ois.close();  
  120.             } catch (IOException e) {  
  121.                 // TODO Auto-generated catch block  
  122.                 e.printStackTrace();  
  123.             }  
  124.         }  
  125.           
  126.     }  
  127.       
  128.     public  void writeDb(){                 //写入123.txt文件中数据  
  129.           
  130.         ObjectOutputStream oos = null;  
  131.         FileOutputStream  fos  = null;  
  132.         File    file          = new File("E:\\h\\123\\employeer.txt");  
  133.         try {  
  134.             if(!file.exists()){  
  135.                 fos = new FileOutputStream(file);  
  136.                 oos = new ObjectOutputStream(fos);  
  137.                 oos.writeObject(list);  
  138.             }else{  
  139.                 file.createNewFile();  
  140.                 fos = new FileOutputStream(file);  
  141.                 oos = new ObjectOutputStream(fos);  
  142.                 oos.writeObject(list);  
  143.             }  
  144.               
  145.               
  146.         } catch (FileNotFoundException e) {  
  147.             // TODO Auto-generated catch block  
  148.             e.printStackTrace();  
  149.         } catch (IOException e) {  
  150.             // TODO Auto-generated catch block  
  151.             e.printStackTrace();  
  152.         }finally{  
  153.             try {  
  154.                 oos.close();  
  155.             } catch (IOException e) {  
  156.                 // TODO Auto-generated catch block  
  157.                 e.printStackTrace();  
  158.             }  
  159.         }  
  160.     }  
  161.   
  162. }</span>  

3.人员管理的界面:


[cpp]  view plain copy
  1. <span style="font-size:18px;">package com.jereh.discrepancy;  
  2.   
  3. import java.util.*;  
  4.   
  5. public class EmployeerView {  
  6.   
  7.     Scanner input = new Scanner(System.in);  
  8.     EmployeerBiz ebiz = new EmployeerBiz();  
  9.     Employeer emp = new Employeer();  
  10.     String name;  
  11.     String num;  
  12.     String pwd;  
  13.     String lev;  
  14.   
  15.     public void addView() {  
  16.         System.out.print("请输入员工姓名:");  
  17.         name = input.next();  
  18.         System.out.print("请输入员工工号:");  
  19.         num = input.next();  
  20.         System.out.print("请输入员工密码:");  
  21.         pwd = input.next();  
  22.         System.out.print("请输入员工权限:");  
  23.         lev = input.next();  
  24.         emp.setEmp_no(num);  
  25.         emp.setLev(lev);  
  26.         emp.setName(name);  
  27.         emp.setPwd(pwd);  
  28.         if(ebiz.addEmp(emp)){  
  29.             System.out.println("录入成功!");  
  30.         }else  
  31.             System.out.println("录入失败,该编号已经存在");  
  32.           
  33.     }  
  34.   
  35.     public void updataView() {  
  36.         System.out.println("请输入您要修改的员工姓名:");  
  37.         name = input.next();  
  38.         if (ebiz.updata(name)) {  
  39.             System.out.print("请输入员工工号:");  
  40.             num = input.next();  
  41.             System.out.print("请输入员工密码:");  
  42.             pwd = input.next();  
  43.             System.out.print("请输入员工权限:");  
  44.             lev = input.next();  
  45.             emp = ebiz.updataDb(name,num, pwd, lev);  
  46.             System.out.println("修改成功!");  
  47.             System.out.println("*****************************************************");  
  48.             System.out.println("\t员工姓名\t\t员工编号\t\t员工密码\t\t员工权限");  
  49.             System.out.println("\t" + emp.getName() + "\t\t" + emp.getEmp_no()  
  50.                     + "\t\t" + emp.getPwd() + "\t\t" + emp.getLev());  
  51.             System.out.println("*****************************************************");  
  52.         } else {  
  53.             System.out.println("没找到您要修改的员工!");  
  54.         }  
  55.   
  56.     }  
  57.   
  58.     public void deleteView() {  
  59.         System.out.println("请输入您要删除的员工姓名:");  
  60.         name = input.next();  
  61.         if (ebiz.deleteEmp(name)) {  
  62.             System.out.println("删除成功");  
  63.         } else {  
  64.             System.out.println("没找到您要删除的员工!");  
  65.         }  
  66.   
  67.     }  
  68.   
  69.     public void showView() {  
  70.         System.out.println("*****************************************************");  
  71.         System.out.println("\t员工姓名\t\t员工编号\t\t员工密码\t\t员工权限");  
  72.         ebiz.showDb();  
  73.          System.out.println("*****************************************************");  
  74.     }  
  75.   
  76.     public  void main(){  
  77.          EmployeerView ev = new EmployeerView();  
  78.         while(true){  
  79.             
  80.            System.out.println("============员工信息=============");  
  81.            System.out.println("\t\t1.信息录入");  
  82.            System.out.println("\t\t2.信息修改");  
  83.            System.out.println("\t\t3.信息删除");  
  84.            System.out.println("\t\t4.信息查询");  
  85.            System.out.println("\t\t5.退出");  
  86.            System.out.println("=================================");  
  87.            System.out.print("请选择您要进行的操作:");  
  88.            int i = input.nextInt();  
  89.              
  90.             switch(i){  
  91.             case 1:  
  92.                 ev.addView();  
  93.                 break;  
  94.             case 2:  
  95.                 ev.updataView();  
  96.                 break;  
  97.             case 3:  
  98.                 ev.deleteView();  
  99.                 break;  
  100.             case 4:  
  101.                 ev.showView();  
  102.                 break;  
  103.             case 5:  
  104.                 System.exit(0);  
  105.                 System.out.println("退出成功!");  
  106.                 break;  
  107.             }  
  108.         }  
  109.           
  110.     }  
  111. }  
  112. </span>  


  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
学生宿舍出入管理系统是一个用于管理学生宿舍进出的系统。首先,系统包括三个主要角色:管理员、学生和门卫管理员拥有最高权限,可以管理学生信息、宿舍楼信息以及门卫信息。学生可以通过系统进行宿舍门禁的刷卡进出,并可以查询自己的出入记录。门卫负责监控宿舍楼的出入情况,可以查看入住学生的信息。 系统的用例包括:管理学生信息、管理宿舍楼信息、管理门卫信息、学生刷卡进出、门卫查看进出记录。首先,管理员可以添加、编辑和删除学生信息,包括学号、姓名、性别、班级等。其次,管理员可以管理宿舍楼的信息,包括楼号、楼层、房间号等。管理员还可以管理门卫的信息,包括姓名、工号、联系方式等。学生可以通过刷卡进出宿舍楼,系统会记录进出时间和地点。门卫可以查看进出记录,了解宿舍楼的出入情况。 系统的类包括:管理员、学生、门卫、宿舍楼、刷卡记录等。管理员可以拥有多个管理员属性(如姓名、工号等),学生也可以拥有多个学生属性(如姓名、学号等),门卫同理。宿舍楼包括楼号、楼层、房间号等属性。刷卡记录包括时间、地点、进出类型等属性。 总之,学生宿舍出入管理系统的UML图可以清晰地展现系统的功能和角色之间的交互关系,为系统的设计和开发提供了指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值