java实现工资管理简单程序

下面就让我来详细讲解“Java实现工资管理简单程序”的完整攻略。

1. 确定需求

首先我们需要确定程序的需求。根据题目的要求,我们需要实现一个工资管理简单程序,这个程序需要实现以下功能:

  • 添加新员工的信息
  • 计算员工工资
  • 查询员工信息
  • 删除员工信息
  • 修改员工信息

基于以上需求,我们可以大致分析出需要用到的Java知识点:

  • 类与对象的概念
  • 静态变量与静态方法的概念
  • 条件语句、循环语句和方法的使用
  • 集合的概念和使用

2. 设计程序架构

基于需求,我们可以设计出如下的程序架构:

  • Employee类:员工信息的保存和管理
  • Salary类:员工工资的计算和管理
  • Manager类:用户的输入和查询,与其他类的交互

3. 编写程序

根据上述架构,我们可以开始编写程序。以下是细节实现。

//Employee类-员工信息的保存和管理
public class Employee {
    //员工编号
    private String id;
    //员工姓名
    private String name;
    //员工工资
    private double salary;
    //员工部门
    private String department;

    public Employee(String id,String name,double salary,String department){
        this.id = id;
        this.name = name;
        this.salary = salary;
        this.department = department;
    }

    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 double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }
}
//Salary类-员工工资的计算和管理
public class Salary {
    //所有员工对象的存储容器
    private static List<Employee> employees = new ArrayList<>();

    //计算员工工资
    public static double calculateSalary(Employee employee){
        double salary = employee.getSalary();
        String department = employee.getDepartment();
        //根据员工所在部门计算津贴
        switch (department){
            case "sale":
                salary += 1000;
                break;
            case "tech":
                salary += 1500;
                break;
            case "hr":
                salary += 800;
                break;
        }
        return salary;
    }

    //添加新员工的信息
    public static void addEmployee(Employee employee){
        employees.add(employee);
    }

    //查询员工信息
    public static Employee queryEmployee(String id){
        for (Employee employee : employees){
            if (employee.getId().equals(id)){
                return employee;
            }
        }
        return null;
    }

    //删除员工信息
    public static void deleteEmployee(String id){
        Employee employee = queryEmployee(id);
        if(employee != null){
            employees.remove(employee);
            System.out.println("删除员工信息成功!");
        }else{
            System.out.println("不存在这个员工!");
        }
    }

    //修改员工信息
    public static void updataEmployee(Employee employee){
        for(int i = 0;i < employees.size();i++){
            if(employee.getId().equals(employees.get(i).getId())){
                employees.set(i, employee);
                System.out.println("修改员工信息成功!");
                return;
            }
        }
        System.out.println("不存在这个员工!");
    }
}
//Manager类-用户的输入和查询,与其他类的交互
public class Main {

    public static void main(String[] args) {
        //初始化员工信息
        Employee e1 = new Employee("001","Tom",2000.0,"sale");
        Employee e2 = new Employee("002","Jack",3000.0,"tech");
        Employee e3 = new Employee("003","Rose",5000.0,"hr");

        //加入员工信息
        Salary.addEmployee(e1);
        Salary.addEmployee(e2);
        Salary.addEmployee(e3);

        //交互
        Scanner input = new Scanner(System.in);
        System.out.println("1.查看员工信息\n2.添加员工信息\n3.删除员工信息\n4.修改员工信息\n请输入:");
        while (input.hasNextLine()){
            int choose = input.nextInt();
            switch (choose){
                case 1://查看员工信息
                    System.out.println("请输入员工编号:");
                    String id = input.next();
                    Employee employee = Salary.queryEmployee(id);
                    if(employee != null){
                        double salary = Salary.calculateSalary(employee);
                        System.out.println("编号:" + employee.getId() + "  " + "姓名:" + employee.getName() + "  " + "工资:" + salary);
                    }else{
                        System.out.println("不存在这个员工!");
                    }
                    break;

                case 2://添加员工信息
                    System.out.println("请输入员工编号:");
                    String addId = input.next();
                    System.out.println("请输入员工姓名:");
                    String addName = input.next();
                    System.out.println("请输入员工薪水:");
                    double addSalary = input.nextDouble();
                    System.out.println("请输入员工部门:");
                    String addDepartment = input.next();

                    Salary.addEmployee(new Employee(addId,addName,addSalary,addDepartment));
                    System.out.println("添加员工信息成功!");
                    break;

                case 3://删除员工信息
                    System.out.println("请输入员工编号:");
                    String deleteId = input.next();
                    Salary.deleteEmployee(deleteId);
                    break;

                case 4://修改员工信息
                    System.out.println("请输入员工编号:");
                    String updataId = input.next();
                    Employee updataEmployee = Salary.queryEmployee(updataId);
                    if(updataEmployee != null){
                        System.out.println("请输入修改后的员工姓名:");
                        String updataName = input.next();
                        System.out.println("请输入修改后的员工薪水:");
                        double updataSalary = input.nextDouble();
                        System.out.println("请输入修改后的员工部门:");
                        String updataDepartment = input.next();
                        Employee updata = new Employee(updataId,updataName,updataSalary,updataDepartment);
                        Salary.updataEmployee(updata);
                    }else{
                        System.out.println("不存在这个员工!");
                    }
                    break;
                default:
                    System.out.println("请重新输入!");
            }
            System.out.println("1.查看员工信息\n2.添加员工信息\n3.删除员工信息\n4.修改员工信息\n请输入:");
        }
    }
}

4. 示例说明

这里给出两个样例,用于演示程序的基本使用。

示例1-查看员工信息

  • 输入:
1
001
  • 输出:
编号:001  姓名:Tom  工资:3000.0

示例2-修改员工信息

  • 输入:
4
001
Jerry
3000
sale
  • 输出:
修改员工信息成功!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现工资管理简单程序 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Spring Boot2.0使用Spring Security的示例代码

    Spring Boot2.0使用Spring Security的示例代码 Spring Security是一个功能强大的安全框架,可以帮助我们实现身份验证、授权、攻击防护等功能。在Spring Boot2.0中,我们可以很方便地集成Spring Security,并实现基本的安全控制。本文将详细讲解Spring Boot2.0使用Spring Securit…

    Java 2023年5月15日
    00
  • 关于集合和字符串的互转实现方法

    对于集合和字符串的互转实现方法,一种常见的方式是使用Python中的内置函数和简便的语法。 集合转字符串 如果我们有一个集合,我们可以使用join()函数将集合中的元素连接成一个字符串。具体的实现步骤如下: 将集合中的元素转化为字符串类型,使用map()函数进行转换。 使用join()函数将转化后的字符串元素连接成一个字符串。 下面是一段示例代码: # 定义…

    Java 2023年5月27日
    00
  • 实例化JFileChooser对象报空指针异常问题的解决办法

    当实例化JFileChooser对象时,很有可能会遇到空指针异常问题。这可能是由于操作系统的文件选择器出现问题导致的,也可能是由于缺少必要的UI组件,导致无法正确实例化对象。在这里我们提供两种解决办法,以帮助您解决这个问题。 解决办法1:添加必要的UI组件 如果您遇到了实例化JFileChooser对象时出现“空指针异常”的问题,很有可能是因为缺少必要的UI…

    Java 2023年5月27日
    00
  • 深入介绍Java对象初始化

    深入介绍Java对象初始化 Java对象初始化指的是在创建对象后对其进行初始化的过程。其中,对象初始化包含了对象成员变量的初始化和执行构造器方法的操作。 对象成员变量的初始化 对象成员变量(非静态成员变量)可以在创建对象之前或者在构造器方法中进行初始化。其中,非静态成员变量可以归为以下两类: 未经初始化的成员变量 在Java中,成员变量不会自动初始化。如果一…

    Java 2023年5月26日
    00
  • java IO流文件的读写具体实例

    关于Java IO流文件的读写,我可以在本文中为您提供详细的攻略。 什么是Java IO流? 首先,我们需要了解一下Java IO流是什么。简单来说,IO流就是Java中用于读写数据的机制。在Java中,IO流一般用于文件的读写,网络数据的传输等场景。 Java IO流操作文件 接下来,我们来看一下Java中如何读写文件。Java中提供了多种方式进行文件的读…

    Java 2023年5月20日
    00
  • 详解Java如何优雅的使用装饰器模式

    下面来详细讲解“详解Java如何优雅的使用装饰器模式”的完整攻略。 装饰器模式简介 装饰器模式(Decorator Pattern)是一种常用的设计模式,它允许将对象的行为在运行时更改,而无需修改其结构。这种模式是在不必改变原有对象的基础上,动态地给一个对象增加一些额外的职责。 如何使用装饰器模式 使用装饰器模式一般是通过创建一个抽象装饰者,然后通过继承该装…

    Java 2023年5月26日
    00
  • java springboot的概述、特点与构建介绍

    1. Java Spring Boot的概述 Java Spring Boot是基于Java Spring Framework框架的一款快速开发应用程序的工具。Java Spring Boot利用自动化配置、起步依赖和嵌入式Web服务器,使得开发人员可以快速地构建出健壮、可扩展的Web应用程序。 Java Spring Boot除了可以用于Web应用程序的开…

    Java 2023年5月19日
    00
  • Springboot 整合maven插口调用maven release plugin实现一键打包功能

    下面是详细的Spring Boot整合Maven插件调用Maven Release Plugin实现一键打包功能的攻略: 1. 确定依赖和插件 首先确保在pom.xml文件中引入了Maven Release Plugin和Maven Deploy Plugin: <project> <build> <plugins> &l…

    Java 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部