要求
编写一个描述职工基本情况的类
属性包括姓名,职工号,性别,年龄,职务,部门,工资,奖金,方法包括输出个人信息,分配部门,设置职务,分配奖金,计算薪水, 要求实现职工号自动生成,不需要指定,按照创建的顺序给职工自动分配职工号,自动统计职工人数。
同时实现对所录入的职工按照部门或者年龄或者职务进行输出。
代码
import java.util.Comparator;
class Employee {
String name;
char sex;
int age;
//long l = System.currentTimeMillis();
long id;//随机生成工号
String department;
String title;
int salary;
int award;
public static int num=0;
//分配奖金
public int getAward() {
if (age < 25)
award = 500;
else if (age >= 25 && age < 35)
award = 1000;
else if (age >= 35 && age < 45)
award = 1500;
else if (age >= 45)
award = 2000;
salary += award * 12;
return salary;
}
public int getAge() {
return age;
}
public String getDepartment()
{
return department;
}
public String getTitle()
{
return title;
}
public long getID()
{
return id;
}
public int getNum()
{
return num;
}
public Employee(long id,String name,char sex,int age,String title,String department,int salary)
{
this.id=id;
this.name=name;
this.sex=sex;
this.age=age;
this.title=title;
this.department=department;
this.salary=salary;
//this.award=award;
num++;//人数增长
}
//显示相关信息
public void showinform() {
System.out.println("工号:" + id + " "+",姓名:" + name +" "+ ",年龄:" + age + " "+",性别:" + sex +" "+ ",职位:" + title +" "+ ",部门:" + department +" "+ "薪水:" +getAward());
}
}
class AgeComparator implements Comparator<Employee>
{
public int compare(Employee o1, Employee o2) {
if(o1.getAge()>o2.getAge())
return 1;
else
return -1;
}
}
class DepComparator implements Comparator<Employee>
{
public int compare(Employee o1, Employee o2)
{
String s1=o1.getDepartment();
String s2=o2.getDepartment();
return s1.compareTo(s2);
}
}
//
class TitComparator implements Comparator<Employee>
{
public int compare(Employee o1, Employee o2)
{
String s1=o1.getTitle();
String s2=o2.getTitle();
return s1.compareTo(s2);
}
}
public class Employee1 {
public static void main(String[] args) {
Employee e[] = {
new Employee( (int)(Math.random()*100)+50, "红豆", '女', 22, "应届生","实习", 4000),
new Employee( (int)(Math.random()*100)+50, "芋头", '女', 30, "运营", "经理",8000),
new Employee( (int)(Math.random()*100)+50, "芋圆", '女', 45, "hr", "经理",7000),
new Employee( (int)(Math.random()*100)+50, "麻薯", '男', 35, "产品","总经理", 6500),
new Employee( (int)(Math.random()*100)+50, "炸鸡", '女', 26, "销售", "秘书",9000),
new Employee( (int)(Math.random()*100)+50, "布丁", '女', 23, "应届生", "实习",5000),
new Employee((int)(Math.random()*100)+50, "奶盖", '女', 28, "运营", "总监",7000),
new Employee((int)(Math.random()*100)+50, "双皮奶", '女', 42, "运营", "经理",6000),
new Employee((int)(Math.random()*100)+50, "冰激凌", '女', 37, "hr", "实习",8000)
};
//
System.out.println("公司有"+e[0].getNum()+"人,按部门排序,相关信息为:");
java.util.Arrays.sort(e,new DepComparator());
for(Employee s:e)
{
s.showinform();
}
System.out.println("——————————————————————————————————————————————————————————————————————");
System.out.println("公司有"+e[0].getNum()+"人,按年龄排序,相关信息为:");
java.util.Arrays.sort(e, new AgeComparator());
for (Employee s : e) {
s.showinform();
}
System.out.println("——————————————————————————————————————————————————————————————————————");
System.out.println("公司有"+e[0].getNum()+"人,按职位排序,相关信息为:");
java.util.Arrays.sort(e,new TitComparator());
for(Employee s:e)
{
s.showinform();
}
}
}
不是很会写,很烦。