多章案例(简单的企业人力资源管理系统)分析与实现(一)

1.简单的企业人力资源管理系统功能图

作为一个信息管理系统,一般要有用户登录和退出这些基本功能,用户又可以有不同的级别,如管理员、部门经理和普通员工等,他们级别不同,在企业中所完成的工作也就有所不同。因此,通过分析,得到如图3-3所示的系统功能图。

企业人力资源管理系统功能图

2.系统分析

(1)系统启动时需要显示“登录、退出”两个主菜单,不同级别的用户登录后又会显示各自的功能子菜单。因此,可以设计一个Menu类,实现系统中菜单的显示和操作功能。

(2)管理员、部门经理和普通员工都属于企业员工,都具有“员工编号、登录密码、姓名、性别、所属部门、员工级别、工资”等相同的属性以及拥有如“个人信息维护”等相同的功能,所以可以设计一个Employee类来实现上述内容。

(3)设计一个StartMenu测试类,实现显示主菜单功能以及不同级别员工登录时显示不同级别的子菜单的功能。

3.代码实现

1)Employee类

package hrms.entity;
public class Employee{
private String empNo;         //员工编号
private String password;     //登陆密码
private String empName;   //员工姓名
private String sex;              //员工性别
private int empLevel;          //员工级别(1表示普通员工;2表示部门经理;3表示管理员)
private String department;  //所属部门
private double salary;         //工资
//无参构造方法
public Employee(){
}
//有参构造方法
public Employee(String empNo,String password,String empName,String sex,int empLevel,String department,double salary){
  super();
  this.empNo=empNo;
  this.password=password;
  this.empName=empName;
  this.sex=sex;
  this.empLevel=empLevel;
  this.department=department;
  this.salary=salary;
}
/**
*显示员工信息
*/
public void dispInfo(){
  String position=null;
  if(empLevel==1) position="普通员工";
  if(empLevel==2) position="部门经理";
  if(empLevel==3) position="管理员";
  System.out.println("**********************************************");
  System.out.println("\t\t员工编号:"+empNo);
  System.out.println("\t\t员工姓名:"+empName);
  System.out.println("\t\t员工性别:"+sex);
  System.out.println("\t\t员工级别:"+position);
  System.out.println("\t\t所属部门:"+department);
  System.out.println("\t\t工资:"+salary);
  System.out.println("**********************************************");
}
//修改密码
public void modifyPassword(String newPassword){
  this.password=newPassword;
  System.out.println("密码修改成功");
}
//get/set方法
public String getEmpNo(){
      return empNo;
}
public void setEmpNo(String empNo){
      this.empNo=empNo;
}
public String getPassword(){
      return password;
}
public void setPassword(String password){
      this.password=password;
}
public String getEmpName(){
      return empName;
}
public void setEmpName(String empName){
      this.empName=empName;
}
public String getSex(){
      return sex;
}
public void setSex(String sex){
      this.sex=sex;
}
public String getEmpLevel(){
      return empLevel;
}
public void setEmpLevel(int empLevel){
      this.empLevel=empLevel;
}
public String getDepartment(){
      return department;
}
public void setDepartment(String department){
      this.department=department;
}
public String getSalary(){
      return salary;
}
public void setSalary(double salary){
      this.salary=salary;
}
}

2)Menu类

package hrms.entity;
import java.util.Scanner;
public class Menu{
Scanner input=new Scanner(System.in);
      /**
       *登陆主菜单
       */
      public void showLoginMenu(){
            System.out.println("\n\t\t\t欢迎进入企业人力资源管理系统\n");
            System.out.println("******************************************");
            System.out.println("\t\t\t1.登陆系统\n");
            System.out.println("\t\t\t2.退出系统\n");
            System.out.println("******************************************");
            System.out.println("请输入菜单项数字:");
      }
      /**
       *返回登陆菜单
       */
      private void returnLoginMenu(){
            boolean flag=true;
            do{
                  String num=input.next();
                  if(num.toUpperCase().equals("R")){
                        flag=false;
                        showLoginMenu();
                        break;
                  }else{
                        System.out.prinln("具体功能留待以后实现,请输入r/R返回登陆菜单");
                  }
            }while(flag);
      }
      /**
       *普通员工菜单
       */
      public void showStaffMenu(){
            System.out.println("人力资源管理系统=>普通员工");
            System.out.println("******************************************");
            System.out.println("\t\t\t1.汇报工作\n");
            System.out.println("\t\t\t2.查看个人信息\n");
            System.out.println("\t\t\t3.修改密码\n");
            System.out.println("\t\t\t4.查看考评信息\n");
            System.out.println("\t\t\t5.查看工资等级\n");
            System.out.println("\t\t\t6.今日工作内容\n");
            System.out.println("******************************************");
            System.out.println("请输入菜单项数字或输入r/R返回上一级菜单:");
            returnLoginMenu(input);
      }
      /**
       *部门经理菜单
       */
      public void showManagerMenu(){
            System.out.println("人力资源管理系统=>部门经理");
            System.out.println("******************************************");
            System.out.println("\t\t\t1.查看员工汇报工作\n");
            System.out.println("\t\t\t2.考评员工\n");
            System.out.println("\t\t\t3.查看个人信息\n");
            System.out.println("\t\t\t4.修改密码\n");
            System.out.println("\t\t\t5.查看工资等级\n");
            System.out.println("\t\t\t6.今日工作内容\n");
            System.out.println("******************************************");
            System.out.println("请输入菜单项数字或输入r/R返回上一级菜单:");
            returnLoginMenu(input);
      }
      /**
       *管理员菜单
       */
      public void showAdminMenu(){
            System.out.println("人力资源管理系统=>管理员");
            System.out.println("******************************************");
            System.out.println("\t\t\t1.查看员工信息\n");
            System.out.println("\t\t\t2.修改员工级别\n");
            System.out.println("\t\t\t3.查看个人信息\n");
            System.out.println("\t\t\t4.修改密码\n");
            System.out.println("\t\t\t5.查看工资等级\n");
            System.out.println("\t\t\t6.今日工作内容\n");
            System.out.println("******************************************");
            System.out.println("请输入菜单项数字或输入r/R返回上一级菜单:");
            returnLoginMenu(input);
      }
}

3)StartMenu类

public class StartMenu{
    public static void main(String[] args){
    //实例化普通员工
    Employee staff=new Employee("0001","111","张三","男",1,"技术部",3000.5);
    //实例化部门经理
    Employee manager=new Employee("0002","222","李四","男",2,"技术部",4000.5);
    //实例化管理员
    Employee admin=new Employee("0003","333","王五","男",3,"技术部",5000.5);
    //实例化菜单
    Menu menu=new Menu();
    //实例化登陆主菜单
    menu.showLoginMenu();
    //循环标志位
    boolean flag=true;
    Scanner input=new Scanner(System.in);
    while(flag){
      int choice=input.next();
      //根据输入不同的选项进行不同功能操作
        switch(choice){
        case 1:System.out.println("请输入员工序号:");
            String name=input.next();
            System.out.println("请输入密码");
            String password=input.next();
            //如果是普通员工,显示普通员工菜单
            if(name.equals(staff.getEmpNo())&&password.equals(staff.getPassword())){
                menu.showStaffMenu();
            }
            //如果是经理,显示经理菜单
            else if(name.equals(manager.getEmpNo())&&password.equals(manager.getPassword())){
                menu.showManagerMenu();
            }
            //如果是管理员,显示管理员菜单
            else if(name.equals(admin.getEmpNo())&&password.equals(admin.getPassword())){
                menu.showAdminMenu();
            }
            else{
                System.out.println("员工编号或者密码不对,请重新输入菜单项数字:");
                menu.showLoginMenu();
            }
            break;
        case 2:flag=false;
            System.out.println("您退出了系统!");
            break;
        default:
            System.out.println("输入选项不正确,请重新输入菜单项数字:");
            menu.showLoginMenu();
            break;
        }
      if(!flag) break;
   }
  }
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容