根据以下要求进行编程 在公司信息系统中,包括: (1) 员工,其可能的信息包括: 属性:employeeNumber、姓名、地址、电话号码。 方法:computePay(),构造方法。 (2) Magagers除了普通员工的属性和行为外,还具有以下属性和行为: 添加属性:职责,员工列表 行为:computePay()(),构造方法。 (3) 在测试类中重写toString()、输出经理的姓名、部门和工资(保留两位小数)。
时间: 2023-05-21 20:06:59 浏览: 47
可以使用面向对象编程语言(如Java)实现这个要求,以下是示例代码:
员工类:
public class Employee {
private int employeeNumber;
private String name;
private String address;
private String phoneNumber;
public Employee(int employeeNumber, String name, String address, String phoneNumber) {
this.employeeNumber = employeeNumber;
this.name = name;
this.address = address;
this.phoneNumber = phoneNumber;
}
public double computePay() {
// 计算员工工资的逻辑
return 0.0;
}
@Override
public String toString() {
return "Employee{" +
"employeeNumber=" + employeeNumber +
", name='" + name + '\'' +
", address='" + address + '\'' +
", phoneNumber='" + phoneNumber + '\'' +
'}';
}
}
管理者类:
public class Manager extends Employee {
private String responsibility;
private List<Employee> employeeList = new ArrayList<>();
public Manager(int employeeNumber, String name, String address, String phoneNumber, String responsibility, List<Employee> employeeList) {
super(employeeNumber, name, address, phoneNumber);
this.responsibility = responsibility;
this.employeeList = employeeList;
}
public double computePay() {
// 计算管理者工资的逻辑
return 0.0;
}
@Override
public String toString() {
return "Manager{" +
"name='" + getName() + '\'' +
", responsibility='" + responsibility + '\'' +
", salary=" + String.format("%.2f", computePay()) +
'}';
}
}
测试类:
public class Test {
public static void main(String[] args) {
Employee employee1 = new Employee(1, "张三", "北京市朝阳区", "010-12345678");
Employee employee2 = new Employee(2, "李四", "上海市浦东新区", "021-87654321");
List<Employee> employeeList = new ArrayList<>();
employeeList.add(employee1);
employeeList.add(employee2);
Manager manager = new Manager(3, "王五", "广州市天河区", "020-11111111", "部门经理", employeeList);
System.out.println(manager.toString());
}
}
输出:
Manager{name='王五', responsibility='部门经理', salary=0.00}