You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java员工管理项目如何实现按ID查员工、按薪资范围筛选功能

实现方案

你只需要更新主菜单选项,在switch分支中新增对应查询逻辑即可完成功能集成,具体修改如下:

第一步:更新主菜单

找到主菜单打印的代码段,新增两个功能入口:

System.out.println("Main Menu:");
System.out.println("1: Load New Employee Data");
System.out.println("2: Print Employee Data");
System.out.println("3: Exit");
// 新增两个查询功能选项
System.out.println("4: 按员工ID检索数据");
System.out.println("5: 按薪资范围检索数据");

第二步:新增查询逻辑分支

在原有switch语句的case3之后,新增case4、case5的处理逻辑:

case 4: {
    System.out.println("请输入要查询的员工ID:");
    int targetId = in.nextInt();
    boolean isFound = false;
    // 遍历员工列表匹配ID
    for (EmployeeData emp : companyData) {
        if (emp.id == targetId) {
            emp.printData();
            isFound = true;
            break;
        }
    }
    if (!isFound) {
        System.out.println("未找到对应ID的员工信息");
    }
    break;
}
case 5: {
    System.out.println("请输入最低薪资:");
    int minSalary = in.nextInt();
    System.out.println("请输入最高薪资:");
    int maxSalary = in.nextInt();
    // 校验薪资范围合法性
    if (minSalary > maxSalary) {
        System.out.println("输入错误:最低薪资不能大于最高薪资");
        break;
    }
    System.out.println("符合薪资范围的员工信息如下:");
    boolean hasMatch = false;
    // 遍历筛选符合薪资区间的员工
    for (EmployeeData emp : companyData) {
        if (emp.salary >= minSalary && emp.salary <= maxSalary) {
            emp.printData();
            hasMatch = true;
        }
    }
    if (!hasMatch) {
        System.out.println("该薪资范围内无匹配的员工");
    }
    break;
}

完整修改后可运行代码

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

public class FP {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        ArrayList<EmployeeData> companyData = new ArrayList<>();
        boolean loopAgain = true;
        while (loopAgain) {
            System.out.println("Main Menu:");
            System.out.println("1: Load New Employee Data");
            System.out.println("2: Print Employee Data");
            System.out.println("3: Exit");
            System.out.println("4: 按员工ID检索数据");
            System.out.println("5: 按薪资范围检索数据");
            int answer = in.nextInt();

            switch (answer) {
                case 1: {
                    System.out.println("Load New Employee Data:");
                    System.out.println("Please enter the number of new Employees to be added to the sytem.");
                    System.out.println();
                    int loop = in.nextInt();
                    for (int i = 0; i < loop; i++) {
                        companyData.add(new EmployeeData());
                    }
                } break;
                case 2: {
                    for (EmployeeData x : companyData) {
                        x.printData();
                    }
                } break;
                case 3: 
                    loopAgain = false; 
                    break;
                case 4: {
                    System.out.println("请输入要查询的员工ID:");
                    int targetId = in.nextInt();
                    boolean isFound = false;
                    for (EmployeeData emp : companyData) {
                        if (emp.id == targetId) {
                            emp.printData();
                            isFound = true;
                            break;
                        }
                    }
                    if (!isFound) {
                        System.out.println("未找到对应ID的员工信息");
                    }
                    break;
                }
                case 5: {
                    System.out.println("请输入最低薪资:");
                    int minSalary = in.nextInt();
                    System.out.println("请输入最高薪资:");
                    int maxSalary = in.nextInt();
                    if (minSalary > maxSalary) {
                        System.out.println("输入错误:最低薪资不能大于最高薪资");
                        break;
                    }
                    System.out.println("符合薪资范围的员工信息如下:");
                    boolean hasMatch = false;
                    for (EmployeeData emp : companyData) {
                        if (emp.salary >= minSalary && emp.salary <= maxSalary) {
                            emp.printData();
                            hasMatch = true;
                        }
                    }
                    if (!hasMatch) {
                        System.out.println("该薪资范围内无匹配的员工");
                    }
                    break;
                }
            }
        }
    }
}

class EmployeeData {
    String name;
    int id, salary;

    public EmployeeData() {
        Scanner in = new Scanner(System.in);
        System.out.println();
        System.out.println("Enter Employee Name: ");
        System.out.println();
        String name = in.nextLine();
        System.out.println();
        System.out.println("Enter Employee ID:");
        System.out.println();
        int id = in.nextInt();
        System.out.println();
        System.out.println("Enter Employee Salary: ");
        System.out.println();
        int salary = in.nextInt();
       
        this.name = name;
        this.id = id;
        this.salary = salary;
    }

    public void printData() {
        System.out.println();
        System.out.println("Employee: " + this.name);
        System.out.println();
        System.out.println("ID: " + this.id);
        System.out.println();
        System.out.println("Salary: " + this.salary);
        System.out.println();
    }
}

内容的提问来源于stack exchange,提问作者Programmingwoes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:57:02