七色的明日 2016-11-20 11:11 采纳率: 50%
浏览 999
已采纳

java问题请高手回答下 5币答谢 一点心意

用ArrayList做了一个增删改查,查找功能完全正确的实现了,但是 修改工资 和删除职员的时候 名字老是出错

该员工已经离职:
编号为:HB201621
姓名为:张紫萱

hb201621 这个编号对应的员工应该是 齐明
却变成了 张紫萱

名字是:张紫萱 工资变化为:1705.23

工资编化对应的员工姓名应该是 何明
却变成了 张紫萱

package yxcwsbz;
import java.util.*;

public class Demo9 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    //雇员集合
    ArrayList boa=new ArrayList();
   //al中的数据类型是object类型
    Staff sta1=new Staff(25,"张紫萱",4500f,"HB201611");
    Staff sta2=new Staff(32,"何明",3800f,"HB201613");
    Staff sta3=new Staff(27,"孙科",3200f,"HB201615");
    Staff sta4=new Staff(29,"齐明",6200f,"HB201621");

    //将对象加入集合
    StaffManage staffmanage=new StaffManage();
    staffmanage.add(sta1);
    staffmanage.add(sta2);
    staffmanage.add(sta3);
    staffmanage.add(sta4);



    //System.out.println(boa.size());



    staffmanage.showname("HB201615");
    System.out.println(" ");
    staffmanage.delstaff("HB201621");
    System.out.println(" ");
    staffmanage.revisesoal("HB201613", 1705.23f);
    System.out.println(" ");

    //更新后重新遍历




}

}

//员工管理类
class StaffManage
{
private ArrayList boa= null;

public StaffManage()
{
     boa=new ArrayList();
}

//增加一个员工
public void add(Staff staff)
{
    boa.add(staff);
}

//查找一个员工
public void showname(String staffno)
{
    for(int i=0;i<boa.size();i++)
    {
        Staff staff=(Staff)boa.get(i);
        if(staff.getStaffno().equals(staffno))
        {
            System.out.println("查询的员工编号是:"+staffno);
            System.out.println("查询的员工姓名是:"+staff.getName());
            System.out.println("查询的员工工资是:"+staff.getSoal());
            System.out.println("查询的员工年龄是:"+staff.getAge());
            break;

        }

    }
}

//删除一个员工
public void delstaff(String staffno)
{
    for(int i=0;i<boa.size();i++)
    {
        Staff staff=(Staff)boa.get(i);
        if(staff.getName().equals(staffno))
        {  
            boa.remove(i);
        }
        System.out.println("该员工已经离职:");
        System.out.println("编号为:"+staffno+" ");
        System.out.println("姓名为:"+staff.getName()+" ");
        break;

    }



}

//修改员工工资
public void revisesoal(String staffno,float newsoal)
{
    for(int i=0;i<boa.size();i++)
    {
        Staff staff=(Staff)boa.get(i);
        if(staff.getName().equals(staffno))
        {  
            staff.setSoal(newsoal);
        }

        System.out.println("名字是:"+staff.getName()+" "+"工资变化为:"+newsoal);
        break;
    }

}

}

//创建一个员工类
class Staff
{

private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getSoal() {
return soal;
}
public void setSoal(float soal) {
this.soal = soal;
}
public String getStaffno() {
return staffno;
}
public void setStaffno(String staffno) {
this.staffno = staffno;
}
private String name;
private float soal;
private String staffno;
public Staff(int age,String name,float soal,String staffno)
{
this.age=age;
this.name=name;
this.soal=soal;
this.staffno=staffno;
}
}

  • 写回答

4条回答 默认 最新

  • cqs849405266 2016-11-20 11:43
    关注

    哥们,你的if用的完全不对啊! 把修改和删除的方法换一下
    //查找一个员工
    public void showname(String staffno)
    {
    for(int i=0;i<boa.size();i++)
    {
    Staff staff=(Staff)boa.get(i);
    if(staff.getStaffno().equals(staffno))
    {
    System.out.println("查询的员工编号是:"+staffno);
    System.out.println("查询的员工姓名是:"+staff.getName());
    System.out.println("查询的员工工资是:"+staff.getSoal());
    System.out.println("查询的员工年龄是:"+staff.getAge());
    break;

            }
    
        }
    }
    
    //删除一个员工
    public void delstaff(String staffno)
    {
        for(int i=0;i<boa.size();i++)
        {
            Staff staff=(Staff)boa.get(i);
            if(staff.getStaffno().equals(staffno))
            {
            System.out.println("该员工已经离职:");
            System.out.println("编号为:"+staffno+" ");
            System.out.println("姓名为:"+staff.getName()+" ");
            boa.remove(i);
            break;
    
        }
    
        }
    
    }
    
    //修改员工工资
    public void revisesoal(String staffno,float newsoal)
    {
        for(int i=0;i<boa.size();i++)
        {
            Staff staff=(Staff)boa.get(i);
            if(staff.getStaffno().equals(staffno))
            {  
    
            System.out.println("名字是:"+staff.getName()+" "+"工资变化为:"+newsoal);
            staff.setSoal(newsoal);
            break;
        }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘