本帖最后由 陈红建 于 2012-8-10 13:50 编辑
改程序,从键盘可输入多个(如3个)员工的信息(类型可以是两种中的任意一种),然后输出全部员工的信息。
可能的输入输出形式:
显示:1.Add a Staff Member
2.Display all Staff
3.Exit Programe
选择1后,显示 1. Add an Employee
2. Add a Manager
3. return
- import java.util.*;
- public class ManagerTest
- {
- public static void main(String[] args)
- {
- // construct a Manager object
- Manager boss = new Manager("Carl Cracker", 80000, 1987, 12, 15);
- boss.setBonus(5000);
- Employee[] staff = new Employee[3];
- // fill the staff array with Manager and Employee objects
- staff[0] = boss;
- staff[1] = new Employee("Harry Hacker", 50000, 1989, 10, 1);
- staff[2] = new Employee("Tommy Tester", 40000, 1990, 3, 15);
- // print out information about all Employee objects
- for (Employee e : staff)
- System.out.println("name=" + e.getName() + ",salary=" + e.getSalary());
- }
- }
- class Employee
- {
- public Employee(String n, double s, int year, int month, int day)
- {
- name = n;
- salary = s;
- GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);
- hireDay = calendar.getTime();
- }
- public String getName()
- {
- return name;
- }
- public double getSalary()
- {
- return salary;
- }
- public Date getHireDay()
- {
- return hireDay;
- }
- public void raiseSalary(double byPercent)
- {
- double raise = salary * byPercent / 100;
- salary += raise;
- }
- private String name;
- private double salary;
- private Date hireDay;
- }
- class Manager extends Employee
- {
- /**
- * @param n the employee's name
- * @param s the salary
- * @param year the hire year
- * @param month the hire month
- * @param day the hire day
- */
- public Manager(String n, double s, int year, int month, int day)
- {
- super(n, s, year, month, day);
- bonus = 0;
- }
- public double getSalary()
- {
- double baseSalary = super.getSalary();
- return baseSalary + bonus;
- }
- public void setBonus(double b)
- {
- bonus = b;
- }
- private double bonus;
- }
复制代码 |
|