以java编写员工管理系统(测试过 无问题)

news2024/12/27 1:42:20

一、系统结果的部分展示

二、题目以及相关要求

 

 

 三、组成

1.该系统由 Employee 类 、commonEmployee类、Testemd类和managerEmployee类组成

2.Employee实现的代码


public class Employee {
    private  String id;
    private  String name;
    private  String job;
    private  int holiday;
    private   int baseSalary;

    public Employee(String id, String name, String job, int holiday, int baseSalary) {
        this.id = id;
        this.name = name;
        this.job = job;
        this.holiday = holiday;
        this.baseSalary = baseSalary;
    }

    public Employee() {
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    public int getHoliday() {
        return holiday;
    }

    public void setHoliday(int holiday) {
        this.holiday = holiday;
    }

    public int getbaseSalary() {
        return baseSalary;
    }

    public void setbaseSalary(int baseSalary) {
        this.baseSalary = baseSalary;
    }


    public double sumCommonEmployeeSalary(int baseSalary,int holiday){ return  baseSalary + baseSalary * 0.1 + baseSalary * 0.5 + 200 -(baseSalary / 20)*holiday  ; }

    public double sumManagerEmployeeSalary(int baseSalary,int holiday){ return baseSalary + baseSalary*0.2 + baseSalary * 0.5 + 500  - (baseSalary / 20)*holiday;}

    public String toString(int baseSalary,int holiday,String ids ) {
        if (ids.equals("员工")) {
            return "编号为:" + getId() + "    姓名为:" + getName() + "   职务为:" + getJob() + "    请假天数为:" + getHoliday() + "天      " +     getName() + "的薪资为:" + sumCommonEmployeeSalary(getbaseSalary(), getHoliday()) + "元";
        } else {
            return "编号为:" + getId() + "    姓名为:" + getName() + "   职务为:" + getJob() + "    请假天数为:" + getHoliday() + " 天      " + getName() + "的薪资为:" + sumManagerEmployeeSalary(getbaseSalary(), getHoliday()) + "元";
        }

    }

}

3. commonEmployee类的实现:



public class Commonemployee  extends Employee {
    public Commonemployee(String id, String name, String job, int holiday, int baseSalary) {
        super(id, name, job, holiday, baseSalary);
    }

    public Commonemployee() {
    }


}

4.managerEmployee类的实现:

public class Manageremployee extends Employee{
    public Manageremployee(String id, String name, String job, int holiday, int baseSalary) {
        super(id, name, job, holiday, baseSalary);
    }

    public Manageremployee() {
    }

}

5.Testemd类的实现:

package chapter03;

import java.util.ArrayList;
import java.util.Scanner;

public class Testemd {
    public static void main(String[] args) {
        Employee e = new Employee();
        ArrayList<Employee> list = new ArrayList<>();
        while (true) {
            System.out.println("|------------------------------------|");
            System.out.println("|------------- 1. 增加     ---------|");
            System.out.println("|------------- 2. 删除     ---------|");
            System.out.println("|------------- 3. 修改     ---------|");
            System.out.println("|------------- 4. 显示信息     ---|");
            System.out.println("|------------- 5. 查询       --------|");
            System.out.println("|------------- 0. 退出     ---------|");
            System.out.println("|------------------------------------|");
            System.out.print("请选择业务:");
            Scanner sc = new Scanner(System.in);
            int selectChoice = sc.nextInt();
            switch (selectChoice) {
                case 1:
                    addEmployee(list);
                    break;
                case 2:
                    deleteEmployee(list);
                    break;
                case 3:
                    modEmployee(list);
                    break;
                case 4:
                    displayEmployee(list);
                    break;
                case 5:
                    selectEmployee(list);
                    break;
                case 0:
                    System.out.println("感谢您的使用!");
                    System.exit(0);
                    break;
                default:
                    System.out.println("您输入的选项有误,请您重新输入!");
                    break;
            }
        }
    }

    //添加人员
    public static void addEmployee(ArrayList<Employee> list){
        Scanner  sc = new Scanner(System.in);
        String  id ;
        while (true){
            System.out.print("请输入职工编号:");
            id = sc.next();
            System.out.print("请输入职工的姓名:");
            String name = sc.next();
            System.out.print("请输入职工的职务(员工、经理):");
            String job = sc.next();
            System.out.print("请输入职工请假天数:");
            int holiday = sc.nextInt();
            System.out.print("请输入职工的基本工资:");
            int  baseSalary = sc.nextInt();
            if( job.equals("员工")){
                Commonemployee ce = new Commonemployee();
                ce.setId(id);
                ce.setName(name);
                ce.setHoliday(holiday);
                ce.setJob(job);
                ce.setbaseSalary(baseSalary);
                String info =  ce.toString(baseSalary,holiday,id);
                System.out.println(info);
                //将新增加的员工报存到集合中
                list.add(ce);
                System.out.println("添加成功!");
                //测试
                System.out.println("调用了添加员工的函数");
                break;
            }
            else  if(job.equals("经理")){
                Manageremployee me = new Manageremployee();
                me.setId(id);
                me.setName(name);
                me.setHoliday(holiday);
                me.setJob(job);
                me.setbaseSalary(baseSalary);
                String info =  me.toString(baseSalary,holiday,id);
                System.out.println(info);
                //将新增的员工报存到集合中去
                list.add(me);
                System.out.println("添加成功!");
                //测试
                System.out.println("调用了添加经理的函数");
                break;
            }
            else {
                System.out.println(" 您输入的有误!请您输入 员工 / 经理  ");
            }
        }
    }


    //删除操作
    public static void deleteEmployee(ArrayList<Employee> list){
            Scanner sc = new Scanner(System.in);
            System.out.print("请输入删除的职工号");
            String id = sc.next();
            int isExist = -1;
            for(int i= 0;i < list.size();i++){
                Employee e = list.get(i);
                if (e.getId().equals(id)){
                    isExist = i;
                    break;
                }
            }
                if (isExist != -1){
                    list.remove(isExist);
                    System.out.println("删除成功!");
                    System.out.println("被删除的职工号为:"  );
                }
                else{
                    System.out.println("输入有误!");
                }
            }


            //修改操作
            public static void modEmployee(ArrayList<Employee>list){
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入修改的职工号:");
                String id= sc.next();

                int index = -1;
                for(int i = 0; i < list.size();++i){
                   Employee e = list.get(i);
                    if (e.getId().equals(id)){
                        index = i;
                        break;
                    }
                }
                if (index ==-1){
                    System.out.println("改职工不存在!请重新输入");
                }else {
                    System.out.print("请输入修改职工工姓名:");
                    String name  = sc.next();
                    System.out.print("请输入修改职工职务(员工/经理):");
                    String job  = sc.next();
                    System.out.print("请输入原职工请假天数:");
                    int  holiday  = sc.nextInt();
                    System.out.print("请输入职工基本工资:");
                    int  baseSalary  = sc.nextInt();

                    if (job.equals("员工")){
                        Commonemployee ce = new Commonemployee();
                        ce.setId(id);
                        ce.setName(name);
                        ce.setHoliday(holiday);
                        ce.setJob(job);
                        ce.setbaseSalary(baseSalary);
                        String info =  ce.toString();
                        list.set(index,ce);
                        System.out.println("修改成功!");
                    }

                    else if(job.equals("经理")){
                        Manageremployee me = new Manageremployee();
                        me.setId(id);
                        me.setName(name);
                        me.setHoliday(holiday);
                        me.setJob(job);
                        me.setbaseSalary(baseSalary);
                        String info =  me.toString();
                        System.out.println(info);
                        list.set(index,me);
                        System.out.println("修改成功!");
                    }

                }
            }

            //显示操作
            public  static  void displayEmployee(ArrayList<Employee> list ){
                        if(list.size() ==0){
                            System.out.println("当前列表没有任何信息,请输入信息后再操作");
                        }else {
                            for (int i = 0; i  < list.size();++i){
                                Employee e = list.get(i);
                                if(e.getId().equals("员工")){
                                System.out.println("编号为:"+e.getId() +"     姓名为:" + e.getName() + "     职务为:" +e.getJob() + "    假期天数为:"  + e.getHoliday() +" 天     薪资为:" +e.sumCommonEmployeeSalary(e.getbaseSalary(), e.getHoliday())+"元");
                            } else{
                                    System.out.println("编号为:"+e.getId() +"     姓名为:" + e.getName() + "     职务为:" +e.getJob() + "    假期天数为:"  + e.getHoliday() +"天      薪资为:" +e.sumManagerEmployeeSalary(e.getbaseSalary(), e.getHoliday())+"元");
                                }
                            }
                        }
            }

            //查询操作
            public static void selectEmployee(ArrayList<Employee>list){
                while(true) {
                    boolean flag = false;
                    Scanner sc = new Scanner(System.in);
                    if (list.size() == 0) {
                        System.out.println("当前列表没有任何信息,请输入信息后再操作");
                    } else {
                        System.out.print("输入查询的职工号:");
                        String id = sc.next();
                        for (int i = 0; i < list.size(); i++) {
                            Employee e = list.get(i);
                            if (e.getId().equals(id)) {
                                System.out.println(e.toString(e.getbaseSalary(), e.getHoliday(),e.getId()));
                                flag = true;
                                break;
                            }
                        }
                        if (flag==true){
                            break;
                        }
                        System.out.println("输入的编号有错误!请重新输入!");
                    }
                }
    }
}




-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                                          -------------------------------------------------------------------------------------------                   分割线                  -------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------

 四、Congratulation:

1.首先恭喜你,是一个有进取心的人,想知道事情的底层或者原理

五、详细解释

1.对于Employee类的详解

Employee类前面的基本的JavaBean就不谈了(不知道什么是基本JavaBean去http://www.baidu.com),主要的是在求解不同类的工资时,投了一个小巧,由于commonEmployee类和managerEmployee类均是extends与Employee类的,所以在可以依据输入的职业来判断是员工还是经理,是员工直接调用sumCommonEmoployeeSalary函数否则调用sumManagerEmployeeSalary函数,然后计算相关金额,toString函数很简单就是输出相关信息。

2.对于commonEmployee类和managerEmployee类的详解

太简单了!不讲了

3.对于Testemd类的详解

该类为测试类.................(看不懂的在评论区问,懒得写了)

六、comefrom(cdcas

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/401575.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

弱监督参考图像分割:Learning From Box Annotations for Referring Image Segmentation论文阅读笔记

弱监督参考图像分割&#xff1a;Learning From Box Annotations for Referring Image Segmentation论文阅读笔记一、Abstract二、引言三、相关工作A、全监督参考图像分割B、基于 Box 的实例分割C、带有噪声标签的学习四、提出的方法A、概述B、伪标签生成目标轮廓预测Proposal 选…

exe打包工具:advanced installer介绍(一)

前言近年来&#xff0c;web服务逐渐走向云端部署浏览器化、去APP化&#xff0c;然而exe安装仍有着举足轻重的地位&#xff0c;其好处不言而喻&#xff0c;拿到exe安装包后&#xff0c;基本就可以傻瓜安装和操作了&#xff0c;十分便捷。业务场景通过各种IDE/QT/C#/Java等开发工…

项目的生命周期与成本、风险、变更的关系

成本与人力投入水平 项目成本的投入在初始阶段逐渐增加&#xff0c;在执行的中间阶段达到顶峰&#xff0c;在项目收尾阶段逐渐下降。成本的投入趋势如下图所示&#xff1a; 初始阶段&#xff1a;从人力成本来看&#xff0c;信息系统开发团队在前期制定项目管理章程及项目管理…

PCB焊盘设计基本原则

SMT的组装质量与PCB焊盘设计有直接的关系&#xff0c;焊盘的大小比例十分重要。如果PCB焊盘设计正确&#xff0c;贴装时少量的歪斜可以再次回流焊纠正(称为自定位或自校正效应)&#xff0c;相反&#xff0c;如果PCB焊盘设计不正确&#xff0c;即使贴装位置十分准确&#xff0c;…

图像金字塔,原理、实现及应用

什么是图像金字塔 图像金字塔是对图像的一种多尺度表达&#xff0c;将各个尺度的图像按照分辨率从小到大&#xff0c;依次从上到下排列&#xff0c;就会形成类似金字塔的结构&#xff0c;因此称为图像金字塔。 常见的图像金字塔有两类&#xff0c;一种是高斯金字塔&#xff0…

为什么越来越多的人开始学习大数据

因为根据国内的发展形势&#xff0c;大数据未来的发展前景会非常好&#xff0c;前景好需求高&#xff0c;自然会吸引越来越多的人进入大数据行业 我国市场环境处于急需大数据人才但人才不足的阶段&#xff0c;所以未来大数据领域会有很多的就业机遇。 2022年春季&#xff0c;…

camunda流程引擎基本使用(笔记)

文章目录一、camunda基础1.1 安装与部署流程引擎1.2 流程引擎结构1.3 流程引擎的基本使用1.3.1 创建一个BPMN Diagram1.3.2 实现一个外部工作者1.3.3 部署流程1.3.4 创建一个流程实例并消费1.3.5 向流程中添加用户任务1.3.6 添加网关1.3.7 业务规则二、Java 集成流程引擎2.1 为…

酷开科技大数据揭秘!酷开系统中的千屏千面究竟指的是什么?

互联网行业的快速发展&#xff0c;给我们带来了极大的便利。回顾整个互联网行业的发展历程&#xff0c;从PC时代到移动互联网时代&#xff0c;从移动互联网时代到物联网时代&#xff0c;现在又即将从物联网时代迈入人工智能时代。这些飞速发展的背后&#xff0c;其实是对数据利…

ICG-alkyne,吲哚菁绿-炔基结构式,实验室科研试剂,CAS号:1622335-41-4

ICG-alkyne,吲哚菁绿-炔基 中文名称&#xff1a;吲哚菁绿-炔基 CAS号&#xff1a;1622335-41-4 英文名称&#xff1a;ICG-alkyne 英文别名&#xff1a;ICG-alk 性状&#xff1a;绿色粉末 化学式&#xff1a;C48H53N3O4S 分子量&#xff1a;768.03 溶剂&#xff1a;溶于…

3BHE029110R0111 ABB

3BHE029110R0111 ABB变频器控制方式低压通用变频输出电压为380&#xff5e;650V&#xff0c;输出功率为0.75&#xff5e;400kW&#xff0c;工作频率为0&#xff5e;400Hz&#xff0c;它的主电路都采用交—直—交电路。其控制方式经历了以下四代。1U/fC的正弦脉宽调制&#xff0…

ggplot2的组图拓展包(1):patchwork(中篇)

专注系列化、高质量的R语言教程推文索引 | 联系小编 | 付费合集上篇和上篇续介绍了使用操作符进行组图的方法&#xff0c;这里默认读者已经能够理解各种操作符在本篇推文中的使用场景。本篇目录如下&#xff1a;0 示例图形6 plot_layout函数&#xff08;下&#xff09;6.1 guid…

CSS3-数据可视化

2D动画 - transform CSS3 transform属性允许你旋转&#xff0c;缩放&#xff0c;倾斜或平移给定元素。 Transform是形变的意思&#xff08;通常也叫变换&#xff09;&#xff0c;transformer就是变形金刚 常见的函数transform function有&#xff1a; 平移&#xff1a;transl…

实际开发中如何存储密码(md5加盐bcrypt)golang

文章目录简介加盐的加密方式md5 加盐方式bcrypt 方式简介 一般前端把用户密码发给服务端&#xff0c;服务端实际业务中如何存储密码呢&#xff0c;如何存储密码才能保证密码不被开发者获取或者被截取呢&#xff0c;保证密码的安全 加盐的加密方式 现在的企业开发大都采用这种…

凌恩生物文献分享|颠覆性的宏基因组新思路,速来get!

非人灵长类动物&#xff08;NHP&#xff09;是人类的近亲&#xff0c;为宿主-微生物互作的研究提供了一个很好的例子。近年来研究主要集中在野生灵长类动物的肠道微生物群&#xff0c;这将有助于了解灵长类及其肠道微生物群的进化&#xff0c;但仍然缺乏关于野生种群肠道微生物…

通用后台管理系统-前端搭建

一 背景 基于vuespringboot 搭建一套通用管理后台 主要包括用户管理模块、权限模块、菜单模块 二 环境信息 2.1 前端工具版本 2.1.1 npm 版本 PS D:\front> npm -v 8.5.0PS D:\front> npm config get registry https://registry.npm.taobao.org/ PS D:\front>2.1…

埋点tracker:前端埋点服务-技术要点梳理

一、背景埋点方案&#xff0c;前端涉及到哪些技术要点&#xff0c;本文做简单的梳理和总结。二、指纹追踪技术&#xff1a;识别到用户及设备浏览器&#xff1a;浏览器指纹_snowli的博客-CSDN博客三、用户设备信息&#xff08;navigator&#xff09;navigator.userAgent四、页面…

利用Mysql存储过程造百万级数据

1.准备工作&#xff08;1&#xff09;由于是使用存储过程&#xff0c;mysql从5.0版开始支持存储过程&#xff0c;那么需要mysql的版本在5.0或者以上。如何查看mysql的版本&#xff0c;使用下面sql语句查看&#xff1a;&#xff08;2&#xff09;创建两张表&#xff0c;表结构一…

Android Crash和ANR监控

文章目录一、Crash1.1 概念1.2 类型二、ANR2.1 概念2.2 类型2.2.1 KeyDispatchTimeout&#xff08;常见&#xff09;2.2.2 BroadcastTimeout2.2.3 ServiceTimeout2.2.4 ContentProviderTimeout三、测试中如何关注3.1 Crash测试关注方法3.2 ANR测试关注方法四、如何记录与处理4.…

C++复习笔记--STL的string容器和vector容器

1--string容器string 本质上是一个类&#xff0c;其不同于指针 char*&#xff0c;string 类的内部封装了 char*&#xff0c;用于管理字符串&#xff0c;是一个 char* 型的容器&#xff1b;1-1--string构造函数string 的构造函数原型&#xff1a;string(); // 创建一个空的字符串…

媒体邀约的形式和步骤

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 做媒体服务很多年&#xff0c;今天就与大家分享下媒体邀约都有哪些形式&#xff1a; 1&#xff0c;电话邀约&#xff1a;通过电话与媒体记者进行沟通&#xff0c;邀请其参加活动或接受采…