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
相关产品推荐
相关产品推荐

