有人可以解决这个问题吗,功能2,3,4实现不了,无效

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

public class EmpTest {
public static void main(String[] args) {
//创建EmpManage对象
EmpManage em = new EmpManage();

    //做出一个简易菜单
    while (true) {
        System.out.println("请添加你要进行的的操作:");
        System.out.println("1.表示添加一个雇员");
        System.out.println("2.查找一个雇员");
        System.out.println("3.修改一个雇员工资");
        System.out.println("4.删除一个雇员");

        Scanner sc = new Scanner(System.in);

        String choice = sc.next();

        if (choice.equals("1")) {
            System.out.println("请输入编号:");
            String empNo = sc.next();
            System.out.println("请输入姓名:");
            String name = sc.next();
            System.out.println("请输入工资:");
            Float sal = Float.parseFloat(sc.next());  /r转float
            Emp emp = new Emp(empNo, name, sal);
            em.addEmp(emp);


        } else if (choice.equals("2")) {
            System.out.println("请输入编号:");
            String empNo1 = sc.next();
            em.showInfo(empNo1);

        } else if (choice.equals("3")) {
            System.out.print("请输入员工编号:");
            String empNo2 = new Scanner(System.in).next();
            float sal1 = new Scanner(System.in).nextFloat();
            em.updateSal(empNo2, sal1);

        } else if (choice.equals("4")) {
            System.out.print("请输入员工编号:");
            String empNo3 = new Scanner(System.in).next();
            em.delEmp(empNo3);

        }


    }

}

}

//雇员管理类
class EmpManage {

private ArrayList al = null;

//构造
public EmpManage() {
    al = new ArrayList();
}

//加入员工
public void addEmp(Emp emp) {
    al.add(emp);
}

//查找员工信息
public void showInfo(String empNo) {
    for (int i = 0; i < al.size(); i++) {
        //取出Emp对象
        Emp emp = (Emp) al.get(i);
        //比较编号
        if (emp.getEmpNo().equals(empNo)) {
            System.out.println("找到该员工,他的信息是:");
            System.out.println("编号=" + empNo);
            System.out.println("名字=" + emp.getName());
            System.out.println("工资=" + emp.getSal());
        }

    }

}

//修改工资
public void updateSal(String empNo, float newSal) {
    for (int i = 0; i < al.size(); i++) {
        Emp emp = (Emp) al.get(i);
        if (emp.getEmpNo().equals(empNo)) {
            //修改薪水
            emp.setSal(newSal);
        }
    }
}

//删除某个员工
public void delEmp(String empNo) {
    for (int i = 0; i < al.size(); i++) {
        Emp emp = (Emp) al.get(i);
        if (emp.getEmpNo().equals(empNo)) {

            al.remove(i);  //al.remove(empp);
        }
    }
}

}

//雇员类
class Emp {
//学号

private String name;
private String empNo;
private float sal;

//构造函数

public Emp(String name, String empNo, float sal) {
    this.name = name;
    this.empNo = empNo;
    this.sal = sal;
}

public String getName() {
    return name;
}

public String getEmpNo() {
    return empNo;
}

public float getSal() {
    return sal;
}

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

public void setEmpNo(String empNo) {
    this.empNo = empNo;
}

public void setSal(float sal) {
    this.sal = sal;
}

}

无效是什么意思,你在调用方法内,打印一下你传递的参数,观察参数值,和方法内的逻辑。