要求
设计一个简化的学院教师年终业绩考核系统(如有雷同,纯属巧合),用于对职工的业绩进行简单评定管理。该系统包括一个接口和三个类:一个接口Calculateable具有一个抽象方法getGrade(),用于根据职工的工作量分数计算职工的业绩等级数据。三个类分别是Teacher类,Lecturer类(讲师类)和Professor类(教授类)。Teacher类是一个抽象类,包括教师工号,姓名,年工作量属性,有一个抽象方法 getYearEarn计算年终奖,Lecturer类是Teacher类的子类,实现了Calculateable接口,Professor类是Teacher类的子类,实现了Calculateable接口。
代码
package exam5.homework_assemeement;
import java.util.Scanner;
public interface Calculateable
{
public int getGrade();
public void show();
}
abstract class Teacher implements Calculateable
{
long TeacherId;
String name;
int yearWorkTime;
public abstract double getYearEarn();
}
class Lecturer extends Teacher//讲师类
{
Lecturer(long TeacherId,String name,int yearWorkTime)
{
this.TeacherId=TeacherId;
this.name = name;
this.yearWorkTime=yearWorkTime;
}
int grade=-1;
int bonus=-1;
public int getGrade()
{
if(yearWorkTime<300)
grade=0;
else if(yearWorkTime>300&&yearWorkTime<400)
grade=1;
else if(yearWorkTime>400&&yearWorkTime<600)
grade = 2;
else if(yearWorkTime>600)
grade=3;
return grade;
}
public double getYearEarn()
{
if(grade==0)
bonus=-1000;
else if(grade==1)
bonus=50*(yearWorkTime-300);
else if(grade==2)
bonus=70*(yearWorkTime-300);
else if(grade==3)
bonus=90*(yearWorkTime-300);
return bonus;
}
public void show()
{
System.out.println("Id为:"+TeacherId+",老师"+name+"的年工作时长为"+yearWorkTime+"h,等级为:"+getGrade()+",年终奖金为:"+getYearEarn()+"元");
}
}
class Professor extends Teacher
{
int grade = -1;
int bonus = -1;
Professor(long TeacherId,String name,int yearWorkTime)
{
this.TeacherId=TeacherId;
this.name=name;
this.yearWorkTime=yearWorkTime;
}
public int getGrade()
{
if(yearWorkTime<400)
grade = 0;
else if(yearWorkTime>400&&yearWorkTime<500)
grade = 1;
else if(yearWorkTime>500&&yearWorkTime<800)
grade = 2;
else if(yearWorkTime>800)
grade = 3;
return grade;
}
public double getYearEarn()
{
if (grade == 0)
{
bonus = -2000;
}
else if ( grade == 1)
{
bonus = (yearWorkTime - 400 ) * 70;
}
else if (grade == 2 )
{
bonus = (yearWorkTime - 400 ) * 90;
}
else if (grade == 3)
{
bonus = (yearWorkTime - 400) * 100;
}
return bonus;
}
public void show()
{
System.out.println("Id为:"+TeacherId+",教授"+name+"的年工作时长为"+yearWorkTime+"h,等级为:"+getGrade()+",年终奖金为:"+getYearEarn()+"元");
}
}
class defCharacter
{
Scanner se= new Scanner(System.in);
public int getCharacter()
{
System.out.println("请输入1--老师 2--教授");
int a = se .nextInt();
if(a==1)
return 1;
else
return 0;
}
public String getname()
{
System.out.println("请输入姓名:");
String name=se.next();
return name;
}
public long getId()
{
System.out.println("请输入工号:");
long id=se.nextLong();
return id;
}
public int getyeartime()
{
System.out.println("请输入年工作时长:");
int time = se.nextInt();
return time;
}
}
package exam5.homework_assemeement;
public class show
{
public static void main(String[] args)
{
Lecturer l1 = new Lecturer(2000000001,"AA",605);
Lecturer l2 = new Lecturer(2000000002,"BB",806);
Lecturer l3 = new Lecturer(2000000003,"CC",205);
Lecturer l4 = new Lecturer(2000000004,"DD",705);
Lecturer l5 = new Lecturer(2000000005,"EE",360);
l1.show();
l2.show();
l3.show();
l4.show();
l5.show();
Teacher t1 = new Professor(100000001,"P1",950);
Teacher t2 = new Professor(100000002,"P2",631);
Teacher t3 = new Professor(100000003,"P3",302);
Teacher t4 = new Professor(100000004,"P4",466);
Teacher t5 = new Professor(100000005,"P5",497);
t1.show();
t2.show();
t3.show();
t4.show();
t5.show();
System.out.println("——————————————————————————————————————————————————————————————————\n" +
"请输入两个自定义角色:");
for(int i=0;i<2;i++) {
defCharacter c1 = new defCharacter();
if (c1.getCharacter() == 1) {
Lecturer l6 = new Lecturer(c1.getId(), c1.getname(), c1.getyeartime());
l6.show();
}
else
{
Professor p=new Professor(c1.getId(),c1.getname(),c1.getyeartime());
p.show();
}
}
}
}