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日

相关文章

  • Java ArrayList使用总结

    Java ArrayList使用总结 本文主要介绍Java ArrayList的使用方法,包括以下内容: ArrayList的定义和初始化 ArrayList的常用操作 ArrayList的遍历 ArrayList的常见问题及解决方案 1. ArrayList的定义和初始化 ArrayList是Java语言中的集合类,用于存储一组相同类型的元素。可以通过以下…

    Java 2023年5月26日
    00
  • mybatis动态sql之Map参数的讲解

    Mybatis动态SQL之Map参数的讲解 在Mybatis的Mapper.xml文件中,我们可以使用动态SQL语句,来根据不同的参数值生成不同的SQL,这使得SQL编写更加具有灵活性。其中,Map类型的参数也可以用于动态SQL语句中,接下来将一一讲解这些内容。 1. Map参数的基本使用 我们可以在Mapper.xml中,使用Map类型的参数来实现条件查询…

    Java 2023年5月20日
    00
  • SpringMVC结合天气api实现天气查询

    下面我将针对“SpringMVC结合天气API实现天气查询”的完整攻略,进行详细讲解。 1. 准备工作 在开始之前,我们需要做以下准备工作: 注册一个高德开放平台的账号,并申请一个天气API的key。 新建一个Spring Boot项目,并在pom.xml文件中添加必要的依赖。 <dependencies> <!–Spring Boot …

    Java 2023年6月16日
    00
  • Java环境配置原理全面解析

    这里是关于Java环境配置原理全面解析的详细攻略。 简介 Java是一种跨平台编程语言,需要安装Java开发工具包(JDK)才能进行编码,因此在进行Java编程之前必须进行Java环境的安装和配置。 Java环境配置的主要内容包括: 安装JDK 配置环境变量 本文将逐一介绍这两个过程,并附带两个实际的安装示例。 安装JDK JDK的安装需要从Oracle官网…

    Java 2023年5月24日
    00
  • 用 ChatGPT 写代码,效率杠杠的!

    来源:https://www.cnblogs.com/scy251147/p/17242557.html ChatGPT出来好久了,vscode上面由于集成了相关的插件,所以用起来很简单,经过本人深度使用后,发觉其能力的强大之处,在书写单元测试,书写可视化小工具,代码纠错,代码规范,编程辅助方面,极其可靠,而且能识别一些坑并绕过,下面来看看他能干的一些事情吧…

    Java 2023年4月30日
    00
  • Java对数器验证算法详解

    介绍Java对数器验证算法的完整攻略如下: 什么是Java对数器验证算法 首先,我们来了解一下Java对数器验证算法的概念。Java对数器验证算法是一种通过自我验证来测试程序正确性的方法。它通过生成符合要求的随机数据,并与待测试程序得到的结果进行比对,从而验证待测试程序的正确性。该算法通常用于比较复杂的算法、数据结构等程序的正确性验证。 Java对数器验证算…

    Java 2023年5月19日
    00
  • JAVA实现监测tomcat是否宕机及控制重启的方法

    下面是详细讲解”JAVA实现监测tomcat是否宕机及控制重启的方法”的完整攻略: 1. 监测Tomcat是否宕机 要监测Tomcat是否宕机,可以使用Java自带的Socket库建立Socket连接来判断Tomcat是否还在运行。下面是示例代码: public class TomcatMonitor { // 定义Tomcat的IP和端口 private …

    Java 2023年6月2日
    00
  • Struts2返回json格式数据代码实例

    Struts2是一个基于Java的web应用程序框架,除了可以返回网页,还可以返回XML、JSON等各种格式的数据。下面是关于Struts2返回json格式数据代码实例的完整攻略。 步骤1:在pom.xml文件中添加依赖项 在pom.xml文件中添加下面这个依赖项: <dependency> <groupId>com.fasterxm…

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