使用面向对象思想,输出员工信息并计算员工的工资。定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性;再定义一个员工(Employee)类,该类的属性有员工编号

运行结果如下:

题目:


使用面向对象思想,输出员工信息并计算员工的工资。

    实现过程为:
   
a.定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性;
    
b.再定义一个员工(Employee)类,该类的属性有员工编号(Id)、姓名(Name)、底薪
(Salary),所在部门(Department,该属性的值为Department类的对象).
c. 然后为员工类定义一个计算工资(countSalary)的方法,该方法的参数为本月销售额(sales),返
    回值为该员工的月工资。
    月工资的计算方法为:底薪+销售提成,销售提成的比例如下:小于10w为1%,10w至20w为2%,大
    于等于20w为3%
d.在main()方法中,创建Department类和Employee类的对象、输入该员工的本月销售额后,计算并输
    出该员工的工资。

 Department类如下:

package JavaEEtest.Test1;

public class Department {
    public double sales;
    private int Id;//部门编号,不是员工编号
    private String Name;//部门名字
    public Department(int id, String name) {
        Id = id;
        Name = name;
    }

    public int getId() {
        return Id;
    }

    public void setId(int id) {
        Id = id;
    }

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }
}

 Employee类如下:

package JavaEEtest.Test1;

public class Employee {
//        2、使用面向对象思想,输出员工信息并计算员工的工资。
//    实现过程为:
//    a.定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性;
//    b.再定义一个员工(Employee)类,该类的属性有员工编号(Id)、姓名(Name)、底薪
//(Salary),所在部门(Department,该属性的值为Department类的对象).
//    c. 然后为员工类定义一个计算工资(countSalary)的方法,该方法的参数为本月销售额(sales),返
//    回值为该员工的月工资。
//    月工资的计算方法为:底薪+销售提成,销售提成的比例如下:小于10w为1%,10w至20w为2%,大
//    于等于20w为3%。
//            d.在main()方法中,创建Department类和Employee类的对象、输入该员工的本月销售额后,计算并输
//    出该员工的工资。
    private int Id;//员工编号
    private String Name;//员工名字
    private double Salary;//底薪
    private Double pay;
    Department employnee;//销售部

    public Employee(int id, String name, double salary, Double pay, Department employnee) {
        Id = id;
        Name = name;
        Salary = salary;
        this.pay = pay;
        this.employnee = employnee;
    }

    public Double countSalary(Double sales) {
        if (sales <= 0) {
            System.out.println("你是竞争对手派来捣乱的吧!");
            return pay;
        } else if (sales > 0 && sales < 100000) {
            pay = Salary + 0.01 * sales;//pay是Double时这种写法可以,当时当pay是float;系统会报错;
            return pay;
            //也可以直接用return Salary+0.01*sales;
        } else if (sales >= 100000 && sales <= 200000) {
            pay = Salary + 0.02 * sales;
           return  pay;
        } else if (sales >= 200000) {
            pay = Salary + 0.03 * sales;
        }
        return pay;
    }
    public Employee(int i, String 猪头君, double v, Department saledepartment) {
    }
    public int getId() {
        return Id;
    }

    public void setId(int id) {
        Id = id;
    }

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    public Double getSalary() {
        return Salary;
    }

    public void setSalary(float salary) {
        Salary = salary;
    }
}

TestMain类(主类)如下:

package JavaEEtest.Test1;

import java.util.Scanner;

public class TestMain {
    public static void main(String args[]){
        double sales;
        Scanner input=new Scanner(System.in);
        Department saledepartment = new Department(001,"销售部");
        Employee employee = new Employee(530122,"猪头君",600000,0.0,saledepartment);
        System.out.println("猪头君所属的部门编号:"+ saledepartment.getId());
        System.out.println("猪头君所属的部门名称:"+ saledepartment.getName());
        System.out.println("猪头君的姓名:想当憨厚猪猪侠的少年:"+ employee.getName());
        System.out.println("猪头君个人员工编号:"+ employee.getId());
        System.out.print("请输入猪头君该月的销售额:");
        sales=input.nextDouble();
        System.out.print("请输入猪头君该月的工资为:"+employee.countSalary(sales));
        System.out.println("\t=============================================");
        System.out.println("\n底薪"+employee.getSalary()+"\t\t\t提成"+(employee.countSalary(sales)-employee.getSalary()));
    }
}

 员工和部门的关系很好理解,但是写代码时,怎么准确表达他们之间个变量的关系,和使用可能不好写

扫描二维码关注公众号,回复: 14810094 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_49612126/article/details/122524019
今日推荐